見出し画像

D.A.G.G.E.R.テストネットの結果を解明する

この記事はGenesysGoによる「Demystifying the D.A.G.G.E.R. Testnet Results」を日本語に機械翻訳したものです。


はじめに

GenesysGoのDirected Acyclic Gossip Graph Enabling Replication Protocol(D.A.G.G.E.R.)テストネットの初期フェーズは、Web3における協力と革新のシナジーの素晴らしい証であります。世界中のオペレーターが自分たちのリソースを捧げたおかげで、実際のネットワーク環境をシミュレートし、貴重なデータを収集することができました。このプロジェクトの重要な段階に時間と計算能力を提供してくださった皆様には心から感謝申し上げます。バージョン0.2.0から0.3.1にかけて収集されたベンチマークは、分散型ネットワーク性能においてFilecoinとの比較分析においても魅力的な成績を示しました。しかし、これらの数字が重要であることを伝えなければ、それだけでは意味がありません。この初期テストネットフェーズでの進歩をよりよく議論するためには、各パフォーマンス指標の背後にある「なぜ」と「何」を理解することが不可欠です。そこで、D.A.G.G.E.R.テストネットのベンチマークをわかりやすい説明で解き明かし、誰もがアクセスしやすくなるようにしましょう。

スループットとピークTPSの最大化

ネットワークのピークトランザクション処理速度(TPS)は、32コアのマシンと256GBのRAMを使用して、驚異的な50,000 TPSで記録されました。このベンチマークは、5、10、15のEquinix m3.largeインスタンスのクラスター全体で最適な条件下で達成され、理想的なネットワーク環境で動作する際のD.A.G.G.E.R.プロトコルの生のパワーを示しています。

ネットワークのピークトランザクション性能を知ることは重要です。なぜなら、それはシステムが条件が完全に揃ったときに何ができるかを教えてくれるからです。スポーツカーがその最大速度でテストされるのと同じように、D.A.G.G.E.R.の限界を押し上げて、どれだけ迅速にトランザクションを処理できるかを確かめます。スポーツカーがレーストラックでテストされるように、D.A.G.G.E.R.もネットワークのレーストラックに相当するデータセンターで置かれました。このテストが生のトランザクション処理についてのものであり、ファイルの取り込みは行わなかったことに注目することが重要です。トランザクションの処理のみと、ファイルアップロードのために順序付けられたトランザクションの処理の違いを明確に伝えたいと考えています(これについては後述します)。

理想的な条件での高性能な上限を実現することは、コードとアルゴリズムの内部構造を検証し、それらがハードウェアリソースに与える影響を評価する方法です。これによって、現実世界の雑音がない状態でコンセンサスプロトコルを実際に動作させて観察することができます。また、コンセンサスエンジン自体にとって理想的なシナリオでのボトルネックが何であるかを確認する絶好の機会でもあります。ここから得られる教訓は、コンセンサス性能の上限が非常に高いため、ファイルのアップロード、ダウンロード、データの共有(同期)といったより予想される、より要求の高い側面が問題になる前に、それ自体が問題になることはまずないということです。D.A.G.G.E.R.はメタデータ台帳(ファイルが保存されている場所に関する情報を全て含むDAG)とシャードデータベース(ファイル自体の実際の断片)を持っているため、両方とも全てのオペレーター間で共有しながらコンセンサスを維持する必要があります。

実世界における耐久性

理想的な条件下でネットワークがどれほど速く動作するかを知ることは素晴らしいことですが、さらに重要なのは、日常の現実—完璧でない状況—でのパフォーマンスを理解することです。結局のところ、私たちは毎日スポーツカーをレーストラックで運転するわけではありません。ネットワークが混雑していても迅速に多くの情報を処理する能力は、ピーク時の需要中に分散システムがどれほどうまくユーザーにサービスを提供できるかを反映しています。

これが、私たちのD.A.G.G.E.R. Hammer Testnetのフロントエンドにキープレスゲーム(トランザクションを模倣)とDropbox風のファイルアップローダーの両方がある理由です。Dropbox風のアップローダーは、世界中の誰でもD.A.G.G.E.R.テストネットにファイルを投げ込むことができ、データのアップロード用のトランザクションを同時に作成しながら、追加のトランザクション負荷を生成するためにキーを叩くことができます。この公共のランダム性が続く間に、私たちはストレステスト計画の一環として同じクラスターに対して内部スクリプトを間隔をおいて実行しています。これが私たちが望んでいた混沌であり、私たちはそれをうまく捉えることができました。

持続する実世界の状況下(テストネットのフェーズ1)で、ネットワークは印象的な耐久性を示し、平均して約3,000トランザクション/秒を処理しています。しかし、ピーク需要時、あるいは「サージ」シナリオの間には、D.A.G.G.E.R.ネットワークは20,000から38,000トランザクション/秒を処理する能力があることが分かっています。これはその時の設定や調整によって異なります。サージテストは通常、1分間に100万から500万トランザクションの爆発を伴い、私たちはそれによって露呈された劣化を研究することができます。このパフォーマンスは、20~30の独立したオペレーターからなる動的なノードクラスターサイズで、トランザクションの管理、ファイルアップロード、オペレーターの参加と離脱の最中にD.A.G.G.E.R.がどれほど頑丈であるかを示しています。

