本文へスキップ
BecomeCoder

Solanaコース · 第2章 Proof of History ― 分散システムに時計を · レッスン8

Solanaが速い理由の全体像 ― Gulf Stream・Turbine・Sealevel・Pipelining

ローカル実施

導入

ここまで見てきた PoH と Tower BFT は、Solana の高速さを支える土台の考え方です。ですが、Solana Labs はこの土台の上に、さらにいくつもの高速化の工夫を積み重ねています。ここで一度、全体像を俯瞰しておきましょう。

説明

以下で紹介する4つの仕組みは、いずれも Solana のホワイトペーパー(PoH のアイデア)を土台にしつつ、その後の開発の中で発展してきた Solana 独自の技術です。それぞれ、取引が処理されるまでの流れの中で、異なるボトルネックを解消しています。

flowchart TD
    T["取引の送信"] --> GS["Gulf Stream<br/>メモプールレスな転送"]
    GS --> TB["Turbine<br/>ブロックの高速伝播"]
    TB --> PL["Pipelining<br/>検証作業の流れ作業化"]
    PL --> SL["Sealevel<br/>取引の並列実行"]
    SL --> DONE["台帳への確定"]
  • Gulf Stream(ガルフストリーム): 多くのブロックチェーンには、取引を一時的に溜めておく「メモプール」という待合室があります。Solana は、次にリーダーを務めるノードのスケジュールが事前にわかっている性質を利用し、取引をメモプールに溜めずに、次期リーダー候補へ直接転送します。待ち時間を減らし、リーダー交代のたびに詰まりが生じるのを防ぎます。
  • Turbine(タービン): 生成されたブロックをネットワーク全体に配る仕組みです。ブロックを小さな断片(shred)に分割し、木構造(ツリー)状にノードからノードへ伝播させることで、1つのノードに配信の負荷が集中するのを避け、ネットワーク全体への伝播を高速化します。
  • Sealevel(シーレベル): 取引を並列に実行するエンジンです。Solana では、各取引が「どのアカウントを読み書きするか」を事前に宣言する必要があります(この点は第3章で詳しく扱います)。読み書きするアカウントが重ならない取引どうしは、互いに干渉しないとわかるため、同時に並列実行できます。
  • Pipelining(パイプライン化): 取引の検証には「署名の確認」「実行」「台帳への書き込み」など複数の工程があります。Solana はこれらの工程を、工場の流れ作業(パイプライン)のように分担し、異なるハードウェアCPUGPU など)に振り分けることで、全体のスループットを高めています。

これらはいずれも「PoH によって順序と大まかな時間が共有できている」という前提の上に成り立つ工夫です。土台となる時計(PoH)と、その上の合意(Tower BFT)、そして実行・伝播の各段階の高速化(Gulf Stream・Turbine・Sealevel・Pipelining)が組み合わさることで、Solana は高いスループットと低い手数料を実現しています。

演習

4つの仕組み(Gulf Stream・Turbine・Sealevel・Pipelining)のうち、「取引を実行する段階」を高速化しているのはどれでしょうか。また「取引を実行前のノードへ届ける段階」を高速化しているのはどれでしょうか。

ヒント1を見る

Sealevel は「同時に実行してよい取引かどうか」を見分けて並列実行します。

ヒント2を見る

Gulf Stream は取引の転送、Turbine はブロックの配布を担当しています。