---
# System prepended metadata

title: JAM 整體架構雜項筆記
tags: [Casual]

---

# JAM Structure 雜項筆記


Work Package 總體流程
1. Work Package 的產生: 外部參與者 (例如平行鏈、dApp) 提交到 JAM 網路。
2. Authorization (chap 8): 驗證 Work package 是否權限在指定的 core 上執行。
3. 分配 Work Package: JAM 系統會將 work package 分配給 core 進行處理。
4. Refinement (chap 11): Core 中的驗證者節點會共同執行 work package 中的每個 work item。
5. 生成 Work Report(chap 11): 將每個 work item 的執行結果整合到一個 work report 中。
6. 提交 Work Report(chap 12): Core 會將生成的 work report 提交到 JAM 網路。
7. 驗證 Work Report(chap 12): JAM 網路中的其他驗證者節點會驗證 work report 的有效性和正確性。
8. Accumulation (累積)(chap 12): 如果 work report 通過驗證，系統會執行 accumulation 過程，將 work report 的結果整合到鏈上狀態。
9. 狀態更新(chap 12): Accumulation 完成後，鏈上狀態會被更新，反映 work package 的執行結果。


```mermaid
graph TD;
A[Work Package 產生] --> B{Authorization}
B -- 授權成功 --> C[分配 Work Package]
B -- 授權失敗 --> D((停止))
C --> E[Refinement]
E --> F[提交 Work Report]
F --> G{Auditting 
驗證 Work Report}
G -- 驗證成功 --> H[Accumulation]
G -- 驗證失敗 --> D
H --> I[上鏈狀態更新]
```

![image](https://hackmd.io/_uploads/rkle5dVVkx.png)

```mermaid
graph TD;
    A[開始] --> B{計算最新的區塊時間戳 τ'};
    B --> C{計算最新的區塊歷史信息 β†};
    C --> D{計算區塊歷史信息 β'};
    D --> E{計算 Safrole 協議的狀態 γ'};
    E --> F{計算最新的熵累加器 η'};
    F --> G{計算最新的活動驗證器密鑰 κ'};
    G --> H{計算最新的待用驗證器密鑰 λ'};
    H --> I{計算最新的判斷狀態 ψ'};
    I --> J{計算第一次更新的待處理報告 ρ†};
    J --> K{計算第二次更新的待處理報告 ρ‡};
    K --> L{計算最新的待處理報告 ρ'};
    L --> M{計算可用的工作報告 W*};
    M --> N{計算新的累積隊列 ϑ'、累積歷史 ξ'、服務狀態 δ‡、權限狀態 χ'、待處理驗證器密鑰 ι'、授權隊列 φ' 服務累積 C};
    N --> O{計算最新的服務狀態 δ'};
    O --> P{計算最新的核心授權池 α'};
    P --> Q{計算最新的驗證器統計信息 π'};
    Q --> R[結束];
```


Block production 大致流程
```mermaid
graph TD;
    C[收集驗證者的 Bandersnatch 公鑰]
    C --> E[生成 Ring-VRF]
    E --> F[驗證者使用私鑰對 Ring-VRF 簽名生成 ticket]
    F --> G[提交 ticket 到網絡]
    G --> H[驗證 ticket 並排序]
    H --> I[生成 slot key sequence γ_s]
    I --> K[區塊生產者在下個 epoch 使用 γ_s 中對應的金鑰密封區塊]
```

Assurance 的運作機制ㄧ
1. Guarantee 生成: 驗證者節點執行 work package 後，會生成 work report 並對其簽名，生成 Guarantee。
2. Assurance 生成: 其他驗證者節點會檢查這個 Guarantee 和 work report，如果確認其正確性，則會生成 Assurance，也就是對 Guarantee 的確認。
3. 提交 Assurance: 驗證者節點將 Assurance 提交到 JAM 網路。
4. Accumulate: 當一個 work report 收到足夠多的 Assurance (例如 2-of-3 或 3-of-5)，它就準備被 Accumulate 到鏈上狀態。

Auditing 和 Judging 是 Refinement 階段的一部分，它們會在 work package 執行完成後，work report 生成之前執行。 它們的作用是驗證 work report 的正確性，確保只有正確的 work report 才會被提交到 JAM 網路進行累積。