このより現実的なテスト環境内でのコンセンサス性能は、依然として非常に高いままです。今後のテストネットを通じて、オペレーターの数やファイルアップロード/ダウンロードのサイズと頻度が増加するにつれて、これらの数値がD.A.G.G.E.R.の実世界での耐久性と能力をより正確に反映することを期待しています。

試練の火

D.A.G.G.E.R.テストネットが進化するにつれて、私たちは改良を続けると同時に、さまざまな条件下でのネットワークのパフォーマンスについて、それを「炎上」させることによってより深い洞察を得ていきます。これはテストネットフェーズ1の一部であり、物事を壊すことです。これらの試練の間に、より微妙なパフォーマンスメトリクスを収集してきましたので、それらを分析し、なぜ重要なのかについての説明を加えましょう。

ネットワークの同期と確定性

高TPS時にスナップショットをダウンロードし、追いつくのに必要な時間は非常に短く、わずか数秒で完了しました。スナップショットは、ノードがネットワークについて十分な情報を学び、参加するための小さなスタートキットのようなものです。一度参加すると、ノードはメタデータ台帳全体を取得し、シャードのストレージスペースを提供します(同期化)。私たちが設計したアーキテクチャの特徴として、現在のスナップショットは小さく、素早くダウンロード可能であり、オペレーターは迅速に参加できます。

理想的なネットワーク設定では、スナップショットを提供するノードと受け取るノードの間のリンクは非常に高速です。私たちの研究結果では、1GBのスナップショットサイズを25Gbpsのアップリンクで1~2秒で転送でき、Equinix m3.largeインスタンスを使用した場合、数秒で展開し追いつくことができます。

ただし、それ自体が「ネットワークの流動性」と呼ばれる攻撃対象となることがあります。これは、あまりにも多くのオペレーターが一度に参加する場合に発生します。これに対処するために、オペレーターが参加できるようになるまでのエポック(経過した時間の量)をカウントし、一度に参加できる数を減速させます。このバックプレッシャーはこれまでうまくテストされており、私たちは5~6エポックを待機サイクルとして定着させています(つまり、ネットワークに再参加するのに30分から1時間かかるということです)。

ブロックの同期時間はノードの遅延に基づいて変動し、平均して30ミリ秒から300ミリ秒の間です。ブロックの同期を時計の同期に例えるとします。時計によって同期の速さが異なるように、D.A.G.G.E.R.のノード(またはデジタルウォッチャー)も異なる速度で同期します。通常は目の瞬き(30ミリ秒)から手をゆっくりと叩く速さ(300ミリ秒)の間です。インターネットケーブルを使って世界を一周する平均遅延時間は、ルートやネットワークの品質によって異なりますが、約200ミリ秒から400ミリ秒の範囲です(時にはそれ以上の場合もあります)。現在のテストネットのオペレーターがカナダ、ドイツ、東京、アメリカ合衆国などを含む場所に設置されていることを考慮すると、この中間範囲内であることは受け入れられます。

ブロックの検証に関しては、ブロック上の情報が正しくルールに従っているかを確認するプロセスで、サーバーハードウェアの構成(特にCPU)によって速度に大きな違いがあります。ブロック検証時間は500ナノ秒未満から20ミリ秒までの範囲で(AMD Epyc 7502Psでのテスト)、CPUの能力によって異なります。ブロック検証速度は、Wieldノードが独立して受け取ったブロックに対して検証チェックを行う場合の速度として測定されます。

これらの数値は、D.A.G.G.E.R.のコンセンサスメカニズムの効率と、迅速な確定への道を維持する能力を強調しています。確定とは、トランザクションがネットワークの台帳の受け入れられた一部となることを意味し、これには複数の層が含まれます:トランザクションはブロックを形成するために検証され、ブロックが集まってバンドルを作り、バンドルの最終化はエポックの計測における一歩前進を示します。D.A.G.G.E.R.ネットワークにおけるエポックは、私たちが測定する重要な指標です。これは、多数のバンドルを含む完全なサイクルを表しています。具体的には、200のバンドルがエポックを形成します。この数値は、トランザクション、ブロック、バンドルの異なる構成での実験を含む包括的なテストを通じて決定されました。エポックを理解することは、世界中に広がるノード間でデータを最新かつ一貫性を保つために、ネットワークの台帳のリズミカルな更新サイクルを評価するのに役立ちます。

この合意に達するまでの時間、つまり確定にかかる時間は異なることがあります。最適な条件下では70ミリ秒と非常に速く、平均的には約273ミリ秒で発生します。ネットワークが異常に忙しい場合やデータが大きい場合など、650ミリ秒までかかることもあります。約273ミリ秒という実世界での例えとしては、人間が瞬きする時間が挙げられます。人間の平均的な一回の瞬きは、四分の一秒から三分の一秒、つまり約250ミリ秒から400ミリ秒で起こります。この日常的な動作は非常に速く自然であるため、ほとんどの人はそれがかかる時間に気づきません。

