本稿について
The Honey Badger of BFT Protocolsを読みます。バージョンは20161024:215945です。
今回の範囲は「5. Implementation and Evaluation」の「5.2 Experiments on Amazon EC2」です。原文はこちらになります。
スポンサードサーチ
5. 実装と評価(続き)
5.2 Amazon EC2における実験
私たちのプロトコルがいかに実用的であるかを確認するため、Amazon EC2サービス上にプロトコルをデプロイして包括的にパフォーマンスをテストした。5大陸の8地方に一様に分布するAmazon EC2の32、40、48、56、104個のt2.mediumインスタンスでHoneyBadgerBFTを動かした。実験では各ノードがトランザクションを256個、512個、1024個、2048個、4096個、8192個、16384個、32768個、65536個、131072個のどれか提案するようにバッチサイズを変動させた。
スループット
スループットは時間単位あたりにコミットされるトランザクション数で定義される。私たちの実験では、特に定めのない限り"1秒あたりのコンファームされたトランザクション数"を尺度に用いる。図6はスループットと全てのノードNが提案するトランザクション数の合計との関係を示すものである。フォールトトレランスのパラメータはf = N/4とする。
調査結果:図6からそれぞれの設定に関して、提案されたトランザクション数が増えるにつれてスループットも増加することが分かる。ノード数40までの中規模ネットワークでは毎秒20000超のトランザクションというスループットを達成した。ノード数104の大規模ネットワークでは毎秒1500超のトランザクションを達成した。バッチサイズが無制限であることを考慮すると、最終的にネットワークサイズは全て利用可能な帯域幅のみにより制限される共通の上限に収束する。ノードが増えるごとにネットワークにおいて消費される帯域幅の合計は(線形的に)増加するが、増えたノードもまた帯域幅のキャパシティ増加に貢献している。
スループット、レイテンシ、スケールのトレードオフ
レイテンシは最初のノードがクライアントのリクエストを受け取ってから(N - f)番目のノードがコンセンサスプロトコルを完了するまでの時間差で定義される。(N - f)番目のノードがプロトコルを完了することは誠実なノードの間で合意が確立されたことを示すので、この定義は合理的である。
図7はf = N/4とし、ノード数を変えてみたときのレイテンシとスループットの関係を示す。右肩上がりの線は私たちの実験がまだ完全に利用可能な帯域幅を使用しているわけではないことを示唆しており、もっと大きなバッチサイズでもより高いスループットを実現できるだろう。また図7はノード数の増加につれてレイテンシが増加することを示しており、これは主にプロトコルのABAフェーズに起因する。実際に試したバッチサイズの範囲内のうちN=104では、帯域幅ではなくCPUにより制限された。これは実装がシングルスレッドでありO(N2)の閾値署名を検証しなければならなかったからである。それにもかかわらず、ノード数104の私たちの行った最大規模の実験でも6分未満で完了している。
実現できる最大のスループットに影響を与えずにネットワークにさらにノード(同じ帯域幅プロビジョニングを有するもの)を追加することはできるが、1バッチをコミットするのに消費する最小限の帯域幅はO(N2logN)に従って増加する。この制約は帯域幅コストとユーザのレイテンシトレランスによるスケーラビリティの限界を示している。
PBFTとの比較
図8は部分的同期ネットワークに関する旧来のBFTプロトコルであるPBFTプロトコルとの比較である。私たちはCromanら[24]のPython実装を使ってAmazon AWS上で一様に分布する8、16、32、64個のノードを動かした。バッチサイズは利用可能なネットワーク帯域幅を満たすように選んだ。
根本的にPBFTと私たちのプロトコルは「合計で(in total)」で全く同じ漸近的通信複雑性であるが、私たちのプロトコルはこのロードをネットワーク接続間で均一に分布させるのに対して、PBFTではリーダーが利用できる帯域幅にボトルネックがある。従ってPBFTが実現できるスループットはノード数が増えると下がってしまう一方で、HoneyBadgerBFTのスループットは概ね一定であり続ける。
この実験は故障やネットワーク妨害がない楽観的なケースのみを反映したものであることには注意されたい。小規模なネットワークに関しても、第3章で触れたように敵対的状況下でもHoneyBadgerBFTは非常に高いロバスト性を誇る。特にPBFTは敵対的な非同期スケジューラに対してはスループットが0になるのに対して、HoneyBadgerBFTは通常の速度でエポックを完了する。
(HoneyBadgerBFTプロトコルを見てみる11 ←← 前)|(次 →→ HoneyBadgerBFTプロトコルを見てみる13)
免責
邦訳には誤りがある場合がございます。予めご承知おき下さい。
確実な情報を知るためには冒頭に示した原文をご参照くださいますようお願いいたします。