Coinbase-Transaction

根據 BIP 34 的要求,礦工如何將塊高度放入他們的 coinbase 交易中

  • August 3, 2020

我使用 createrawtransaction 方法創建了一個 coinbase 交易,如下所示:

createrawtransaction '[{"txid":"0000000000000000000000000000000000000000000000000000000000000000","vout":0}]{"kgjdtruea5w3mz7t3tudtlplm9xht4sjwg0e3tihgtr":6.25000000}'

對此呼籲的回應是:

020000000100000000000000000000000000000000000000000000000000000000000000000000000000ffffffff0140be40250000000017a9145ea405d95b789aa887e229d8b1da44c2964054248700000000

我了解推送的字節數和塊的高度必須包含在此原始數據的腳本中,如下所示:

其實03+The height of the block in little endian

在這個例子中,我必須把它放在ffffffffand 之間0140be40250000嗎?

我看到了一些例子,但我很困惑,因為在 scryptsig 之前有 scriptig 的大小

幫助表示讚賞

謝謝大家

在此事務中,scriptSig 的大小為 0,因為它尚未填寫。你還使用了一個全 0 的 txid 和一個 0 的 vout,所以這個 0 的大小會在你的大串零中失去。

00000000000000000000000000000000000000000000000000000000000000000000000000ffffffff是輸入數據。

這個的前 32 個字節是前一個 txid。後面的 4 個字節是 vout。這給我們留下了00ffffffff. 剩下的0x00字節是 scriptSig 的長度,目前長度為 0。ffffffff是序列號。

你要做的就是用你的 scriptSig 替換那個 0x00 字節。scriptSig 以它的長度為前綴,因此您將其替換為040334cc09.

請注意,目前您的交易不是有效的 coinbase 交易。coinbase 交易的 vout 是0xffffffff,而不是 0。

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