ノードの地理的位置、トランザクションのサイズ、リアルタイムのネットワーク状況などがこれらの時間に影響を与えることがあります。D.A.G.G.E.R.はこのような変動を処理するように設計されており、これらの要因に関係なく、ネットワークの状態が透明かつ迅速に更新され、合意されることを保証します。すべてのノードがすべての確定事項に迅速に追いつく能力は「同期」として知られています。これは分散システムにおいて重要であり、トランザクションを行う人、ファイルを共有する人、高可用性データに依存するアプリケーションを構築する人など、すべての人が同時に最新の情報を持つことを意味します。

データ操作の強化

データストレージ操作に関しては、ネットワークの内部ランタイムで1MiBのファイルを取り込み、確定させる時間は、外部の遅延を除いて0.1秒から0.7秒の範囲です。簡単に言うと、「取り込み」とは、ネットワークが初めて1MiBのファイルを受け取り、処理することを指します。これは、誰かがあなたにドキュメントを手渡すようなものです。「確定」するとは、そのファイルに承認の印を押すようなもので、それが検証され、安全に保存され、必要なときにいつでも取り出せる状態にあることを示しています。

消去コーディングは、セキュリティのためにファイルを微小なビットに分割し、ネットワーク全体に分散させるプロセスです。1MiBのデータを消去コーディングする時間は、コアあたり約0.018ミリ秒(3GHzプロセッサーを想定)であり、ファイルが小さい場合、このプロセスがパフォーマンスに与える影響は非常に小さいことを示しています。ただし、ファイルサイズが増加するにつれて、その時間はほぼ線形に(わずかに改善される程度で)増加します。つまり、100MiBのファイルの場合、消去コーディング時間は約0.0018秒(1.8ミリ秒)未満となることが予想されます。これは単に一つの3GHzスレッドが一つのマシンで行う処理であり、マシンには多くのスレッドがあり、ネットワークには多くのノードがあることを念頭に置いてください。データストレージプロトコルにとって、このワークロードを水平方向にスケーリングすることが重要であるため、これらのメトリクスを測定することが重要です。これらのミリ秒がうまく処理されない場合、積み重なってしまう可能性があります。

データの取得に関しては、D.A.G.G.E.R. Hammerデモサイトを使用して、1MiBのファイルをわずか1~3秒で取得できます。これは、ネットワークがユーザーフレンドリーなデータアクセスと再構築プロセスを強調しています。

スケーリングとリソース利用

ネットワークに新しいノードを追加しても、パフォーマンスに顕著な悪影響は見られず、バンドルの最終化時間は予想範囲内で維持されています。CPUとRAMの増加による垂直スケーリングは、さらなるスループットの向上が期待されます。私たちは現在、CPUサイズの最小要件を引き上げ(16スレッドへの引き上げを「垂直スケーリング」と呼んでいます)、新しいメトリクスを収集するプロセスにあります。

帯域幅についての視点を提供するために、20,000ユーザーTPSを維持している単一のWieldノードオペレーターを見てみましょう。彼らは平均で34%のCPU利用率(3GHzのCPUの場合)と、約4GBから6GBのメモリ使用量を見るでしょう。これは処理されたトランザクションの数に応じてスケールします。これらの期間中の帯域幅使用量は150から300Mb/sの範囲であり、高い活動中におけるネットワークの適度なリソース消費を示しています。これらはTPSのみのメトリクスであり、私たちはまだファイルのアップロードとダウンロードのメトリクスを集めるプロセスにあり、将来的に私たちの発見を共有する予定です。

結論

D.A.G.G.E.R.テストネットからのこれらの高度なメトリクスは、ピーク能力から持続的な実世界の条件まで、ネットワークのパフォーマンスに関する包括的なビューを提供します。分散型ネットワークで可能な限りのことを推し進める中で、これらの洞察は、コアプロトコルとShdwDriveのような関連アプリケーションの最適化の努力を導くのに非常に貴重です。

以前のコミュニケーションとは異なる方法でこれらのメトリクスを共有することにより、ネットワークの進捗と潜在能力に関する新しい視点を提供することを目指しています。また、これらのメトリクスのほとんど、あるいはすべてが、D.A.G.G.E.R.を改善し、できる限り現実的なネットワークテスト条件を精力的に追求するにつれて、変化し進化し続けることを強調します。GenesysGoチームは、透明性と革新に専念し続け、D.A.G.G.E.R.テストネットの次のフェーズに備えるとともに、今後の「D.A.G.G.E.R.テストネット学習パート2」のブログでさらなるブレークスルーと学びを皆さんと共有することを楽しみにしています。


この記事はGenesysGoによる「Demystifying the D.A.G.G.E.R. Testnet Results」を日本語に機械翻訳したものです。

この記事が気に入ったらサポートをしてみませんか?