備忘69

個人的な備忘録です。細かいtips多め。


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"を上げて行くのが良いと思われる。

参考

github.com