SEIは、非同期実行、マルチプロポーザーコンセンサス、トランザクション並列処理、ストレージ最適化などのメカニズムをGigaアップグレードに導入します。 この記事は、Hazeflowの創設者であるPavel Paramonovによって書かれ、Felix、PANewsによって編集、編集、寄稿されています。 (あらすじ:1か月で$SEI 70%! SIP-3提案の開始:純粋なEVMへの移行、毎秒100,000トランザクションを目指す)(背景追加:MetaMaskは、5月にSolanaネットワークの「最初の非EVMチェーン」MetaMaskウォレットをイーサリアムのコンフォートゾーンからサポートします) Seiは、最新のGigaアップグレードを紹介する新しいホワイトペーパーをリリースしました。 ほとんどの読者は、17ページの詳細な技術コンテンツを読むのが難しいと感じています。 したがって、この記事では、このアップデートとは何か、およびさまざまなレベルでブロックチェーンのパフォーマンスを向上させる方法について説明します。 1. 非同期実行のためのブロック生成ギガの主な考え方と基盤は、「トランザクションリストが整然としていて、ブロックチェーンの初期状態が一貫しており、すべての正直なノードが同じ順序でこれらのトランザクションを処理する場合、ノードは同じ最終状態に達する」というものです。 この場合、結果は初期状態とトランザクションの順序にのみ依存します。 つまり、コンセンサスはブロック内のトランザクションの順序について合意するだけでよく、各ノードは最終状態を個別に計算できます。 このモデルでは、コンセンサスが実行から分離されているため、ブロックを非同期に実行できます。 ブロックがファイナライズされると、ノードはブロックを処理し、後続のブロックでその状態をコミットします。 その後、ブロックはステート コンセンサスによって検証され、すべてのノードが正しい最終ステートを計算したことが確認されます。 ここで重要なことは、実行とコンセンサス(生成)が並行して行われることです。 ノードが 1 つのブロックの計算を実行すると、他のブロックも受け取ります。 その結果、ブロックは実際には(並列ではなく)全体の順序で実行されますが、ブロック生成プロセス自体はコンセンサスと並行して行われます。 ただし、どのブロックでも、これらのプロセスは完全に非同期です。 明らかに、コンセンサスと同じブロックの実行を同時に行うことは不可能に思えます。 したがって、ブロックnが実行されると、ノードは次のステップでブロックn+1を受け取ります。 コンセンサスが歪んでいる場合(たとえば、ネットワーク内のノードの3分の1が悪意を持って行動する場合)、標準のBFTプロトコルと同様に、チェーンは一時停止されます。 ブロック内で失敗したトランザクションを実行しても、ブロックは無効になりませんが、ブロックの生成と実行が分離されており、現在のブロックの最終状態が後続のブロックでコミットされるため、単に失敗状態のままになります。 2 マルチプロポーザーモデルはどのように実装され、アウトバーンとは何ですか? コンセンサスプロトコル自体は「アウトバーン」と呼ばれています(速度制限のないドイツのアウトバーンのようなものです)。 Autobahnは、データの可用性とトランザクションの順序付けを分離しており、その背後には興味深いモデルがあります。 他の高速道路の車線と同様に、複数の車線があり、各ノードには独自の通路があります。 ノードは、これらのチャネルを使用して、トランザクションの順序に関する提案を行います。 提案は、順序付けられたトランザクションのコレクションにすぎません。 アウトバーンは、取引の順序を確定するために複数の提案を集約する「チップカット」操作を実行することがあります。 前述のように、各バリデーターには、多くのトランザクションを提案するための独自のチャネルがあります。 ノードは、有効な提案を受け取ると、提案が受信されたことを確認するための投票を送信します。 投票のために提案が収集されると、PoA(Proof of Availability)が形成され、ネットワーク内の少なくとも1つの正直なノードがデータを受信したことが確認されます。 チップカットはミリ秒単位で発生し、最終的にはアウトバーンからの複数の提案が「カット」されます。 提案者は、ブロックが解放されるのを待ち、可能な場合は個々のブロックを解放するインセンティブを持っていますが、各ブロックの実行時間制限 (ガス制限と同様) によって、このダイナミクスがわずかに変化します。 チャネル上のプロポーザルは通常、ブロックに相当し、ティップカットが発生すると、複数のブロックが同時にカットオフされます。 その後、スロットのリーダーはティップカットを他のノードに渡してソーティングを完了します。 ノードは、すでに次のチップカットを準備していると同時に、実際には 1 つのチップカットに投票しています。 バッチを見逃したノードは、PoAにリストされているバリデーターから非同期で取得できます:これがデータの可用性の必要性の本質です。 同期条件下では、リーダーが正しければ、アウトバーンは2回のコミュニケーションで提案の確認を完了します。 リーダーに障害が発生した場合、メカニズムは新しいリーダーを選出して、プログラムを正常な状態に保ちます。 次のチップカットの提案は、実際には現在のチップカットのコミットフェーズ中に開始でき、実行がビルドと並行して行われるため、レイテンシーが短縮されます。 実際、モデル全体はマルチプロポーザーモデルであり、多くのノードが同時にブロックの順序を提案できます。 各バリデーターは、独自のブロックを提案し、ネットワークがそれらのブロックを所有しているという証明(PoA)を受け取ることで、ネットワークのスループットと全体的な効率を向上させることができます。 3 並列実行とその応用 前述のように、ブロック実行プロセスはコンセンサスと並行して行われますが、実際にはブロック自体は順次実行されます。 これが真の並列実行を構成するかどうか疑問に思われるかもしれません。 答えは「はい」でもあり「いいえ」でもあります。 ブロックは順番に実行されますが、ブロック内のトランザクションは実際には並列に実行できます。 トランザクションが同じ状態を変更 (書き込み) せず、1 つのトランザクションの結果が別のトランザクションに影響を与えない場合は、トランザクションを並列に実行できます。 要するに、それらの実行パスは互いに依存してはいけません。 Gigaにはmempoolがなく、トランザクションはすぐにノードに含まれます。 Giga は、ほとんどのトランザクション間に競合がないと想定し、複数のプロセッサ コアで同時に処理します。 各トランザクションへの変更は一時的にプライベートバッファに保存され、ブロックチェーンにすぐには適用されません。 処理が完了すると、トランザクションが以前のトランザクションと競合していないかどうかがチェックされます。 競合がある場合、トランザクションは再処理されます。 競合がない場合、その変更はブロックチェーンに適用され、確定されます。 また、高頻度の衝突が発生する場合もあり、その場合、システムは一度に 1 つのトランザクションの処理に切り替わり、トランザクションが確実に進行できるようにします。 簡単に言うと、並列実行はトランザクションを複数のコアに分散し、競合しないトランザクションを同時に実行できるようにします。 4.ストレージの問題と最適化 トランザクションの量が多いため、データは安全で簡単にアクセスできる必要があるため、従来のブロックチェーンストレージとは少し異なる方法で保存する必要があります。 Gigasは、データをシンプルなキーと値の形式で保存し、比較的フラットな構造であるため、データが変更されたときに何度も更新やチェックを行う必要性を減らすことができます。 さらに、Gigaは階層型ストレージを使用しており、最新のデータはSSD(高速)に保持され、使用頻度の低いデータは低速で費用対効果の高いストレージシステムに移行されます。 ノードがクラッシュした場合、ログを再生して正しい状態を復元し、特殊なデータベースであるRocksDBに更新を適用してデータを整理できます。 ストレージシステムは、重い計算を行わずにデータの正確性を証明する暗号化アキュムレータを使用します。 アキュムレータはバッチで更新されるため、バリデーターとライトノードはブロックチェーンの現在の状態について迅速に合意することができます。 5. マルチプロポーザーEVM L1ブロックになる...
282k 投稿
256k 投稿
167k 投稿
82k 投稿
68k 投稿
67k 投稿
62k 投稿
53k 投稿
51k 投稿
Seiの新ホワイトペーパーを解読する:Gigaアップグレードが導入する技術革新とは?
SEIは、非同期実行、マルチプロポーザーコンセンサス、トランザクション並列処理、ストレージ最適化などのメカニズムをGigaアップグレードに導入します。 この記事は、Hazeflowの創設者であるPavel Paramonovによって書かれ、Felix、PANewsによって編集、編集、寄稿されています。 (あらすじ:1か月で$SEI 70%! SIP-3提案の開始:純粋なEVMへの移行、毎秒100,000トランザクションを目指す)(背景追加:MetaMaskは、5月にSolanaネットワークの「最初の非EVMチェーン」MetaMaskウォレットをイーサリアムのコンフォートゾーンからサポートします) Seiは、最新のGigaアップグレードを紹介する新しいホワイトペーパーをリリースしました。 ほとんどの読者は、17ページの詳細な技術コンテンツを読むのが難しいと感じています。 したがって、この記事では、このアップデートとは何か、およびさまざまなレベルでブロックチェーンのパフォーマンスを向上させる方法について説明します。 1. 非同期実行のためのブロック生成ギガの主な考え方と基盤は、「トランザクションリストが整然としていて、ブロックチェーンの初期状態が一貫しており、すべての正直なノードが同じ順序でこれらのトランザクションを処理する場合、ノードは同じ最終状態に達する」というものです。 この場合、結果は初期状態とトランザクションの順序にのみ依存します。 つまり、コンセンサスはブロック内のトランザクションの順序について合意するだけでよく、各ノードは最終状態を個別に計算できます。 このモデルでは、コンセンサスが実行から分離されているため、ブロックを非同期に実行できます。 ブロックがファイナライズされると、ノードはブロックを処理し、後続のブロックでその状態をコミットします。 その後、ブロックはステート コンセンサスによって検証され、すべてのノードが正しい最終ステートを計算したことが確認されます。 ここで重要なことは、実行とコンセンサス(生成)が並行して行われることです。 ノードが 1 つのブロックの計算を実行すると、他のブロックも受け取ります。 その結果、ブロックは実際には(並列ではなく)全体の順序で実行されますが、ブロック生成プロセス自体はコンセンサスと並行して行われます。 ただし、どのブロックでも、これらのプロセスは完全に非同期です。 明らかに、コンセンサスと同じブロックの実行を同時に行うことは不可能に思えます。 したがって、ブロックnが実行されると、ノードは次のステップでブロックn+1を受け取ります。 コンセンサスが歪んでいる場合(たとえば、ネットワーク内のノードの3分の1が悪意を持って行動する場合)、標準のBFTプロトコルと同様に、チェーンは一時停止されます。 ブロック内で失敗したトランザクションを実行しても、ブロックは無効になりませんが、ブロックの生成と実行が分離されており、現在のブロックの最終状態が後続のブロックでコミットされるため、単に失敗状態のままになります。 2 マルチプロポーザーモデルはどのように実装され、アウトバーンとは何ですか? コンセンサスプロトコル自体は「アウトバーン」と呼ばれています(速度制限のないドイツのアウトバーンのようなものです)。 Autobahnは、データの可用性とトランザクションの順序付けを分離しており、その背後には興味深いモデルがあります。 他の高速道路の車線と同様に、複数の車線があり、各ノードには独自の通路があります。 ノードは、これらのチャネルを使用して、トランザクションの順序に関する提案を行います。 提案は、順序付けられたトランザクションのコレクションにすぎません。 アウトバーンは、取引の順序を確定するために複数の提案を集約する「チップカット」操作を実行することがあります。 前述のように、各バリデーターには、多くのトランザクションを提案するための独自のチャネルがあります。 ノードは、有効な提案を受け取ると、提案が受信されたことを確認するための投票を送信します。 投票のために提案が収集されると、PoA(Proof of Availability)が形成され、ネットワーク内の少なくとも1つの正直なノードがデータを受信したことが確認されます。 チップカットはミリ秒単位で発生し、最終的にはアウトバーンからの複数の提案が「カット」されます。 提案者は、ブロックが解放されるのを待ち、可能な場合は個々のブロックを解放するインセンティブを持っていますが、各ブロックの実行時間制限 (ガス制限と同様) によって、このダイナミクスがわずかに変化します。 チャネル上のプロポーザルは通常、ブロックに相当し、ティップカットが発生すると、複数のブロックが同時にカットオフされます。 その後、スロットのリーダーはティップカットを他のノードに渡してソーティングを完了します。 ノードは、すでに次のチップカットを準備していると同時に、実際には 1 つのチップカットに投票しています。 バッチを見逃したノードは、PoAにリストされているバリデーターから非同期で取得できます:これがデータの可用性の必要性の本質です。 同期条件下では、リーダーが正しければ、アウトバーンは2回のコミュニケーションで提案の確認を完了します。 リーダーに障害が発生した場合、メカニズムは新しいリーダーを選出して、プログラムを正常な状態に保ちます。 次のチップカットの提案は、実際には現在のチップカットのコミットフェーズ中に開始でき、実行がビルドと並行して行われるため、レイテンシーが短縮されます。 実際、モデル全体はマルチプロポーザーモデルであり、多くのノードが同時にブロックの順序を提案できます。 各バリデーターは、独自のブロックを提案し、ネットワークがそれらのブロックを所有しているという証明(PoA)を受け取ることで、ネットワークのスループットと全体的な効率を向上させることができます。 3 並列実行とその応用 前述のように、ブロック実行プロセスはコンセンサスと並行して行われますが、実際にはブロック自体は順次実行されます。 これが真の並列実行を構成するかどうか疑問に思われるかもしれません。 答えは「はい」でもあり「いいえ」でもあります。 ブロックは順番に実行されますが、ブロック内のトランザクションは実際には並列に実行できます。 トランザクションが同じ状態を変更 (書き込み) せず、1 つのトランザクションの結果が別のトランザクションに影響を与えない場合は、トランザクションを並列に実行できます。 要するに、それらの実行パスは互いに依存してはいけません。 Gigaにはmempoolがなく、トランザクションはすぐにノードに含まれます。 Giga は、ほとんどのトランザクション間に競合がないと想定し、複数のプロセッサ コアで同時に処理します。 各トランザクションへの変更は一時的にプライベートバッファに保存され、ブロックチェーンにすぐには適用されません。 処理が完了すると、トランザクションが以前のトランザクションと競合していないかどうかがチェックされます。 競合がある場合、トランザクションは再処理されます。 競合がない場合、その変更はブロックチェーンに適用され、確定されます。 また、高頻度の衝突が発生する場合もあり、その場合、システムは一度に 1 つのトランザクションの処理に切り替わり、トランザクションが確実に進行できるようにします。 簡単に言うと、並列実行はトランザクションを複数のコアに分散し、競合しないトランザクションを同時に実行できるようにします。 4.ストレージの問題と最適化 トランザクションの量が多いため、データは安全で簡単にアクセスできる必要があるため、従来のブロックチェーンストレージとは少し異なる方法で保存する必要があります。 Gigasは、データをシンプルなキーと値の形式で保存し、比較的フラットな構造であるため、データが変更されたときに何度も更新やチェックを行う必要性を減らすことができます。 さらに、Gigaは階層型ストレージを使用しており、最新のデータはSSD(高速)に保持され、使用頻度の低いデータは低速で費用対効果の高いストレージシステムに移行されます。 ノードがクラッシュした場合、ログを再生して正しい状態を復元し、特殊なデータベースであるRocksDBに更新を適用してデータを整理できます。 ストレージシステムは、重い計算を行わずにデータの正確性を証明する暗号化アキュムレータを使用します。 アキュムレータはバッチで更新されるため、バリデーターとライトノードはブロックチェーンの現在の状態について迅速に合意することができます。 5. マルチプロポーザーEVM L1ブロックになる...