Raw-Transaction
隔離見證交易是什麼樣的?
我想了解隔離見證的工作原理,我認為原始交易數據將是一個很好的起點
如果這是目前交易的結構:
version | [inputcount] {[txid] [vin] [signature] [sequence]} | [outputcount] {value} {varint} {lockingscript} | [locktime]
隔離見證交易是什麼樣的?
來自比特幣核心的原語/transaction.h:
/** * Basic transaction serialization format: * - int32_t nVersion * - std::vector<CTxIn> vin * - std::vector<CTxOut> vout * - uint32_t nLockTime * * Extended transaction serialization format: * - int32_t nVersion * - unsigned char dummy = 0x00 * - unsigned char flags (!= 0) * - std::vector<CTxIn> vin * - std::vector<CTxOut> vout * - if (flags & 1): * - CTxWitness wit; * - uint32_t nLockTime */
換句話說,在 txin 計數之前,有一個
0x00 0x01
序列(否則會被解釋為一個 0 輸入和 1 輸出的交易,這是無效的),並且在鎖定時間之前,每個輸入都有一個見證記錄(txin count 不重複,它隱含地假設等於之前給出的 txin 計數)。