# work package 總體流程 **1.work package 的產生:** 外部觸發事件(如使用者行為、dApp使用者上傳任務、系統定期任務等)會提交到 JAM 網路。 **2.uthorization(授權):** 核查該 work package 能否在指定的 core 處理(Ch.8)。若授權成功,進行下一步;失敗則流程終止(Stop)。 **3.分配 work package(if 授權成功):** JAM 系統將 work package 分配給合適的 core 進行處理。 **4.Refinement(細化處理):** >指定 core 執行 refinement code 對 work package 做進一步處理。 >產出: >>1.refined result(結果) >>2.preimage(處理過程的中繼狀態) 3.auditing stat(稽核資訊) 4.guarantee(保證資訊) **5.提交 work report(提交成果):** 將 refinement 結果與保證資料封裝為 work report 並提交。 會包含 Ch.6.E 所述的六個欄位:refined result、code、上下文資訊、preimages、auditing stat、guarantees。 **6.Auditing(稽核 work report):** 驗證結果是否正確: 1.如果稽核通過,進入 accumulation 階段。 2.如果稽核失敗,流程終止(Stop)。 稽核結果中會產生 assurance(對 work report 的保證): >其他驗證者節點會檢查此gaurantee和work report如果正確就會生成assurance然後提交,並且要有2/3的驗證者提出assurance才可以進入accumulate階段。 :+1: **7.Accumulation(保證累積):** 系統進行狀態累積與 work report 的最終納入。 Ch.12 會詳細介紹此過程。簡單來說就是用來處理狀態更新(state updates)的一個步驟 **8.上鏈狀態更新** 系統更新鏈上的狀態,並持久化結果。 ``` mermaid flowchart TD A[work package 的產生<br>(如使用者上傳任務等)] B[Authorization<br>授權(Ch.8)] C{授權成功?} D1[分配 work package<br>給適當 core] E[Refinement<br>執行 refinement code<br>產出 result, preimage 等] F[提交 work report<br>(含 refined code, preimage 等)] G[Auditing 稽核<br>work report 是否正確] H1{稽核成功?} I[Accumulation<br>保證累積處理(Ch.12)] J[上鏈狀態更新] Z2[Stop<br>稽核失敗] A --> B --> C C -- 否 --> Z2 C -- 是 --> D1 --> E --> F --> G --> H1 H1 -- 否 --> Z2 H1 -- 是 --> I --> J ```