Bitcoin-Core
如何使用 createrawtransaction 創建 coinbase 交易?
我想生成一個事務,
createrawtransaction
以便它可以submitblock
與塊頭一起傳遞。我嘗試使用:
[{"txid":"0000000000000000000000000000000000000000000000000000000000000000","vout":0}]{"bc1qd8hza5w3mz7t3tudtlplm9xht4sjwg0e3t9gy2":6.25000000}
但它沒有輸出 coinbase 交易:
020000000100000000000000000000000000000000000000000000000000000000000000000000000000ffffffff0140be40250000000016001469ee2ed1d1d8bcb8af8d5fc3fd94d75d612721f900000000
無法使用
createrawtransaction
. coinbase 交易必須遵循許多規則,而createrawtransaction
RPC 無法設置欄位以滿足這些規則。例如,BIP 34 要求 coinbase 在 scriptSig 中包含塊的高度。但是createrawtransaction
不允許您在 scriptSig 中設置任何內容。礦工必須使用可以獨立創建 coinbase 交易的軟體。礦工實際上更喜歡這樣做,因為他們希望能夠修改 coinbase 以用作額外的 nonce,這樣當他們用完 nonce 時,他們不必重新選擇要包含在區塊中的交易。相反,他們可以更改 coinbase 以導致 merkle 根發生變化。
根據 BIP 34,您必須在您的 Coinbase 交易中包含區塊高度,否則將無效,
您的 coinbase 交易的 scryptSig,必須以推送的字節數(實際上是 0x03)開頭,然後是候選塊的十六進製表示,不要忘記小端轉換