SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

IBM Bluemix User Group(BMXUG)リレー寄稿

ブロックチェーンアプリを実際に動かしてみよう!

IBM Bluemix User Group(BMXUG)リレー寄稿 第6回


  • X ポスト
  • このエントリーをはてなブックマークに追加

5.2. デモ2 ローカル環境でBlockchainアプリを動かしてみよう!

 余裕がある方は、こちらもお試し下さい。安定版のIBM Open Blockchainです。

 以前はGitHubで公開されていましたが、現在はHyperledgerプロジェクトに完全移行しているため、記事に添付されているファイル「obc-dev-env.zip」をGOPATH/WORKSPACEに展開してご利用下さい。

 あらかじめインストールが必要なツールは以下のとおりです。

  • Git Client
  • Go(バージョン1.6以上)
  • Vagrant(バージョン1.7.4以上)
  • VirtualBox(バージョン5.0以上)

 動作環境としては、Host→VM→Dockerのような構成になります。

 先に説明したChaincodeを実行するValidation Peerは、Dockerコンテナ上に配置されます。ただし、開発者モードの場合にはホストOSのみでも動作します。

Fig 9. ローカル環境におけるOpen Blockchainの動作イメージ(https://github.com/openblockchain/obc-dev-env(現在は削除されています)より引用)

Fig 9. ローカル環境におけるOpen Blockchainの動作イメージ
(https://github.com/openblockchain/obc-dev-env(現在は削除されています)より引用)

 以下のGitHubリポジトリをご自身のアカウントにforkした後、各種Instructionの通りに環境設定を行ってください。

 注目していただきたいのは、ホストOS上に作成したGOPATH配下のopenchain-peerおよびWORKSPACEとVirtual Machineのそれらが同期されることです。

 では、環境設定が完了したら実際にアプリを動かしてみましょう! 以下は開発者モードで行います。

 Terminal(あるいはコマンドプロンプト)は3つ開いてください(それぞれvagrant sshであらかじめ作成していたVMにログインした状態にします)。

 まず、1つ目のTerminalで、

cd $GOPATH/src/github.com/openblockchain/obc-peer

を実行します。その後、

OPENCHAIN_PEER_ADDRESSAUTODETECT=true obc-peer peer --peer-chaincodedev=true

を実行しpeerを起動します。起動するとログにpeerのIPアドレスが表示されますのでこれを控えておいてください。

[chaincode] NewChaincodeSupport -> INFO 013 Chaincode support using peerAddress: 10.0.2.15:30303

 1つ目のTerminalは起動したままにしておき、2つ目のTerminalで、サンプルアプリケーションのディレクトリに移動し、Goで記述されたChaincodeをコンパイルします。

cd /opt/gopath/src/github.com/openblockchain/obc-peer/openchain/example/chaincode/chaincode_example02

で移動した後、

go build -o chaincode_example02 chaincode_example02.go

でChaincodeファイルをコンパイルします。

 そうしたら次に、たった今ビルドしたアプリケーションを起動します。

OPENCHAIN_PEER_ADDRESS=<PeerのIPアドレス>:<ポート番号> OPENCHAIN_CHAINCODE_ID_NAME=test openchain/example/chaincode/chaincode_example02/chaincode_example02

 すると、以下のように準備ができたことを示すログが表示されます。

 正常に準備が整ったことを確認したら、3つ目のTerminalで、以下のように実際にChaincodeのfunctionをDeployします。

obc-peer chaincode deploy -n test -c '{"Function":"init", "Args":[ "ACCOUNT_A", "2000", "ACCONT_B", "1000"] }'

 これで、ACCOUNT_Aに2000、ACCONT_Bに1000が登録されました(※申し訳ありません、ACCOUNT_BをACCONT_Bとスペルミスをしていました)。

 では、今度はQueryを実行して残高を確認してみましょう。

obc-peer chaincode query -l golang -n test -c '{"Function":"query", "Args":["ACCOUNT_A"] }'

 「2000」と表示されたら成功です!

 では次はInvokeを実行してみましょう。

obc-peer chaincode invoke -n test -c '{"Function":"invoke", "Args":["ACCOUNT_A", "ACCONT_B", "100"] }'

 出力は「b77b0aac-130e-4fb6-ae73-9fa9967a9e5e」となっていますね。これがあなたのTransaction IDです。

 それでは最後に、残高を移動した結果を確認してみましょう。

obc-peer chaincode query -l golang -n test -c '{"Function":"query", "Args":["ACCOUNT_A"] }'
obc-peer chaincode query -l golang -n test -c '{"Function":"query", "Args":["ACCONT_B"] }'

 ACCOUNT_Aの残高からACCONT_Bに100移動し、それぞれ1900、2100となっていますね。2番目のTerminalのログでも、その結果が見られます。

 ここまでのBlockchain情報を破棄するには、

cd /var/openchain/production
rm -rf db

を実行します。

まとめ

 いかがでしたか?

 途中駆け足となってしまいましたが、これで一通りのBlockchainの動作が確認できたかと思います。皆さまのBlockchainに対する興味にお応えできましたら幸いです。

 BlockchainはFinTechのみならず幅広い応用が期待できる技術ですので、ぜひとも今後の動向をチェックしていただけたらと思います。

 ここまでご覧いただき、ありがとうございました。

この記事は参考になりましたか?

  • X ポスト
  • このエントリーをはてなブックマークに追加
IBM Bluemix User Group(BMXUG)リレー寄稿連載記事一覧

もっと読む

この記事の著者

新井 健三(Bluemix User Group)(アライ ケンゾウ)

これまで主に証券等の金融取引システムや基幹業務システムの構築プロジェクト等に携わって参りました。今後は有限責任監査法人トーマツにてStartup企業に向けたブロックチェーン技術のサポートや金融アドバイザリー業務なども行なっていく予定です。猫をこよなく愛しています。Twitter: @KenzoArai

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

  • X ポスト
  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/9625 2021/03/25 21:21

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング