Enterprise EthereumのQuorumをさくっと机上でお勉強してみたメモ
最近話題のQuorumをとりあえず机上でお勉強してみています。いろいろわからないからお勉強しているのであって当たり前ではありますが、Quorumへの言及では間違ったこととか書くかもしれません。何かお気づきのところあったらご指摘いただけると助かります。
続きを読むUniversity of Waterlooの研究室がHyperledger Fabricを7倍速くする方法を提案
Hyperledger Fabric(HLF)をリエンジニアリングしてスループットをほぼ7倍(3000⇒20000)にしてやったぜというペーパーをカナダのUniversity of Waterlooの研究室が公開、というニュースが出ていました。
そのペーパーは以下で読めますので読みましょう。
FastFabric: Scaling Hyperledger Fabric to 20,000 Transactions per Second
とりあえず開いたけど英語だし字がつぶつぶしてるじゃん、ヤダーーッ!ってなりましたか?わたしもウッってなりましたががんばって読んだ、そしてわたしはしんせつなのでペーパーの要点を以下にまとめていきます。
続きを読むHyperledger Fabric v1.4.1でRAFTのOrdering Serviceをサポート
3/29付でHLF v1.4.1のRC(Release Candidate)1がリリースされ、RAFTのOrdering Serviceサポートが含まれています。まだRC版なんで正式リリースじゃないんですが下記の通りドキュメントにも先んじて追記されてるしまあたぶん撤回されたりはしないでしょう
■HLF v1.4.1 RC1 リリースノート: Release v1.4.1-rc1 Release Notes - March 29, 2019 · hyperledger/fabric · GitHub
既に公式ドキュメントにもRAFT Ordering Serviceの説明が追加されていました。
■RAFT Ordering Serviceの説明: The Ordering Service — hyperledger-fabricdocs master documentation
これまで選べたSoloおよびKafkaはOrdererノードをひとつの組織(Organization)が独占することを(事実上)前提としていますが、RAFTは複数組織間でOrdererノードを分散させることが可能とされています。ていうかわたしはRAFT Ordering Serviceもひとつの組織がOrdererノードを独占するものだと思ってましたが違っていた、そのような説明を受けた方々すまんかった
RAFT自体のお勉強は以下の資料がわかりやすいと思いました。Paxosよりも百倍わかりやすいと言われるRAFTですが、まあまあ難しいです。でもまあFabricのコンセンサスを完全に理解している俺たちにはどうということはなかったぜ
RAFTそのものがBFT(Byzantine Fault Tolerant)ではなくCFT(Clash Fault Tolerant)なため、RAFT Ordering ServiceもBFTではないことには注意が必要です。そのうちBFT Smartを採用したOrdering Serviceも出るはずです。Ordering ServiceにBFT性が求められるような互いへのトラストが低いコンソーシアムの運用を考えている場合はBFT Smartが早くサポートされるように祈りましょう。
気になるのは速度(スループット)がどんくらい出るかデスヨネー。おそらくはKafkaよりもRAFTのほうがオーバーヘッドが多くて遅いでしょうというのと、OrdererノードをOrganization分散して持った場合にはネットワーク遅延がけっこう効いてきそう。コンソーシアムのトラストのあり方と求められるスループットを考慮してKafka、RAFTそしてBFT SmartからOrdering Serviceを選びましょうね、ということになるんでしょうね
Hyperledger Fabricを使ったシステム設計の入門ガイド的な資料を公開
去る2019/3/28(木)に開催した「OCHaCafe #4 Hyperledger Fabricアプリケーション設計入門ガイド」でしゃべった資料を公開しました。
OCHaCafe#4 - Hyperledger Fabricアプリケーション設計入門ガイド - connpass
資料は↓です。当日時間の都合上端折ったスライドを復活+おまけとしてトランザクションフローの詳細な説明とChaincodeのTips & タブーの資料を追加しています。
本編はコンソーシアムで使うシステムを設計する際の独特な難しさにフォーカスしており、また、そのような設計を行う前提としてHyperledger Fabricについて必ず理解しておかなければならないことも説明しているので、トータルでかなりお役立ちな内容になっているかと思います。
これからHLFのお勉強を始めるよ、とかなにやら設計しないとならん、という方々にぜひ資料を活用してジャンプスタートしていただければと思います。どんどんやっていきましょう。