要發送的 btc 值如何寫入原始交易?
我目前正在學習比特幣,我想出了這個: https ://medium.datadriveninvestor.com/bitcoin-raw-transaction-breakdown-c0a5a3aa8688了解更多關於原始交易的資訊。
我無法理解的是,他正在發送比特幣 0.00156636 BTC = 156636 Sat,那麼為什麼原始 tx 中的值是這樣的:
60e3160000000000
最後的那些零總是寫的嗎?
礦工費是怎麼寫的?
連結到 blockchain.com 關於交易細節:https ://www.blockchain.com/btc/tx/2621c2609d114f652dadf6fd95820c021da1cf2d0ac15e0361fd5d136e30a3c4
我已經在這里為你回答了這個問題
金額應編碼為 8 個字節,採用 little-endian 格式。如果你想發送 100 萬聰,這將是 0x40420F0000000000。
總是寫入零,因為該值必須是 8 個字節長,最低有效字節在前。請注意,這是十六進製而不是十進制。
礦工費沒有寫在交易中。它是通過從輸入的總值中減去輸出的總值來計算的。不同的是收費。
實際上,這筆交易 (
2621c2609d114f652dadf6fd95820c021da1cf2d0ac15e0361fd5d136e30a3c4
) 的價值是255d020000000000
,其中是 0.00154917 BTC 的 8 字節 little-endian 版本。為了解釋它,你反轉所有字節。忽略所有多餘的零,你得到0x025d25
的是 154917 sats 或 0.00154917 BTC 的十六進制值。這個事務,一旦被解析,看起來像這樣
01000000
::版本。1 的小端表示
0x01
:輸入計數,在這種情況下為一個
72f5d096ce8d2055d46db83cd969265f99146f09c30fd9c7b4e77e46830b6e7e00000000
:先前的輸出,前 64 位是 txid,其餘 8 位是正在使用的 UTXO 的索引。
0x6a
:scriptSig 的大小,在這種情況下為 106
473044022033bff843a014d1958eeb6f6dda47879a6cdab139cb85a818905c8e4f034c4bed022028361e8e3f43df257f31cd6c502b155facf70256d230e5cd059a8b83ef864f360121027580575d62d199ea4560451402b035eeb9786972d2c1a2c17b6e798d97265dda
:一個非常大的 scriptSig
0xffffffff
:nSequence
01
:輸出計數,只有一個
255d020000000000
:sats 和 little-endian的值 :scriptPubkey
0x19
的大小:Spk
76a9145030f21fe34949ccacdd9505c50f223c5685f70588ac
:
00000000
nLockTime來源:比特幣維基