Mining

light_verify 和只是驗證 DAG 大小之間的區別?

  • September 24, 2017

我正在看這個文件:

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)

引用自:https://ethereum.stackexchange.com/questions/25706