
著者:スティーブ出典:4pillars翻訳:Shan Ouba、ビットチェーンビジョンレルム
ポイント
-
「並列実行」は、過去1年間のブロックチェーン業界のキーワードの1つです。ただし、並列実装を真に実装するには、さまざまな分野でのイノベーションも必要です。
-
EVM並列処理のSEIの1つは、この必要性を認識しており、昨年からデータベースの最適化を検討しています。これらの努力の結果はSEI DBです。
-
SEI DBは、従来の単一データベース構造を2つのレイヤーに分割したモジュラー構造に変換します。不要なメタデータを排除し、ステータスアクセスを最適化し、データベースレベルの効率が低くなり、ブロックチェーンの全体的なパフォーマンスが向上します。SEIメソッドは、ブロックチェーンが並列性を追求する良い例であるだけでなく、ブロックチェーン全体の効率を改善することを目指しているビルダーにとっても良い例です。
2023年と2024年には、ブロックチェーン市場サイクル、ファーキャスター、REPAKEなどに多くのキーワードがあります。ただし、テクノロジーで最も興味深いキーワードは「毎日の実装」であることがわかりました。市場はEVMの並列処理に精通していますが、並列トランザクションを通じて、EVM自体よりも基本的にブロックチェーンパフォーマンスが改善されたと思います。
「並列実行」といえば、さまざまなチェーンを考えるかもしれませんが、私が最初に考えるのはSEIブロックチェーンです。彼らは、並列処理の概念を並行して導入する最初の人ではありませんが、市場でこのキーワードを普及させる上で重要な役割を果たしています。この記事を書いている時点で、SEIネットワークは、並列処理で処理される最初のレイヤー1ブロックチェーンになりました。これは、EVM並列処理をサポートするガバナンス提案に合格したためです。
SEI V2ガバナンスの提案の通過は非常に重要です。これは、実装が困難であると考えられている並列処理の並列処理が実際的な段階に達したことを示しているためです。並列トランザクションを申請するのがそんなに難しいのはなぜですか?私の調査では、いくつかの理由が明らかになりました。まず第一に、同じ状態に影響するトランザクション(同じアカウント残高の変更など)の間に競合が発生する可能性があります。トランザクションの順序を決定すると、複雑さが増加します。最も重要なことは、問題が実行レイヤーに並行している場合でも、データベースレベルの最適化なしにスケーラビリティの大幅な改善を達成することが困難であることです。これらの問題により、並列処理が並行して実装されます。
SEIのCoファウンダーとCTO Jayendraは、さまざまなメディアチャネル(データベースレベルの最適化)を通じて指摘されています。EVM並列処理または一般的なトランザクション並列処理がブロックチェーンの「実行」レベルの最適化とのみ見なされる場合、大幅なスケーラビリティの改善は達成できません。したがって、並列処理のパフォーマンスを議論するには、データベースレベルの最適化を達成する方法を解決する必要があります。
今日は、SEIブロックチェーンがデータベースを最適化する方法についてお話したいと思います。データベースの最適化は、並列処理をサポートする並列処理をサポートするだけではありません。データベースの最適化も問題です。これは、多数のトランザクションを処理する必要があるすべての高性能ブロックチェーンに直面している課題です。この記事を通して、読者がSEI V2についてもっと深く学ぶことができることを願っています。また、高性能ブロックチェーンを設計する人が、高性能ブロックチェーンでデータベースを設計するための貴重な洞察を得ることができることを願っています。
1。ブロックチェーンストレージの質問:状態拡張
1.1ブロックチェーンの状態は何ですか?
ストレージの問題について議論する前に、国家の意味を定義する必要があります。ブロックチェーンの背景にある状態は何ですか?ステータスとは、アカウント自体の詳細情報、アカウント残高、契約コードなど、ブロックチェーン内のすべてのアカウントの情報を指します。したがって、ブロックチェーンで取引する場合、必然的に特定の状態に影響します。たとえば、AがBにBにBに転送される場合、AとBのバランスを更新する必要があります。これが国の変化の意味です。国家はどのような影響を与えますか?一般的に、州は変更によってのみ増加するとは考えていませんが、州を変更する取引でさえ、ブロックチェーンの歴史の中で取引記録を残すとは考えていません(このタイプのデータは歴史状態と呼ばれます)。したがって、状態の変更を伴うトランザクションでさえ、状態サイズがわずかに増加すると言えます。言い換えれば、すべてのチェーン上のすべての取引は、国の成長に役立ちます。
1.2高速ブロックチェーンのステータス成長問題
前に説明したように、チェーントランザクションは州の成長に役立ちます。SEIのような高速ブロックチェーンの場合、他のブロックチェーンと比較してより多くのトランザクションを処理します。トランザクションの並列実装のサポートをさらに追加すると、ステータスがより速く成長し、いくつかの問題が発生します。
-
ノードの動作コストを増やす:ノード全体がブロックチェーンステータス全体を保存する必要があります。これにより、ストレージコストが増加し、ブロックチェーン上のノードの操作が困難になります。これは、完全なノードを実行するためのエントリのしきい値が高くなるため、集中化につながる可能性があります。
-
ブロックチェーンのパフォーマンスは低下します:大きな状態は、ノードがトランザクションを処理および検証するためにより多くの時間を必要とすることを意味します。ブロックチェーンの状態を変更するトランザクションがいつでも、ノードは関連するステータス値を読み取り、更新する必要があります。州の成長に伴い、より多くのデータにアクセスする必要があり、より多くの状態価値を変更する必要があります。これにより、最終的にブロックチェーンのパフォーマンスが低下します。
-
ノード同期問題:ブロックチェーンは、複数のノード共有台帳に基本的に関与し、継続的に同期して効果的な元帳に関与しています。状態が大きくなりすぎると、新しいノードの追加が非常に困難になります。新しいノードは、メインネットワークに参加するためにチェーンの元帳全体をダウンロードする必要があります。チェーンは、特定のポイントでレコード全体の「スナップショット」を取ります。ただし、チェーンが大きすぎる場合、スナップショットを取るのに長い時間がかかり、この期間中、ブロックチェーンは新しいトランザクションとデータを追加し続けます。この違いにより、新しいノードの同期が困難になる可能性があります。また、同時ノードと後方ノードは、追いつくために多くの時間とコストに直面し、パフォーマンスの問題を引き起こし、新しいノードをより困難にし、集中型の問題につながる可能性があります。
-
歴史的な状態
-
アクティビティステータス
-
トランザクションが発生した場合、MEMIAVLからステータスを読み取り、トランザクションの実行がステータスの変更につながります(変更とも呼ばれます)
-
変更セットは最初にMEMIAVLツリーに適用され、次に新しいハッシュを再計算できます。
-
新しく計算されたステータスルート値はブロックヘッドに含まれており、ラベルトランザクションはブロックチェーンに正常に記録されています。
-
さまざまなゴルウチンでは、これらの変更はWALファイルに非同期的であり、回復に使用できます(ノードを復元する必要がある場合は、最近のスナップショットとWALに保存されている情報を回復のために使用できます)。)。
ブロックチェーンで大きすぎる問題は、状態拡張と呼ばれます。データベースの改善なしでトランザクションが並行して実装されている場合、ステータスがさらに拡張され、さまざまな問題が発生します。これらの問題は、最終的に、問題の並行実施によってもたらされる利益の実現を妨げます。SEIは最初からこの問題を実現しており、この理解の結果はSEI DBです。それでは、SEI DBは設計に何を焦点を当てており、データベースはいくら改善しますか?
2.最速のブロックチェーンと最速のデータベースであるSEI DBを紹介します
SEI V1は、非変化するAdelson-VelskyおよびLandis(IAVL)ツリー構造に基づいて通常のデータベース構造を使用します。Ethereumでは、同様の概念がMerkle Patricia Trie(MPT)です。ただし、この構造はいくつかの側面では非効率的であることが証明されています。1)各ノードに大量のメタデータを保存する必要があります。データは期待を超えています。これらの非効率的な問題を解決するために、SEIはSEI DBを起動しました。SEIDBは、ストレージを2つのレイヤーに分割するモジュラーデータベースアーキテクチャです。
なぜデータベースを2つのレイヤーに分割するのですか?国自体が歴史的な状態と活発な状態に分かれているからです。SEI DBをよりよく理解するには、これら2つのタイプの2つのタイプを定義する必要があります。
歴史的な状態とは、ブロックチェーンの最新のブロックの高さの前に記録されたすべての州を指します。言い換えれば、現在処理されているブロックを除くブロックチェーンの過去のすべての記録が含まれています。たとえば、過去のユーザーのすべての記録は歴史的に状態です。
アクティビティステータスには、最新のブロックの高さに関連する情報が含まれます。簡単に言えば、ユーザーの現在のバランスなど、ブロックチェーンに記録された最新情報が含まれています。
これらの定義からでさえ、活動の歴史的状態とステータスに明らかな異なる情報が含まれており、歴史的状態はアクティビティステータスよりもはるかに重いことが明らかです。SEIは、これら2つのタイプの状態を異なる場所で処理することにより、データベースを最適化することを目指しています。
SEI DBは、1)ステータスコミットメント(SCレイヤー)および2)ステータスストレージレイヤー(SSレイヤー)に分割されます。これらのレイヤーのキャラクターとそれらがどのように相互作用するかを研究しましょう。
2.1ステータスプロミスレイヤー(SCレイヤー)
SEIブロックチェーンのステータスを管理するためのステータス約束レイヤー。SC層の最も重要なコンポーネントは、Cosmos SDKで使用されるIAVLツリーの変更されたバージョンであるIAVLツリー(MEMIAVL)をマッピングするメモリマッピングです。前述の低い効率の変更とステータスアクセスを最適化しました。しかし、なぜMemiavlはステータスアクセスにそれほど効果的なのでしょうか?これを理解するには、SEIが使用するメモリマッピングの概念を研究する必要があります。
一般に、ファイルを処理するときは、ファイル記述またはファイル構造ポインターを使用してそれらにアクセスします。これには、バッファーを介した入力操作と出力操作が必要です。メモリマッピング(mmap())は、ファイルをプロセスの仮想アドレス空間にマッピングし、読み取りまたは書き込み機能を使用せずにデータを読み書きできるようにすることにより、この問題を解決します。
SEIによると、Memiavlは数百秒以内にステータスアクセスを実現できます。
>
(上記の図は、ステータスの読み取りではなく書き込み(送信)に焦点を当てています。この結果は、SEIDBと非同期提出の組み合わせが大幅なパフォーマンスの改善を達成したことを示しています。)
理解を促進するために、memiavlを使用してブロックチェーンに記録されたトランザクションのライフサイクル全体を概説しましょう。
これらの変更により、CPUとメモリの使用が根本的に減少し、SEIがハードウェアの高い仕様を必要とせずに異常に速いブロックチェーンを構築できるようになりました。
2.2ステータスストレージレイヤー(SSレイヤー)
レイヤー管理を提出する州の最も重要なアクティビティステータス、および州のストレージ層処理アクティビティステータスの前のすべての記録(歴史的状態)。SEI V2のステータスストレージレイヤーは、3つの重要なコンポーネントで構成されています。
2.2.1元のキー値ストレージ
ブロックチェーンに精通している人は誰でも、キー値ペアの概念に遭遇します。データストレージ構造は、一意の識別子としてキーを使用し、使用値は関連データとして使用されます。たとえば、ブロックチェーンのコンテキストでは、アカウントの残高または契約ステータスはキーによって表され、対応するデータ(アカウント内のトークンの数など)が値です。
キーバリューストレージ構造は他のブロックチェーンやデータベースで一般的ですが、SEIはメタデータストレージを最小化することで最適化され、それによりストレージデータの量が減少します。さらに、キーは値に直接マッピングされるため、追加の抽象化レイヤーがないため、データアクセス速度が高速になり、ブロックチェーンの全体的な効率が向上します。
2.2.2柔軟なデータベースバックエンド
データベース構造の効率は、さまざまなストレージバックエンドのサポートと同様に重要です。単一のストレージバックエンドを使用するために必要な単一のストレージバックエンドを使用することが必要であることが必要です。これにより、特定のニーズを満たすためにバックエンドを最適化できないためです。SEI V2は、PebbledB、RockSDB、およびSQLiteをサポートしているため、ノードがそのニーズに最も適したデータベースを選択できます。これらの3つのデータベースの特性を以下に比較します。
>
SEI V2でサポートされているデータベースの特性は、SEIのパフォーマンスと一致しています。これらの各データベースは最適化されており、大規模なデータを処理し、大規模な執筆とリリースを最小限に抑えることができます(つまり、ディスクに書き込むデータの頻度を減らします)。
SEIは、PebbledBがサポートされているデータベースで最高のパフォーマンスを示したと述べました。ただし、これらのデータベースには独自の利点と短所があることは注目に値します。詳細な利点と短所については、SEIチームが提供する比較チャートを参照できます。
2.2.3非同期剪定
最後に、議論されるコンポーネントは非同期トリミングです。ブロックチェーンのコンテキストでは、トリミングとは、ブロックチェーンから不要なデータまたは時代遅れのデータを削除するプロセスを指します。従来、トリミング操作はネットワークのパフォーマンスに悪影響を及ぼします。ただし、剪定操作のSEI非同期実行は、これらのタスクがバックグラウンドに実装されていることを意味し、メインブロックチェーン操作には影響しません。この方法により、SEIは履歴ステータスデータを最適化し、ブロックチェーンのパフォーマンスに影響を与えることなくノードのストレージニーズを削減できます。
要約すると、元のキー値ストレージ、柔軟なデータベースバックサポート、非同期剪定を含むSEI V2の革新的なデータベース管理方法は、効果的な処理アクティビティと履歴ステータスデータを確保するため、ブロックチェーンの全体的なパフォーマンスとスケーラブルな拡張を改善します。ブロックチェーンセックス。
3。SEIDBの実装結果
>
現在、SEIDBの2つのレイヤー(ステータス提出レイヤーとステータスストレージレイヤー)を調査し、各レイヤーの文字と機能を研究しました。この説明を通じて、SEIDBは理論的にデータベースを介したSEIブロックチェーンのパフォーマンスを向上させ、最適化することがわかりました。ただし、最も重要なことは実際の結果です。SEIチームがテストネットワーク環境でSEIDBを実装すると、次のデータが取得されます。
1.アクティビティステータスを削減します
メモリに保存されたアクティビティステータスのサイズを測定し、結果は、アクティビティのサイズが60%減少したことを示しました。
2。履歴データの成長率は低下します
歴史的状態の成長率を評価すると、以前のデータベースよりも90%以上遅いことがわかります。
3。同期時間が短縮されます
ノードの同期状態を測定するのに必要な時間は、速度が約1,200%増加することを示しました。
4。宝くじの時間が短くなります
スナップショットの同期ブロックから最新のブロックの高さまで必要な時間は、以前のデータベースよりも2倍になります。
5.ブロック提出時間の減少
ブロックをブロックチェーンに送信するのに必要な時間が測定され、その結果、以前のデータベースと比較して速度が287倍増加したことが示されました。
6.TPS(1秒あたりのトランザクション数)
処理オフィスに必要な時間が測定され、結果は、以前のデータベースと比較して速度が2倍以上増加したことを示しました。
これらの指標に基づいて、SEI V2をSEIDBから実装すると、パフォーマンスが大幅に改善されます。EVMの互換性の主な物語によってカバーされていますが、SEIの長期的な改善はデータベースレベルで変化する可能性があります。
4。未来を楽しみにしている:物語を超えて実際の貢献をする
SEI V2 ERAが到着しました。重要な市場では、SEI V2は一般に「EVM並列処理」を連想させます。ただし、V2アップグレードによってもたらされた変更を慎重に調査すると、テクノロジー集約型の変換がEVMサポートと並列処理の改善の範囲をはるかに上回ることがわかります。前述のパフォーマンス指標は、V2メインネットワークがリリースされる前のテスト結果にすぎませんが、実際の影響を観察する必要があります。それにもかかわらず、これらの取り組みは、SEI V2の実際のパフォーマンスが他のレイヤー1ブロックチェーンを刺激してデータベースをテストおよび強化することができるため、継続的な注意に値します。
当初から、SEIは「高速ブロックチェーン」になるという単一の目標を追求しており、この目標を達成するために広範な研究を実施しています。研究者として、私は彼らが高速ブロックチェーンの実装に対する献身的な献身を称賛しています。さらに、彼らの研究が引き続きより良いデータベースの革新をもたらすことができることを願っています。これらの取り組みにより、優れたブロックチェーンを構築することができ、最終的にはより広範な視聴者がブロックチェーンテクノロジーを使用する可能性が高くなります。