著:ANATOLY YAKOVENKOSEP
Solanaへの質問やコミュニティ参加は下記リンクから。
Solana Link:Discord / Twitter / Telegram / Reddit / Github / Youtube
Solanaの、1秒未満の確認時間と世界初のWebスケールブロックチェーンに必要なトランザクション処理能力を実現するには、コンセンサスの迅速化だけでは不十分です。そこに重ねて大量のトランザクションブロックの検証速度を迅速にする必要があります。その実現のためにSolanaネットワークでのトランザクション検証プロセスにおいて、パイプラインと呼ばれる最適化を広範にわたり使用しています。
パイプライン処理は、それぞれ異なるハードウェアがありかつ各ステップにおいて処理する必要がある入力データのストリームが存在する場合に適したプロセスです。これを説明する上での良い例は、洗濯機と乾燥機の関係性です。洗濯のプロセスとして洗濯/乾燥/折り畳むという流れがあり、洗濯は乾燥前に行い、折り畳む前に乾燥する必要があり、これら3つの作業はそれぞれ別のユニットで実行されます。
作業効率を最大化する為、各ステージのパイプラインを作成します。洗濯機、乾燥機、折り畳みを各ステージとします。パイプラインを実行するには、最初の負荷が乾燥機に到達した直後に、洗濯機に次の負荷を追加します。同様に、2番目の負荷が乾燥機に入り、最初の負荷が折り畳まれた後に3番目の負荷が洗濯機に追加されます。こうすることで3つの洗濯物を同時に効率よく処理できます。
“全てのハードウェアを常にビジー状態に保つ方法を見つける必要がありました。全てのネットワークカード、CPUコア、GPUコアについてです。これを実行する為に、CPU設計から工夫を加えました。ソフトウェアで4つのステージのトランザクションプロセッサを作成しました。これをトランザクション処理ユニット“TPU”と呼びます” Solana Founder CTO Greg Fitzgerald
Solanaネットワークでは、パイプラインメカニズム-Transaction Processing Unitがバリデーターへのブロック送信を開始するまでにカーネルレベルでのデータフェッチ、GPUレベルでの署名検証、CPUレベルでのバンキング、カーネルスペースでの書き込み、トークンのクレジットが進行していきます。
Validatorノードは、2つのパイプラインプロセスを同時に実行します。1つはTPUのリーダーモード、もう1つはTVUと呼ばれるバリデータモードで実行されます。どちもパイプライン化されるハードウェアは同じです。ネットワーク入力、GPUカード、CPUコア、ディスクへの書き込み、ネットワーク出力です。各ハードウェアで行うことは異なります。 TPUは元帳エントリを作成するために、TVUはその検証のために存在します。
“署名検証がボトルネックになるのは事前に解っていましたが、GPUにオフロードできるのはコンテキストに依存しない操作でした。この操作をオフロードした後でも、ネットワークドライバーとの対話や同時実行を制限するスマートコントラクト内のデータ依存関係の管理など、多くのボトルネックが残っています ” Solana Founder CTO Greg Fitzgerald
この4段階のパイプラインでのGPU並列化の間にSolana TPUは約50,000トランザクションを同時進行することが可能です。
“これは全て5000ドル以下の市販のコンピューターで実現可能です。スーパーコンピューターではありません” Solana Founder CTO Greg Fitzgerald
GPUがSolanaのTPUにオフロードされると、ネットワークは単一ノードの稼働効率に影響を与える可能性が生じます。この部分の達成が当初からのSolanaの目標でした。
“次の課題は、何らかの方法でリーダーノードから全ての検証ノードにブロックを取得し、ネットワークに混雑きたさずかつクロールにスループットをもたらさないように維持する事です。その為の策としてTurbineというブロック伝播戦略を考案しました。Turbineでは、バリデーターノードを複数のレベルにおいて構成します。各レベルは、最低でも上のレベルの2倍のサイズです。この構造により、各レベルはその中のノードの数に関わらず大きなものとなります。ネットワークのサイズが2倍になる度、確認時間に小さなバンプが表示されますが、それだけの事です。” Solana Founder CTO Greg Fitzgerald
SolanaのWebスケールブロックチェーン機能を可能にする技術的な実装は、Pipeliningの他にもいくつか革新的なものが存在します。それら全てをより詳細に理解するには、Solanaのブログでそれらについて読む事ができます。ぜひご覧ください。
Solanaネットワークを実現している8つの革新事項:
Proof of History (POH) — コンセンサスの前のクロック
Tower BFT — PBFTのPoH最適化バージョン
Turbine —ブロック伝播プロトコル
Gulf Stream — Mempool不要のトランザクション転送プロトコル
Sealevel — パラレルスマートコントラクトランタイム
Pipelining — 検証を最適化する為のトランザクションプロセスユニット
Cloudbreak — 水平スケールのアカウントデータベース
Archivers — 分散型元帳ストア
Solanaへの質問やコミュニティ参加は下記リンクから。
Solana Link:Discord / Twitter / Telegram / Reddit / Github / Youtube