空谷に吼える

ブロックチェーン/DLTまわりのなにかしらを書いていく所存

複数組織間のデータ持ち寄り、共有とエンタープライズブロックチェーン

なんの話

続きを読む

Hyperledger Fabric v2.0がリリースされたので重要っぽい変更点などまとめてみる

Hyperledger Fabric v2.0が2020/1/29付でリリースされました。メジャーリリースだけあっていくつも重要な機能追加、変更、廃止が入っているのでそのへんを以下にまとめていきます。

続きを読む

Hyperledger FabricのChaincode内での台帳のクエリ方法まとめ

なんの話

  • Hyperledger FabricでChaincodeの中で台帳(State DBとブロックチェーン)をクエリする方法をまとめて解説
続きを読む

インターオペラビリティってなんだっけという話とHyperledger Fabricでのそのへんの情報

「FabricでHTLCとか使えないの?」とか「Fabricと他のブロックチェーンとまたいでAtomicなトランザクションてどうやればいいんすかね?」とかのインターオペラビリティ周りの質問を最近だけで計3回いただいたのでこれを書いておきます。

続きを読む

Hyperledger ComposerがDeprecatedのステータスに

ちょっと用があってHyperledger Composerのgithubを見に行ったら2019/8/29付でComposerはdeprecated(非推奨)になったよというお知らせが出ていました。

github.com

Hyperledger Composerはプロトタイピングなどの際にFabric(など)を容易に使い始められるようにネットワーク構築とスマートコントラクト(Chaincode)開発をセットで抽象化して提供してくれるフレームワークです。主にIBMによって開発されていたところ、2018/8/30に以下のお知らせで、IBMはFabric本体に注力するためComposerの開発からは手を引きますと発表されていました。

Composer TSC update

このお知らせ以降もComposer自体はプロジェクトのステータスは変わっていなかったんですが、ちょうど1年くらいで今回のdeprecatedへのステータス変更の運びとなったようです。この間、特に積極的にはアナウンスされなかったので、知らずに新たにComposerを使い始めてしまうひとたちもちらほら見かけていました。ちょっと遅くなった感はありますが、きちんとdeprecatedに変更されたのは良いことだと受け止めています。

最近は公式ドキュメントやブログなどの情報、周辺ツールやクラウドテンプレート、Blockchain as a Serviceなどの発展によって、Composerを使わなくてもFabricのネットワーク構築やChaincode開発がComposer登場当時よりも遥かに容易にできるようになってきていますので、特にネガティブな影響もないかな、と思います。

2019/9/2時点ではHyperledger.org内の以下のComposerの紹介ページには特に変わりがないようですが、そのうちステータス変更が反映されるでしょう。→2019/9/4追記:今見たらこっちもdeprecatedになってました

www.hyperledger.org

Hyperledger Fabric v1.4.2がリリース

2019/7/17付でHLF v1.4.2がリリースされていました。

■HLF v1.4.2リリースノート: Release v1.4.2 Release Notes - July 17, 2019 · hyperledger/fabric · GitHub

公式ドキュメントとしてはv1.4系のドキュメントが更新され、v1.4.2の追加、変更が反映されています。ただしv1.4.2での差分はわかりづらいのでリリースノートを見たほうがいいと思います。

■公式ドキュメント: What’s new in v1.4 — hyperledger-fabricdocs master documentation

気になる新機能、機能強化ですが、主要なところは以下ふたつかな:

  • Kafka to Raft Consensus Migration: KafkaのOrdering ServiceからRAFTへの移行がサポートされたみたいです。手順はこちら

  • Channel rollback on a peer: あるPeerについて指定したBlock Number以降のStateの更新およびBlockを破棄させるPeer Rollback、およびGenesis Block以降を破棄させるPeer Resetが機能追加されたそうです。あるPeerのStateDBを直接いじっちゃってState変になっちゃったわーやべーわーみたいなときに使う機能ですね。破棄した分はOrdering Serviceまたは他Peerから再度取得してくるので正常なStateに復帰できますよという寸法です。

そんで今回のリリースではDeprecationsが重要。

The following functions are deprecated and are targeted for removal in a future release.

とあるのですぐに廃止ではないですが、将来的には廃止の方向なようなので新たに使うのはやめておく、既に使っている場合は違うやり方を準備するなどして備えておきましょう。これも重要そうなところだけ抜粋:

  • Support for automatically vendoring the chaincode shim into user chaincodes: github.com/hyperledger/fabric/core/chaincode/shim ("shim") パッケージは手動でVendoringしなくてもChaincode実行環境のイメージに含まれているものを使ってくれてたんですが、その自動Vendoringがナシになるそうです。代替案としては手動でVendoringしてくださいという話になり、します、はい、ということになります。

  • Support for invoking system chaincodes from user chaincodes: 現状ではユーザーChaincode(ふつうのChaincode)からQSCCなどのSystem Chaincodeを呼び出せるらしいんですが、このSystem CC呼び出しは不可になる模様です。らしい、と書いたのはわたしも前にトライしてみたけど動かなかったからです。。。この辺JIRA見ててもバグとか多かったのと、これ使ってると過剰に複雑になるので、個人的にはなくなるのは賛成、歓迎です。ただしChaincodeの中から生っぽくBlockやTxを触りたくてQSCC使ってるひとはいるかもしれないので、そのひとは代替案を考えなければならないですね(今の所ちょっと思いつかない)。

  • Support for Solo ordering service: RAFTでOrderingノードひとつだけの構成取れるんでSOLOは要らないでしょということな模様。はい。