Hyperledger fabric の Commercial Paper チュートリアル を試す

仮想通貨全般

以下チュートリアルを試す。
Commercial paper tutorial

Sponsored Link


概要

こちらのページに詳しい記述が

Commercial Paper の ダウンロード

これは、前回のsampleコードに入っているので、特に対応しなかった。

base-networkの作成

こちらのscriptで、ca, orderer, couchdb, peer を立ち上げる

$ cd fabric-samples/basic-network
$ ./start.sh

MagnetoCorp

ディレクトリ構造の理解

magnetcorpのディレクトリには以下ディレクトリが格納されている。

– application
 - 実際にwallet追加したり、データ登録するmain関数が入ったjs
– configuration
 - ネットワークログを1つに集約すうる logspout
 - hyperledgerと会話するfabric-tools
– contract (chaincodeが入っている)
– gateway
 ネットワークに接続する設定。以下2つが格納されている。
 - networkConnection.yaml
 - papernetConnection.yaml(こちら使われていないかも?

モニタリング開始

ログ監視設定。これは複数のログを1つのログ出力にまとめてくれる。

$ cd commercial-paper/organization/magnetocorp/configuration/cli/
$ ./monitordocker.sh net_basic
Starting monitoring on all containers on the network net_basic
5bda30fc8e25c2ac51db4d12c2da97b495c34d344e677973e7fdd341ddc6636e

clientのdockerコンテナ立ち上げ

hyperledgerとコミュニケーション取るためのもの

$ cd commercial-paper/organization/magnetocorp/configuration/cli/
$ docker-compose -f docker-compose.yml up -d cliMagnetoCorp
Creating cliMagnetoCorp ... done

chaincodeのインストール

peer chaincode install を cliMagnetoCorp で実行する

$ docker exec cliMagnetoCorp peer chaincode install -n papercontract -v 0 -p /opt/gopath/src/github.com/contract -l node
2019-06-03 07:09:11.179 UTC [chaincodeCmd] checkChaincodeCmdParams -> INFO 001 Using default escc
2019-06-03 07:09:11.179 UTC [chaincodeCmd] checkChaincodeCmdParams -> INFO 002 Using default vscc
2019-06-03 07:09:11.296 UTC [chaincodeCmd] install -> INFO 003 Installed remotely response:

インスタンス化

chaincodeを動かすためのdockerコンテナをたちあげる。

$ docker exec cliMagnetoCorp peer chaincode instantiate -n papercontract -v 0 -l node -c '{"Args":["org.papernet.commercialpaper:instantiate"]}' -C mychannel -P "AND ('Org1MSP.member')"

2019-06-03 07:12:24.329 UTC [chaincodeCmd] InitCmdFactory -> INFO 001 Retrieved channel (mychannel) orderer endpoint: orderer.example.com:7050
2019-06-03 07:12:24.338 UTC [chaincodeCmd] checkChaincodeCmdParams -> INFO 002 Using default escc
2019-06-03 07:12:24.338 UTC [chaincodeCmd] checkChaincodeCmdParams -> INFO 003 Using default vscc

ここで実際にcompileして、jsにエラーが発生するとコンテナを作成する事ができない。

issue.jsアプリケーション

$ cd commercial-paper/organization/magnetocorp/application
$ npm install

これで、ユーザーがissueを発行できる準備が整ったので、walletを作成する

$ node addToWallet.js
done

その後、transactionを発行

$ node issue.js
Connect to Fabric gateway.
Use network channel: mychannel.
Use org.papernet.commercialpaper smart contract.
Submit commercial paper issue transaction.
Process issue transaction response.
MagnetoCorp commercial paper : 00001 successfully issued for value 5000000
Transaction complete.
Disconnect from Fabric gateway.
Issue program complete.

これで、5M USDのコマーシャルペーパーが作成された。

DigiBank登場

buyer.jsを実行する

$ cd commercial-paper/organization/digibank/application/
$ npm install

buyerの財布を追加。

$ node addToWallet.js

buy実行。

$ node buy.js
Connect to Fabric gateway.
2019-06-03T08:41:10.159Z - error: [BaseWallet]: setUserContext: identity '[email protected]' isn't enrolled, or loaded
Error processing transaction. Error: identity '[email protected]' isn't enrolled, or loaded
Error: identity '[email protected]' isn't enrolled, or loaded
    at FileSystemWallet.setUserContext (/Users/shohu33/sc/fabric-samples/commercial-paper/organization/digibank/application/node_modules/fabric-network/lib/impl/wallet/basewallet.js:55:10)
Disconnect from Fabric gateway.
Buy program complete.

redeem.jsを実行する

$ node redeem.js
Connect to Fabric gateway.
Use network channel: mychannel.
Use org.papernet.commercialpaper smart contract.
Submit commercial paper redeem transaction.
Process redeem transaction response.
MagnetoCorp commercial paper : 00001 successfully redeemed with MagnetoCorp
Transaction complete.
Disconnect from Fabric gateway.
Redeem program complete.

これで一通り、チュートリアルは実行できた!

Sponsored Link
コメントはまだありません

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA


Cosmos
cosmos の hellochain チュートリアルを動かしてみる

以前、cosmonの以下チュートリアルやってみたんですが、結構ページ数が大量だったので もっとシンプ …

Hyperledger Fabric
Hyperledger fabric コマンドまとめ

よく使うHyperledger fabricコマンドのメモ[随時追記] Contents1 chai …

仮想通貨全般
Substrate Tutorial (#1 Basic – Creating a Module)

前回からの続きで引き続き、Substrate Tutorialを進めていきます。 Sponsored …