空谷に吼える

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

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は要らないでしょということな模様。はい。