Mining
Ethash過程中的種子是什麼
出於採礦目的,需要生成種子。我讀了一些文章,但仍然不明白這個種子是從哪裡來的。是如何計算的,或者它是關於什麼的?我在乙太坊維基 github 上找到了這個:
def get_seedhash(block): s = '\x00' * 32 for i in range(block.number // EPOCH_LENGTH): s = serialize_hash(sha3_256(s)) return s
任何人都可以向我解釋這段程式碼嗎?
Ethash 以 epoch 為單位進行雜湊計算,每個 epoch 為 30000 個塊,同一 epoch 中的所有塊都以相同的種子開始。
對於 epoch 0,種子是
'\x00'*32 = '0x0000000000000000000000000000000000000000000000000000000000000000'
.對於 epoch
N
,種子將是前一個 epoch 的種子的 sha3N-1
。例如,在 epoch 1 中,種子將是
sha3('0x0000000000000000000000000000000000000000000000000000000000000000') = '0x290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563'
.