空谷に吼える

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

Oracle Blockchain Platform Cloud Serviceで非-決定論的なChaincodeをインストール、インスタンス化してREST APIで実行

なんの話

  • 非-決定論的なChaincodeを例を挙げて説明
  • Oracle Blockchain Platform Cloud ServiceでChaincodeのインストール、インスタンス化を行う方法を紹介
  • Oracle Blockchain Platform Cloud ServiceでREST Proxyを通じてChaincodeを実行する方法を紹介
  • 非-決定論的なChaincodeの挙動を確認
続きを読む

Enterprise EthereumのQuorumをさくっと机上でお勉強してみたメモ

最近話題のQuorumをとりあえず机上でお勉強してみています。いろいろわからないからお勉強しているのであって当たり前ではありますが、Quorumへの言及では間違ったこととか書くかもしれません。何かお気づきのところあったらご指摘いただけると助かります。

続きを読む

University of Waterlooの研究室がHyperledger Fabricを7倍速くする方法を提案

Hyperledger Fabric(HLF)をリエンジニアリングしてスループットをほぼ7倍(3000⇒20000)にしてやったぜというペーパーをカナダのUniversity of Waterlooの研究室が公開、というニュースが出ていました。

cointelegraph.com

そのペーパーは以下で読めますので読みましょう。

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

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 & タブーの資料を追加しています。

speakerdeck.com

本編はコンソーシアムで使うシステムを設計する際の独特な難しさにフォーカスしており、また、そのような設計を行う前提としてHyperledger Fabricについて必ず理解しておかなければならないことも説明しているので、トータルでかなりお役立ちな内容になっているかと思います。

これからHLFのお勉強を始めるよ、とかなにやら設計しないとならん、という方々にぜひ資料を活用してジャンプスタートしていただければと思います。どんどんやっていきましょう。

Samsung SDSがHyperledger Fabricのトランザクション処理性能高速化ツールを開発

Samsung SDSがHyperledger Fabricのトランザクション処理性能を(さらに)高速にするツールを開発したよ、というニュースが出ていました。

www.ledgerinsights.com

続きを読む

Chaincode内での非-決定論的挙動のタブーと信頼可能なタイムスタンプを台帳に記録する方法

なんの話

  • Chaincode内に非-決定論的なロジックを作り込むとコンセンサス取れなくなって死ぬ
  • 信頼可能な(都合よく偽れない)タイムスタンプを台帳上に記録するためのいくつかの方法
続きを読む