Layer 2 全体プロセス

このページでは前ページのLayer 1のフローを理解した上で、オフチェーン処理を行うEMETH Layer 2の構成と処理フローを説明していきます。

  1. 依頼者 (Requester) によるデポジット

    • 依頼者は事前に一定量のEMETHトークンをBlockchain(EMETH Core)にデポジットします。

  2. 依頼者 (Requester) によるJobの登録

    • 依頼者はEMETH Execution Layer上に親Jobの情報を登録します。

    • Jobに紐づくデータセットはL1同様、EMETH Storageに格納されます。

    • 処理開始前であれば、依頼者はBlockchainへCancel表明を送ることで、依頼をキャンセルできます。

  3. L2 SplitterによるSubJobの生成

    • L2 SplitterはEMETH Execution Layerの情報を監視し、Split 可能な Jobがあり、かつ依頼者が Split 処理を許可している場合、以下の処理を行います。

      • Splitterを呼び出し、データセットを分割します。

      • Jobを複数のSubJobに分割し、親Jobとして紐付けてEMETH Execution Layerへ登録します。

  4. 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されます。

  5. VerifierによるtimeoutしたJobの処理

    • VerifierはEMETH Execution Layerの情報を監視し、timeoutとなったJobやSubJobを検索します。

    • EMETH Execution Layerへtimeout処理 (timeout) を送ります。この際、処理を行ってEMETH Nodeはtimeoutペナルティ分のEMETHトークンがデポジットから没収されます。

  6. 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の再登録を行います。

  7. SignerによるTicket発行

    • SignerはEMETH Execution Layerの情報を監視し、confirmedステータスのJobやSubJobを検索します。

    • Signerは定期的に各EMETH Nodeにより処理された複数のJobやSubJob内容を圧縮(hash)したTicketに対して、署名を行いEMETH Execution Layer上に保存します。

  8. L2 AggregatorによるSubJobの完了確認

    • SubJobが全て完了したことを確認し、Aggregatorプログラムを呼び出して処理結果を統合し、EMETH Storageに記録します。

    • また同時に、EMETH Execution Layer上の親JobのStatusをConfirmedに更新します。

  9. L1への請求

    • EMETH NodeはEMETH Execution Layer上のTicketを監視し、ダウンロードした後にL1 (EMETH Core)へ送信します。

    • Ticketに含まれる複数のJobやSubJob処理分の報酬がEMETH Nodeに報酬が支払われます。

    • Ticketに含まれるJobの処理実績は、累計fuel量としてEMETH Core上に累積カウントされます。

このようにEMETH Layer2の処理は大部分がオフチェーンで実行され、ブロックチェーンへの登録が限定的であるため、gas消費量を最小限に抑えられてJobの処理が行われます。

Last updated