Powhash
如何獲取特定區塊的 POW-Hash?
我正在嘗試獲取一個塊的 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 輸出 :)