Epoch 197
背景と特定された課題 あらゆる分散型ネットワークにおいて、ノード間の通信は、コンセンサスの維持、データの整合性、およびタイムリーな取引処理のために極めて重要です。従来のブロックチェーンは、非効率な通信プロトコルによるボトルネックを経験することが多く、それが取引時間の鈍化やスケーラビリティの低下を招いています(Decker & Wattenhofer, 2013)。ネットワークのレイテンシ(遅延)や帯域幅の制限はコンセンサスメカニズムを妨げ、ネットワーク全体のパフォーマンスに影響を及ぼす可能性があります。
最適化されたノード間通信 Qubicは、低レイテンシと高スループットのために最適化された、独自の伝送制御プロトコル(TCP)ベースの通信プロトコルを実装することで、これらの課題に対処しています。このプロトコルはネットワーク全体での迅速なメッセージ伝送を保証し、取引やコンセンサス関連データの効率的な伝播を促進します。
クォーラムベースのコンセンサスモデル(セクション3.2.1参照)は、大多数のComputorが迅速に合意に達することを可能にし、取引の確定(ファイナリティ)における遅延を最小限に抑え、ノードの故障に対するネットワークの回復力を向上させます。Qubicは、ネットワークのより優れたスケーラビリティと信頼性を達成するために、通信プロトコルとコンセンサスメカニズムの両方を最適化するように設計されています。
通信プロトコルに関する知見 効果的な通信プロトコルは、分散ネットワークにおける取引速度の向上とシステム信頼性の実現に不可欠です。Nguyenら(2016)やDecker & Wattenhofer(2013)によって行われた主要な研究では、高性能コンピューティング環境においてレイテンシを最小化しスループットを向上させるための、カスタマイズされたTCP実装の重要性が指摘されています。
定量的な指標とパフォーマンスの向上 Qubicの通信プロトコルにより、ノードは1秒未満(サブセカンド)の間隔でコンセンサスを達成することが可能です。この改善により、Qubicは、即時の取引確定を必要とするリアルタイムのアプリケーションやサービスにとって極めて重要な、高頻度取引を処理できるようになります。
ピア共有 (Peer Sharing) ネットワーク内の物理ノードであるピアは、ピア共有の文脈においてIPv4アドレスによって識別されます。これらはソースコード内では「パブリックピア(public peers)」と呼ばれます。各ノードは、既知のパブリックピアの初期セット(理想的には少なくとも4つ)を必要とします。自身のIPアドレスも、通常のピアとして `knownPublicPeers` に含める必要があります。
ピアは「検証済み(verified)」かどうかの状態を持ちます。検証済みのピアは他のピアと共有されます。`knownPublicPeers` 内のIPは、デフォルトで検証済みのステータスを取得します。
ピアは、Qubicノードのハンドシェイクとして扱われる `ExchangePublicPeers` メッセージを通じて共有されます。このメッセージは、新しい接続が確立された後(ノードがランダムに選択されたパブリックピアに接続した後)に送信されます。共有のためのIPは、検証済みピアのリストからランダムに選択されます(ただし、`ExchangePublicPeers` メッセージ内に重複したIPが含まれる場合があります)。リストに検証済みピアが存在しない場合は、`ExchangePublicPeers` とともにIPとして “0.0.0.0” を送信しなければなりません。
検証済みピアへの外向きの接続が拒否された場合、そのピアは検証済みステータスを失います。未検証のピアへの外向きの接続が拒否された場合、そのピアはピアリストから削除されます。未検証のピアへの外向きの接続が承認され、`ExchangePublicPeers` メッセージが受信された場合、そのピアは検証済みステータスを取得します。通信中のいかなる時点でもプロトコル違反が検出された場合(相手側がQubicノードではない何かを実行していると推測できる場合)、そのIPは検証済みであっても削除されます。IPがピアリストから削除されるのは、削除後もリストに少なくとも10個のエントリが残っており、かつそのIPが初期の `knownPublicPeers` に含まれていない場合に限られます。