> For the complete documentation index, see [llms.txt](https://emeth-1.gitbook.io/emeth-white-paper-v.1.0.-jp/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://emeth-1.gitbook.io/emeth-white-paper-v.1.0.-jp/7emeth-kitekuch/7-2-layer-1-purosesu.md).

# 7-2. Layer 1 全体プロセス

<figure><img src="https://4008997069-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F39K91SAlJjkz2SnxA6AI%2Fuploads%2FLvGIOFevAOxYI5YADhGl%2FScreenshot%202024-07-30%20093900.png?alt=media&amp;token=de1f0c68-375d-472a-9e1b-170cba0c015c" alt=""><figcaption></figcaption></figure>

1. 依頼者 (Requester) によるJobの登録
   * 依頼者は、Blockchain上のEMETH Coreへ親Jobの情報を登録し、Fee(EMETH NodeへのFee + VerifierへのFee)をEMETHトークンで支払います。
   * Jobに紐づくデータセットはEMETH Storageに格納されます。
   * 処理開始前であれば、依頼者はEMETH CoreへCancel表明を送ることで、依頼をキャンセルできます。この際、支払ったFeeは全額返金されます。
2. EMETH Cacheサーバによる常時同期キャッシュ
   * EMETH CacheサーバはEMETH Core上のJobを常時同期しキャッシュします。EMETH Coreに登録されたJob情報はEMETH Cacheへ自動的に連動されます。
3. L1サーバによるSubJobの生成
   * L1サーバはEMETH Cacheサーバの情報を監視し、Split 可能な Jobがあり、かつ依頼者が Split 処理を許可している場合、以下の処理を行います。
     * Splitterを呼び出し、データセットを分割します。
     * Jobを複数のSubJobに分割し、親Jobとして紐付けてEMETH Coreへ登録します。
4. EMETH Nodeによる処理の実行
   * EMETH NodeはEMETH Cacheサーバの情報を監視し、以下の処理を行います。
     * 未処理のJobやSubJobの中からEMETH NodeへのFeeおよびDeadlineが魅力的なJobやSubJobを探します。
     * EMETH Coreへ処理開始の意思表明 (process) を送ります。
     * EMETH Storageから該当JobやSubJobのデータセットをダウンロードして処理を開始します。
     * 処理結果をEMETH Storageへ格納し、EMETH Coreへ完了報告 (submit) を送ります。
   * EMETH Nodeは、処理開始の意思表明後に辞退することも可能です。この際、ペナルティ分のEMETHトークンが没収され、burnされます。
5. VerifierによるtimeoutしたJobやSubJobの処理
   * VerifierはEMETH Cacheサーバの情報を監視し、timeoutとなったJobやSubJobを検索します。
   * Blockchainへtimeout処理を送ります。この際、処理を行っていたEMETH Nodeは、timeoutペナルティ分のEMETHトークンが没収されます。
6. Verifierによる処理結果の検証
   * VerifierはEMETH Cache上の完了したJobやSubJobを監視します。
   * 対象となるJobやSubJobに対して、EMETH Storageからデータセット及びEMETH Nodeによる処理結果を取得します。
   * Verifierプログラムを起動して検証し、処理結果の検証が合格であればverify命令を、不合格であればrejectResult命令をBlockchainに送ります。また、SubJobが不合格の場合はSubJobの再登録を行います。
7. AggregatorによるSubJobの完了確認
   * SubJobが全て完了したことを確認し、Aggregatorプログラムを呼び出して処理結果を統合し、EMETH Storageに記録します。
   * また同時に、EMETH Core上の親JobのStatusをConfirmedに更新します。
8. 検証結果に応じた報酬の支払い
   * 検証に合格したJobやSubJobに対して、EMETH Nodeに報酬が支払われます。
   * 合格したJobやSubJobの処理実績は、累計fuel量としてEMETH Core上に累積カウントされます。
   * 検証に不合格したJobやSubJobに対して、EMETH Nodeから罰金を徴収します。
