Transactions
比特幣交易中“過多”的輸入和輸出是如何處理的?
我在 python 中編寫了一個比特幣交易解析器,當交易有超過 255 個輸入或輸出時它會翻轉。一些交易的輸入/輸出數量由 1 字節的十六進製字元串表示,而其他交易則由更多表示。我如何知道(以及如何對解析器進行程式以知道)一個 tx 的輸入/輸出表示是否為 1 個字節或更多?
輸入/輸出的數量被編碼為“var_int”或“可變長度整數”。
首先查看第一個字節。如果它是 252 或更少,那麼就是這樣,這就是你的號碼(就像你一直在使用的那樣),沒有更多的字節可以讀取。
如果第一個字節是 253,那麼後面還有 2 個字節,它們是 16 位小端整數。254 表示後面有 4 個字節(共 5 個),是一個 32 位整數。255 表示後面有 8 個字節,即 64 位整數。
你可以在這裡閱讀更多內容:https ://en.bitcoin.it/wiki/Protocol_documentation#Variable_length_integer