Mining-Reward

礦工的公鑰是如何傳遞到 miner.cpp 的?

  • February 18, 2020

我知道礦工使用像 pooler 的 cpuminer 這樣的應用程序可以設置一個 Coinbase-txn 地址來生成新的硬幣。我試圖在一個學術項目的核心客戶端程式碼中覆蓋此設置,以展示比特幣的共識機制。當我嘗試在核心客戶端中設置一個固定地址時,礦工仍然被支付到他們設置的地址,而不是 miner.cpp 文件中的硬編碼地址

礦工的 Coinbase 交易支付地址是如何發送的?對邏輯在哪裡有一些了解可以讓我進一步嘗試解決我的項目問題。

謝謝

比特幣核心不設置支付地址。它只能在您使用內部礦工時做到這一點(即使用generatetoaddress命令,但僅限於 regtest)。否則,外部挖礦軟體設置地址。這是因為比特幣核心不只是發送一個完整的區塊,挖礦軟體可以正常工作。

相反,那些探勘軟體使用getblocktemplate返回塊模板的 RPC。此模板不包括 coinbase 交易。它僅包含建構幣庫所需的資訊(例如金額)以及要包含在區塊中的交易數據。但它本身並不是一個區塊,外部礦工仍然必須建構自己的 coinbase 交易並根據區塊模板中的資訊進行區塊。

因此,Bitcoin Core 不能強制外部挖礦軟體在 coinbase 交易中使用特定的輸出腳本。您必須配置您的探勘軟體才能做到這一點。

引用自:https://bitcoin.stackexchange.com/questions/93354