Bitcoin-Core

如何使用 Bitcoin Core 的 submitblock 方法

  • June 20, 2021

我試圖了解採礦是如何運作的。出於學習目的,我使用比特幣核心作為單獨的礦池。Getblocktemplate 將返回足以開始探勘的數據,這很容易建立正確的隨機數。但下一步是什麼?

我在比特幣核心方法 submitblock 中發現有一個參數/塊數據。我沒有找到任何應該如何建構數據的範例。請給我一些建議。

submitblock方法將原始序列化塊作為其唯一參數。您可以在此處此處找到有關這些內容的詳細文件。

例如,這是比特幣的原始創世塊:

0100000000000000000000000000000000000000000000000000000000000000000000003BA3EDFD7A7B12B27AC72C3E67768F617FC81BC3888A51323A9FB8AA4B1E5E4A29AB5F49FFFF001D1DAC2B7C0101000000010000000000000000000000000000000000000000000000000000000000000000FFFFFFFF4D04FFFF001D0104455468652054696D65732030332F4A616E2F32303039204368616E63656C6C6F72206F6E206272696E6B206F66207365636F6E64206261696C6F757420666F722062616E6B73FFFFFFFF0100F2052A01000000434104678AFDB0FE5548271967F1A67130B7105CD6A828E03909A67962E0EA1F61DEB649F6BC3F4CEF38C4F35504E51EC112DE5C384DF7BA0B8D578A4C702B6BF11D5FAC00000000

當你分裂成碎片時:

version:     01000000
prev block:  0000000000000000000000000000000000000000000000000000000000000000 
merkle root: 3BA3EDFD7A7B12B27AC72C3E67768F617FC81BC3888A51323A9FB8AA4B1E5E4A
timestamp:   29AB5F49
bits:        FFFF001D
nonce        1DAC2B7C
num txs:     01
tx1:         01000000010000000000000000000000000000000000000000000000000000000000000000FFFFFFFF4D04FFFF001D0104455468652054696D65732030332F4A616E2F32303039204368616E63656C6C6F72206F6E206272696E6B206F66207365636F6E64206261696C6F757420666F722062616E6B73FFFFFFFF0100F2052A01000000434104678AFDB0FE5548271967F1A67130B7105CD6A828E03909A67962E0EA1F61DEB649F6BC3F4CEF38C4F35504E51EC112DE5C384DF7BA0B8D578A4C702B6BF11D5FAC00000000

的輸入submitblock是十六進制的“序列化”原始塊。“序列化”塊的格式在這裡(很難找到!)….

<https://developer.bitcoin.org/reference/block_chain.html#serialized-blocks>

“序列化”塊格式末尾包含的原始交易本身的格式如下……

<https://developer.bitcoin.org/reference/transactions.html#raw-transaction-format>

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