Powhash

如何獲取特定區塊的 POW-Hash?

  • October 24, 2018

我正在嘗試獲取一個塊的 pow-hash。有沒有一種方法可以輕鬆做到這一點?

提前致謝 :)

在go-ethereum源碼上可以看到pow-hash就是區塊頭的hash

// SealHash returns the hash of a block prior to it being sealed.
func (ethash *Ethash) SealHash(header *types.Header) (hash common.Hash) {
   hasher := sha3.NewKeccak256()

   rlp.Encode(hasher, []interface{}{
       header.ParentHash,
       header.UncleHash,
       header.Coinbase,
       header.Root,
       header.TxHash,
       header.ReceiptHash,
       header.Bloom,
       header.Difficulty,
       header.Number,
       header.GasLimit,
       header.GasUsed,
       header.Time,
       header.Extra,
   })
   hasher.Sum(hash[:0])
   return hash
}

您可以使用 JSON RPC 從免費的 infura 端點獲取塊資訊,並在塊頭中選擇雜湊

例如

curl -X POST \
 https://mainnet.infura.io/v3/YOUR_API_KEY \
 -H 'Cache-Control: no-cache' \
 -H 'Content-Type: application/json' \
 -H 'Postman-Token: 05e4a4b4-1476-4d79-9771-38dc56aa16e6' \
 -d '{"jsonrpc":"2.0","method":"eth_getBlockByNumber","params":["0x6432AA", true],"id":1}'

YOUR_API_KEY 是您的 infura 儀表板帳戶中的 api 密鑰。

或者只是解析 etherscan.io 的 html 輸出 :)

https://etherscan.io/block/6566570

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