Tech

Hyperledger Fabric v0.6 のデプロイの方法

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

事前準備

  • まずは、ログイン, enrollをしてないといけない場合あり。それをPOSTするJSONのsecureContextに書く。
  • chaincodeのビルドをしている、していない場合あり

1. Gitから直接ダウンロード?

プライベートレポジトリの場合は、$GOPATH以下にgit cloneしておく、という手もある。

{
"jsonrpc": "2.0",
"method": "deploy",
"params": {
"type": 1,
"chaincodeID": {
"path": "https://github.com/IBM-Blockchain/learn-chaincode/finished"
},
"ctorMsg": {
"function": "init",
"args": [
"hi there"
]
},
"secureContext": "WebAppAdmin"
},
"id": 1
}
  • pathにnameを書くことがある。よく見るmyccなど。事前に登録必要か?
  • pathは、 github.comではじまるものを書くと、$GOPATH/src 以下と認識される様子
  • secureContextにログインしたユーザIDを書く

以下、ローカルのchaincodeでやる場合。go buildしておきPATHを指定

{
"jsonrpc": "2.0",
"method": "deploy",
"params": {
"type": 1,
"chaincodeID":{
"name": "mycc",
"path": "github.com/hyperledger/fabric/examples/chaincode/go/chaincode_example02"
},
"ctorMsg": {
"function":"init",
"args":["a", "100", "b", "200"]
},
"secureContext": "admin"
},
"id": 1
}

2. Node.js Clienet SDKを使う

npm install hfc

以下、公式サンプルスクリプトを改良


// Deploy chaincode function deploy(user) { console.log("deploying chaincode; please wait ..."); // Construct the deploy request var deployRequest = { chaincodeName: "チェーンコード名", fcn: "init", args: ["a", "100", "b", "200"] }; // where is the chain code, ignored in dev mode // これは、$GOPATH以下を指している模様 deployRequest.chaincodePath = "github.com/hyperledger/fabric/examples/chaincode/go/chaincode_example02"; // Issue the deploy request and listen for events var tx = user.deploy(deployRequest); tx.on('complete', function(results) { // Deploy request completed successfully console.log("deploy complete; results: %j",results); // Set the testChaincodeID for subsequent tests chaincodeID = results.chaincodeID; // do something //invoke(user); }); tx.on('error', function(error) { console.log("Failed to deploy chaincode: request=%j, error=%k",deployRequest,error); process.exit(1); }); }

peer chaincode deployコマンド

peerコマンドでデプロイする

cd /usr/share/gocode/src/github.com/hyperledger/fabric/build/bin
peer chaincode deploy -p github.com/hyperledger/fabric/examples/chaincode/go/chaincode_example02 -n mycc -c '{"Args": ["i
nit", "a","100", "b", "200"]}'
  • -pのパスの指定は、chaincodeがあるディレクトリまでか?
  • $GOPATH/src 以下にある前提。絶対PATH設定ではダメな様子。

関連用語

  • Linux Foundation
  • Hyperledger Project (ハイパーレジャー、ハイパレッジャー)
  • Fabric (ファブリック)
  • チェーンコード
  • このエントリーをはてなブックマークに追加