2018年12月9日日曜日

Fabric Javaチェーンコードをつかってみる

Hyperledger Fabric 1.3から、Java版チェーンコードが正式サポートされた。
Java版チェーンコードを使ってみる。

Javaチェーンコードを利用する際の前提条件は以下のとおり。
・JDK 1.8がインストール済みであること。
・gradle 2.12以上がインストール済みであること。

➀各PeerにJavaチェーンコードをインストールする。
※Fabricでは、Javaチェーンコードのサンプルが提供されており、今回はそれを利用する。

# peer chaincode install -n bushido -v 1.0 -l java -p /opt/gopath/src/github.com/chaincode/chaincode_example02/java/
#
# CORE_PEER_ADDRESS="peer0.org2.example.com:7051"
# CORE_PEER_LOCALMSPID="Org2MSP"
# CORE_PEER_MSPCONFIGPATH="/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/org2.example.com/users/Admin@org2.example.com/msp"
# CORE_PEER_TLS_CERT_FILE="/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/org2.example.com/peers/peer0.org2.example.com/tls/server.crt"
# CORE_PEER_TLS_KEY_FILE="/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/org2.example.com/peers/peer0.org2.example.com/tls/server.key"
# CORE_PEER_TLS_ROOTCERT_FILE="/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/org2.example.com/peers/peer0.org2.example.com/tls/ca.crt"
# peer chaincode install -n bushido -v 1.0 -l java -p /opt/gopath/src/github.com/chaincode/chaincode_example02/java/

②チェーンコードのinstantiateを行う。

# peer chaincode instantiate -o orderer.example.com:7050 --tls true --cafile /opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/ordererOrganizations/example.com/orderers/orderer.example.com/tls/ca.crt  -C bushido -n bushido -l java -v 1.0 -c '{"Args":["init","a","100","b","200"]}' -P "AND ('Org1MSP.peer','Org2MSP.peer')"

③Javaチェーンコードのコンテナが作成されていることを確認する。

# docker ps | grep bushido
84bb5c2aa994        dev-peer0.org1.example.com-bushido-1.0-92aca216667084484fba82d74149bf26ec36672612d5608a67bb2b0694ade7d7   "/root/chaincode-jav…"   5 minutes ago       Up 5 minutes                                                           dev-peer0.org1.example.com-bushido-1.0

➃QUERYやINVOKEを行うことができることを確認する。
# peer chaincode query -C bushido -n bushido -c '{"Args":["query","a"]}'
100
# peer chaincode query -C bushido -n bushido -c '{"Args":["query","b"]}'
200

<補足>
Javaチェーンコードのログを閲覧すると、以下のようなログが出力される。

[root@localhost first-network]# docker logs -f --tail 30 dev-peer0.org1.example.com-bushido-1.0
Dec 09, 2018 3:43:12 AM org.hyperledger.fabric.shim.ChaincodeBase newChannelBuilder
INFO: Configuring channel connection to peer.
Dec 09, 2018 3:43:14 AM org.hyperledger.fabric.example.SimpleChaincode init
INFO: Init java simple chaincode
Dec 09, 2018 3:43:14 AM org.hyperledger.fabric.example.SimpleChaincode init
INFO: account a, value = 100; account b, value 200
Dec 09, 2018 3:45:52 AM org.hyperledger.fabric.example.SimpleChaincode invoke
INFO: Invoke java simple chaincode
Dec 09, 2018 3:45:52 AM org.hyperledger.fabric.example.SimpleChaincode query
INFO: Query Response:
Name: a, Amount: 100

Dec 09, 2018 3:45:57 AM org.hyperledger.fabric.example.SimpleChaincode invoke
INFO: Invoke java simple chaincode
Dec 09, 2018 3:45:57 AM org.hyperledger.fabric.example.SimpleChaincode query
INFO: Query Response:
Name: a, Amount: 100

Dec 09, 2018 3:46:03 AM org.hyperledger.fabric.example.SimpleChaincode invoke
INFO: Invoke java simple chaincode
Dec 09, 2018 3:46:03 AM org.hyperledger.fabric.example.SimpleChaincode query
INFO: Query Response:
Name: a, Amount: 100

Dec 09, 2018 3:46:52 AM org.hyperledger.fabric.example.SimpleChaincode invoke
INFO: Invoke java simple chaincode
Dec 09, 2018 3:46:52 AM org.hyperledger.fabric.example.SimpleChaincode query
INFO: Query Response:
Name: b, Amount: 200

0 件のコメント: