Hyperledger ComposerのBNAファイルをundeployする
BNA(Business Network Archive)ファイルとは
ネットワークピアで実行されるスマートコントラクトのモデル定義(参加者、アセット、トランザクションなど)とトランザクションロジックの情報が書かれたもの。
Hyperledger Composer を使わない場合、GolangでChaincodeと呼ばれるスマートコントラクトを一から書かなければならないが、BNAはそれをラップして便利にした感じ(語弊あり)。
デプロイの仕方についてはまぁまぁ情報があるが、BNAを修正したい場合の情報は少ないのでメモ。
デプロイしたBNAファイルを消す
以下に書き方があるのだが、 card
という概念は比較的最近のもので古いヴァージョンでは対応していない。
https://hyperledger.github.io/composer/reference/composer.network.undeploy.htmlhyperledger.github.io
自分の環境 ver 0.13.0
の場合以下でイケた。
composer network undeploy -n <businessNetworkName> -p <connectionProfileName> -i PeerAdmin -s randomString
ちなみにこの businessNetworkName
には composer-src/package.json
内の"name"
フィールドを書けば良い。
ver 0.13.0 のhelp
/usr/local/bin/composer network undeploy [options] Options: --help Show help [boolean] -v, --version Show version number [boolean] --businessNetworkName, -n The business network name [string] [required] --connectionProfileName, -p The connection profile name [string] [required] --enrollId, -i The enrollment ID of the user [string] [required] --enrollSecret, -s The enrollment secret of the user [string]
注意点
undeployしたネットワークを再度deployした場合その場でエラーは吐かないが、Node.js SDK APIからアクセスできず、businessNetworkNameを別物にするハメになった。
おそらく単にbnaを修正する目的の場合はpackage.json内の"version"を上げて行くのが良いと思われる。