Mining

如何查詢某個區塊的挖礦獎勵金額?

  • April 20, 2022

我想寫一個腳本來分析挖礦獎勵。查詢某個區塊的挖礦獎勵數量的最佳方式是什麼?似乎可以查詢幸運礦工的地址:

web3.eth.getBlock(200).miner
"0xbb7b8287f3f0a933474a79eae42cbca977791171"

然後我可以以某種方式深入研究該帳戶並在某個區塊選擇交易。這是最好的方法嗎?或者你知道捷徑嗎?怎麼做?

“然後我可以以某種方式深入研究賬戶並在某個區塊選擇交易。”

挖礦獎勵不是交易,因此您無法以通常的方式查詢它們。根據這個先前的答案:

乙太坊沒有輸入和輸出,只有狀態變化和平衡。因此,挖礦獎勵沒有交易雜湊,因為它們不是交易。

您要麼需要自己計算獎勵,要麼使用其他人的 API。

自己計算獎勵

計算獎勵的算法 - 如Mining wiki 頁面所述- 如下:

獲勝區塊的成功 PoW 礦工將獲得:

  • “獲勝”區塊的靜態區塊獎勵,由 5.0 Ether 組成
  • 區塊內消耗的所有gas,即獲勝礦工送出的區塊中所有交易執行所消耗的所有gas,都由發送者補償。作為共識協議的一部分,產生的 gascost 記入礦工的賬戶。隨著時間的推移,預計這些將使靜態塊獎勵相形見絀。
  • 包含 Uncles 作為區塊一部分的額外獎勵,形式為每個 Uncle 額外 1/32

第二部分和第三部分所需的數據可以使用以下命令從塊中查詢:

  • web3.eth.getBlock(<block>).gasUsed
  • web3.eth.getBlock(<block>).uncles(注:每個叔叔的獎勵是靜態獎勵的/32,即5 / 32。)

使用別人的 API

Etherscan 是區塊瀏覽器之一,其中包括給定區塊獎勵的詳細資訊(參見此處的範例)。他們的 API 的詳細資訊可以在他們的網站上找到,或者對於 Python 綁定,可以在這個GitHub 頁面上找到。(我還沒有檢查這些返回的獎勵詳細資訊,所以 YMMV。)

編輯:靜態獎勵現在是 3.0 乙太幣

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