Layer 2 全体プロセス
Last updated
Last updated
このページでは前ページのLayer 1のフローを理解した上で、オフチェーン処理を行うEMETH Layer 2の構成と処理フローを説明していきます。
依頼者 (Requester) によるデポジット
依頼者は事前に一定量のEMETHトークンをBlockchain(EMETH Core)にデポジットします。
依頼者 (Requester) によるJobの登録
依頼者はEMETH Execution Layer上に親Jobの情報を登録します。
Jobに紐づくデータセットはL1同様、EMETH Storageに格納されます。
処理開始前であれば、依頼者はBlockchainへCancel表明を送ることで、依頼をキャンセルできます。
L2 SplitterによるSubJobの生成
L2 SplitterはEMETH Execution Layerの情報を監視し、Split 可能な Jobがあり、かつ依頼者が Split 処理を許可している場合、以下の処理を行います。
Splitterを呼び出し、データセットを分割します。
Jobを複数のSubJobに分割し、親Jobとして紐付けてEMETH Execution Layerへ登録します。
EMETH Nodeによる処理の実行
EMETH NodeはEMETH Execution Layer上の未処理のJobやSubJobを監視し、以下の処理を行います。
EMETH NodeへのFeeおよびDeadlineが魅力的なJobやSubJobを探します。
EMETH Execution Layerへ処理開始の意思表明 (process) を送ります。
EMETH Storageから該当JobやSubJobのデータセットをダウンロードして処理を開始します。
処理結果をEMETH Storageへ格納し、EMETH Execution Layerへ完了報告 (submit) を送ります。
EMETH Nodeは、処理開始の意思表明後に辞退することも可能です。この際、ペナルティ分のEMETHトークンがデポジットから没収され、burnされます。
VerifierによるtimeoutしたJobの処理
VerifierはEMETH Execution Layerの情報を監視し、timeoutとなったJobやSubJobを検索します。
EMETH Execution Layerへtimeout処理 (timeout) を送ります。この際、処理を行ってEMETH Nodeはtimeoutペナルティ分のEMETHトークンがデポジットから没収されます。
L2 Verifierによる処理結果の検証
L2 VerifierはEMETH Execution Layer上の完了したJobやSubJobを監視します。
対象となるJobやSubJobに対して、EMETH Storageからデータセット及びEMETH Nodeによる処理結果を取得します。
対象となるJobやSubJobの処理結果に対して検証を行います。
ProgramIdに対応したVerifierプログラムを起動して検証し、処理結果の検証が合格であればverify命令を、不合格であればrejectResult命令をEMETH Execution Layerに送ります。また、SubJobが不合格の場合はSubJobの再登録を行います。
SignerによるTicket発行
SignerはEMETH Execution Layerの情報を監視し、confirmedステータスのJobやSubJobを検索します。
Signerは定期的に各EMETH Nodeにより処理された複数のJobやSubJob内容を圧縮(hash)したTicketに対して、署名を行いEMETH Execution Layer上に保存します。
L2 AggregatorによるSubJobの完了確認
SubJobが全て完了したことを確認し、Aggregatorプログラムを呼び出して処理結果を統合し、EMETH Storageに記録します。
また同時に、EMETH Execution Layer上の親JobのStatusをConfirmedに更新します。
L1への請求
EMETH NodeはEMETH Execution Layer上のTicketを監視し、ダウンロードした後にL1 (EMETH Core)へ送信します。
Ticketに含まれる複数のJobやSubJob処理分の報酬がEMETH Nodeに報酬が支払われます。
Ticketに含まれるJobの処理実績は、累計fuel量としてEMETH Core上に累積カウントされます。
このようにEMETH Layer2の処理は大部分がオフチェーンで実行され、ブロックチェーンへの登録が限定的であるため、gas消費量を最小限に抑えられてJobの処理が行われます。