From 0112d56051d3406ba035a75a5033fe5de52a6c86 Mon Sep 17 00:00:00 2001 From: Eric Lombrozo Date: Thu, 24 Dec 2015 17:23:02 -0500 Subject: [PATCH] Embedded diagram --- bip-codeshark-segwit-peer-services.mediawiki | 25 +++++++++--------- .../witnesstx.png | Bin 0 -> 18923 bytes 2 files changed, 13 insertions(+), 12 deletions(-) create mode 100644 bip-codeshark-segwit-peer-services/witnesstx.png diff --git a/bip-codeshark-segwit-peer-services.mediawiki b/bip-codeshark-segwit-peer-services.mediawiki index 6f33378c..c81e1dbb 100644 --- a/bip-codeshark-segwit-peer-services.mediawiki +++ b/bip-codeshark-segwit-peer-services.mediawiki @@ -15,9 +15,9 @@ This BIP defines new messages and serialization formats for propagation of trans ==Specification== -A new message type called "witnesstx" is added to the peer-to-peer protocol. (http://blockhawk.net/diagrams/witnesstx.png) +A new serialization format for tx messages is added to the peer-to-peer protocol. -The message has the following structure: +The serialization has the following structure: {| class="wikitable" style="width: auto; text-align: center; font-size: smaller; table-layout: fixed;" !Field Size @@ -71,16 +71,17 @@ The message has the following structure: | The block number or timestamp until which the transaction is locked |} -* CTransaction gets, in addition to vin and vout, a vwit, which -contains a CTxInWitness object for each input. A CTxInWitness contains a CScriptWitness object -and can potentially be extended to contain other kinds of witness data. -A CScriptWitness is a vector of byte vectors (nominally: the input stack to the program, no longer -encoded as a CScript, but just the resulting stack directly). -* A new serialization for CTransaction is defined: http://blockhawk.net/diagrams/witnesstx.png -(int32 nVersion, -0x00 marker, 0x01 flag, vector, vector, -vector, int32 nLockTime) instead of (int32 nVersion, -vector, vector, int32 nLockTime). This will never parse + + +Parsers supporting this BIP will be able to distinguish between the old serialization format (without the witnesses) and this one. The marker byte is set to zero so that this structure will never parse as a valid transaction in a parser that does not support this BIP. If parsing were to succeeded, such a transaction would contain no inputs and a single output. + +If all witnesses are empty, the old serialization format should be used. + +Witness objects can potentially be extended to contain other kinds of witness data. + +A script witness is a vector of byte vectors (nominally: the input stack to the program, no longer +encoded as a scriptSig, but just the resulting stack directly). + as a valid transaction (even if parsing succeeds, it means it's interpreted as a transaction with no inputs and 1 output). If all witnesses are empty, the old serialization format is used. diff --git a/bip-codeshark-segwit-peer-services/witnesstx.png b/bip-codeshark-segwit-peer-services/witnesstx.png new file mode 100644 index 0000000000000000000000000000000000000000..5fd8afcb01ce0cf08b7de1003c8be0539f226ba6 GIT binary patch literal 18923 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 a_XyRdy1QZ%@C8jEr^D`tst=s{>3;#p)Md^9 literal 0 HcmV?d00001