BlockBench
BlockBenchは、プライベートブロックチェーンのパフォーマンス計測プラットフォームである。BlockBenchはオープンソースプロジェクトで、Ethereum(+ Parity)とQuorum, Hyperledger Fabricの3種類のブロックチェーン基盤をサポートしている。BlockBenchは2つのワークロードが用意されており、データ処理パフォーマンスを測定するためのワークロードと、ブロックチェーンのさまざまなレイヤーでのパフォーマンスを理解するためのワークロードを提供する。BlockBenchはC++で実装されており(一部Node.js必要)、軽量で素早く動作することが可能。BlockBenchの評価尺度は下記となる。
Throughput
Latency
Scalability
Fault tolerance
BlockBenchは、主流のプライベートブロックチェーン基盤に見られる4つの抽象化レイヤーを特定し、これらのレイヤーをターゲットとしたワークロードが設計できるように作られている。
https://gyazo.com/33bab4f15fa490d95e0109f1a3b0997a
Consensus
ブロックがブロックチェーンに追加されたとみなされるプロトコルが含まれる
Data Model
ブロックチェーンデータの構造、コンテンツ、操作などが含まれる
Execution Engine
ブロックチェーン操作をサポートするランタイム環境の詳細が含まれる
Application
スマートコントラクトやChaincodeなどのブロックチェーンアプリケーション
https://gyazo.com/186fec2d69c679f978069d5c9817adb8
上記の図は論文の中から抜粋したBlockBenchの実装図であるが、実際のソースコードを確認してみたことろ、ワークロードやCollectorなどは全部Driverの中に含まれている。
メリット
インストールが簡単
テストのネットワーク環境が用意されている
(Hyperledger Fabricの場合)細かい知識がなくても動かすことができる
クラウド環境での動作も素早くできる
デメリット
ワークロード作成はC++のみ
他のツール(Caliper, PTE)と比べて機能が少ない
一つのクライアントは一つのワークロードしか実行できない(マルチクライアント、マルチワークロードは非サポート)
Hyperledger FabricのTransaction送信処理が遅い
Hyperledger Fabricは1.4系までサポート(2系は非サポート)
論文に採用された実績
https://www.comp.nus.edu.sg/~ooibc/blockbench.pdf
たくさんの論文に引用されてる
https://www.researchgate.net/publication/316849567_BLOCKBENCH_A_Framework_for_Analyzing_Private_Blockchains
参考
https://github.com/ooibc88/blockbench
https://www.comp.nus.edu.sg/~dbsystem/blockbench/
https://shentilium.com/blockbench
https://blog.acolyer.org/2017/07/05/blockbench-a-framework-for-analyzing-private-blockchains/
https://medium.com/@mu7eh7/running-blockbench-for-ethereum-6dca3ed44a35
#BlockBench
#Hyperledger_Fabric