Mining
light_verify 和只是驗證 DAG 大小之間的區別?
我正在看這個文件:
https://github.com/ethereum/wiki/blob/master/Dagger-Hashimoto.md
根據我的收集,light_verify 使用 quick_hashimoto,它使用遞歸算法計算 DAG 並沿途記憶體所有值。quick_hashimoto 是否被認為是“輕量級”,因為您只需要計算大多數
m + (mix % 2**64) % m
節點(最小m
節點)而不是必須生成整個 DAG?
做了一點探勘自己,我想我現在明白了。本質上,它被稱為“快速”,因為我們不需要生成整個 daggerset,只需要計算
quick_calc
部分等式中引用的節點:
mix ^= quick_calc(params, seed, m + (mix % 2**64) % m)
quick_calc 將嘗試計算
daggerset[m + (mix % 2**64) % m]
非快速算法中引用的 daggerset 節點。而要計算這個節點,你只需要計算和記憶體 daggerset 的一個子集。
此節點用於 dagger-hashimoto 算法的 XOR 部分
for _ in range(params["accesses"]): mix ^= quick_calc(params, seed, m + (mix % 2**64) % m) return dbl_sha3(mix)