diff options
-rw-r--r-- | bip-codeshark-segwit-peer-services.mediawiki | 18 |
1 files changed, 11 insertions, 7 deletions
diff --git a/bip-codeshark-segwit-peer-services.mediawiki b/bip-codeshark-segwit-peer-services.mediawiki index 7501d2b..78412c1 100644 --- a/bip-codeshark-segwit-peer-services.mediawiki +++ b/bip-codeshark-segwit-peer-services.mediawiki @@ -90,13 +90,6 @@ A new message 'havewitness' is sent after receiving 'verack' to indicate that a node can provide witness if requested (similar to 'sendheaders') (Note: it might be better to signal this with a services bit in the version message) -=== Relay === -New inv types MSG_WITNESS_TX and MSG_WITNESS_BLOCK are added, only -for use in getdata. Inv itself still use just MSG_TX and MSG_BLOCK, -similar to MSG_FILTERED_BLOCK. - -* '''Rationale for not advertizing witnessness in invs''': we don't always use invs anymore (with 'sendheaders' BIP 130), plus it's not useful: implicitly, every transaction and block have a witness, old ones just have empty ones. - === Hashes === Transaction hashes used in the transaction merkle tree and txin outpoints are always computed using the old non-witness serialization. @@ -108,6 +101,17 @@ and therefore, they have witness hash equal to normal hash.) <img src=bip-codeshark-segwit-peer-services/witnesstx.png></img> +=== Relay === +New inv types MSG_WITNESS_TX and MSG_WITNESS_BLOCK are added, only +for use in getdata. Inventory messages themselves still use just MSG_TX and MSG_BLOCK, +similar to MSG_FILTERED_BLOCK. + +* '''Rationale for not advertizing witnessness in invs''': we don't always use invs anymore (with 'sendheaders' BIP 130), plus it's not useful: implicitly, every transaction and block have a witness, old ones just have empty ones. + +MSG_WITNESS_TX getdata requests should use the non-witness serialized hash. The peer shall respond with a tx message, and if the witness structure is nonempty, the witness serialization shall be used. + +MSG_WITNESS_BLOCK requests will return a block message with transactions that have a witness using witness serialization. + == Credits == Special thanks to Gregory Maxwell for originating many of the ideas in this BIP and Luke-Jr for figuring out how to deploy this as a soft fork. |