Script

coinbase 交易 afbff1130b6fcbdceebbadfc48a842af1f03ee08a79e042b37fc467518b49a0f 的 Script_sig

  • April 28, 2020

我目前正在用 Python 開發一個區塊鏈解析器,它已經在文件 blk00006.dat 中崩潰,用於 coinbase 交易,其中散列afbff1130b6fcbdceebbadfc48a842af1f03ee08a79e042b37fc467518b49a0f在 block 中0000000000000a46714e1b03e5e0693e9ecaa3ec1853f1cdf34e9ca52e13f1ff。它崩潰的原因是它OP_PUSHDATA2在腳本簽名中有一個值為 28265 的值。但是,根據腳本的大小,只有 21 個字節可以讀取。

我修復了我的程式碼以避免在這個腳本中崩潰,但我仍然很好奇這個 script_signature 是如何被網路接受的。

解析腳本。從協議的角度來看,它們是字節數組,它們的內容與事務反序列化無關。

然而,腳本在它們參與支出時被*執行。對於輸出,即它們被(試圖)花費的時間。對於非 coinbase 輸入,這是立即的。Coinbases 從不參與支出,因此幾乎()出於所有目的,它們只是字節數組。

(*) 這有兩個部分例外。BIP34 要求 coinbase 從推動區塊高度開始。80000 vsigops 限制也將 CHECKSIG 操作計入 coinbases(將它們視為腳本,但在第一個無效操作碼處停止計數)。

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