驗證
兩行指令,而且都不需要相信本頁。
本站主張的一切都衍生自發行包裡的檔案。若本頁某個數字與下面指令印出的不符,以指令為準。
發行版
shell
python install/mmrf.py --project-root . verify-release
python install/mmrf.py --project-root . doctor旗標放在子指令之前。--project-root 是頂層參數,所以把它放在 verify-release 之後會解析失敗——這值得知道,因為隨附文件有些地方寫成相反的順序。
- 發行 id
MMRF-1.0.0- 簽章發行清單
release_v10/stable_release_manifest_v1.0.json- 發行公鑰
release_v10/stable_release_signing.public.pem- 穩定清單
stable_data/stable_manifest_v1.0.json- doctor 檢查的分片
- 20
預期會看到 valid: false,並讀懂原因
對著 runtime 儲存庫的 clone 執行,verify-release 會回報 valid: false。這是正確的答案。這個儲存庫是已發布的包加上兩個被修復的檔案,而檢查把它們指名出來:
json
{
"valid": false,
"checks": {
"signature_and_document_hash": true,
"schema_ok": true,
"release_id_ok": true,
"version_ok": true,
"safety_ok": true,
"payload_ok": false
}
}
hash_mismatch lake/mmrf_data_lake.py
hash_mismatch lake/mmrf_lake_cli.py簽章依然通過驗證,所有安全與語意檢查也都通過。只有那兩個被修復檔案的 payload 雜湊不同,而修復內容記在 REPAIRS.md。若要驗證與發布時完全一致的版本,請 checkout 匯入 commit——它與發行包逐位元相同——並在那裡執行。
無論如何資料集都沒有被動過。沒有任何分片位元組改變,下方的穩定清單雜湊就是發行時公布的那一個。
重現清單雜湊
清單雜湊不是檔案的雜湊。它是清單物件移除 manifest_sha256 欄位後、正規 JSON 的 SHA-256——一個自我指涉的欄位不可能存在於它所描述的東西內部。重現它只要四行:
python
import json, hashlib
m = json.load(open('stable_data/stable_manifest_v1.0.json', encoding='utf-8'))
core = {k: v for k, v in m.items() if k != 'manifest_sha256'}
canon = json.dumps(core, ensure_ascii=False, sort_keys=True,
separators=(',', ':'))
print(hashlib.sha256(canon.encode()).hexdigest() == m['manifest_sha256'])- 預期值
a5caea22a57efaac915c00dd92c655b1126e0b6d9b2b93790e48bc167733e0d1
自己數一遍記錄
分片就是單純的 NumPy 封存檔。沒有任何東西阻止你在完全不用 MMRF 程式碼的情況下自己數:
python
import numpy as np, pathlib
total = 0
for p in sorted(pathlib.Path('stable_data/shards').glob('*.npz')):
with np.load(p) as z:
total += len(z['prime'])
print(total) # 148,933拿去對照文獻
這個資料集裡有三個值是獨立已知的,因此是現成最省事的外部檢查:
| 量 | 本資料集 | 已知值 |
|---|---|---|
| π(2,000,000) | 148,933 | 148,933 |
| 2×10⁶ 以下最大間隔 | 132 | 132 |
| 2×10⁶ 以下孪生質數對 | 14,871 | 14,871 |
一張兩欄一致的表值得印出來,只因為兩欄來自不同地方:左欄來自分片,右欄來自已發表的值。若它們哪天不一致,該改的是這一頁。
機器可讀
靜態、不需 JavaScript、不做內容協商:
| 路徑 | 內容 |
|---|---|
| /.well-known/mmrf.json | 發行 id、穩定清單雜湊、查詢面宣告 |
| /datasets/index.json | 資料集身分、欄位、清單雜湊 |
| /workflows/index.json | 工作流登錄與預期輸出雜湊 |
| /governance/proposals.json | 提案、審查、收據、來源節點 |
| /citations/index.json | 資料集引用記錄 |
| /results/stable-baseline.json | 完整基線輸出,含自我雜湊 |
| /llms.txt | 給語言模型的導引 |
| /agents.md | 代理可以問與不可以問什麼 |