blockchainjapan’s blog

旬のブロックチェーンを記事を厳選して提供!

Vite非同期アーキテクチャの概要


Vite非同期アーキテクチャの概要

Khun Sir

Viteは、メッセージ駆動型の非同期アーキテクチャを採用した次世代ブロックチェーンです。 Viteエコシステムでは、“非同期”は重要な概念でありイノベーションでもあります。

非同期リクエストモデル

Viteのトランザクションは、要求トランザクションと応答トランザクションに分類できます。 イベントが転送かコントラクトコールかに関係なく、2つの連続したトランザクションが元帳で生成されます。

転送は、受信トランザクションと送信トランザクションに分類でき、コントラクトコールトランザクションは、要求トランザクションと応答トランザクションに分類できます。各コントラクト内のメッセージコールは、要求トランザクションと応答トランザクションに分割できます。

分類後、各トランザクションは単一のアカウントのステートに影響し、トランザクション同士は互いに干渉しないためスループットが向上します。さらに、異なるアカウントによるトランザクションもネットワーク内の異なるノードに割り当てられるため、スケーラビリティが向上します。

非同期確認モデル

Viteでは、元帳へのトランザクションの書き込みとシステムによる確認受信も非同期でおこなわれます。異なるユーザーがトランザクションを同時に元帳に書き込む場合、スナップショットチェーンは、元帳のスナップショットを一定の速度で取得します。トランザクションのスナップショットが作成されると、確認が行われ、スナップショットチェーンの拡大につれて確認数も増加します。

非同期通信モデル

Viteのコントラクト間通信にはメッセージ駆動型アーキテクチャが組み込まれており、コントラクトはそれぞれのステートを共有せず、通信はメッセージの相互送信によってのみ実行されます。

コントラクトが別のコントラクトをコールする場合、前者は最初に要求トランザクションを送信する必要があります。これは、MQでメッセージを生成する事象と似たロジックです。ターゲットコントラクトを実行しているノードが要求トランザクションを監視後、ノードは対応する応答トランザクションを元帳に書き込み、コントラクトのステートを更新します。このプロセスはMQからのメッセージを消費するのと同じです。戻り値が必要な場合、ターゲットコントラクトは同じ方法で別のメッセージをソースコントラクトに送信します。

このモデルでは、Viteの元帳がメッセージミドルウェアの役割を果たし、メッセージの1回限りのセマンティクスを保証できます。

メッセージベースのアーキテクチャは、高いスループットとスケーラビリティを実装しています。一方、プログラミングモデルはより複雑になり、整合性が保証されないだけでなく、待機時間が長くなる可能性があります。

上記の問題に対処し、非同期プログラミングのコストを削減するために、ViteはSolidity ++と呼ばれるコントラクト言語とそれに関連付けられたSDKを提供します。実際のシナリオでは、BASEセマンティクスがACIDセマンティクスに代替できることがわかっています。 HDPoSコンセンサスアルゴリズムにより、トランザクション確認が1秒以内に完了することが保証されているため、遅延の増加は依然として抑制されます。