From a97496c1d536cda3bca58f7bbe7447beae5ce319 Mon Sep 17 00:00:00 2001 From: Andrew Groot Date: Wed, 2 Jun 2021 10:51:00 -0400 Subject: [PATCH] Additional modifications to BIP/HF layout, added BIP-35. --- home.md | 24 ++++++++++------ protocol/forks/bch-uahf.md | 2 +- protocol/forks/bip-0009.md | 2 +- protocol/forks/bip-0016.md | 2 +- protocol/forks/bip-0034.md | 2 +- protocol/forks/bip-0035.md | 41 ++++++++++++++++++++++++++++ protocol/forks/bip-0037.md | 2 +- protocol/forks/bip-0065.md | 2 +- protocol/forks/bip-0066.md | 2 +- protocol/forks/bip-0068.md | 2 +- protocol/forks/bip-0112.md | 2 +- protocol/forks/bip-0113.md | 2 +- protocol/forks/bip-0133.md | 2 +- protocol/forks/bip-0157.md | 2 +- protocol/forks/bip-0158.md | 2 +- protocol/forks/bip-0159.md | 2 +- protocol/network/messages/mempool.md | 2 ++ 17 files changed, 73 insertions(+), 22 deletions(-) create mode 100644 protocol/forks/bip-0035.md diff --git a/home.md b/home.md index f2a4cce..2f38296 100644 --- a/home.md +++ b/home.md @@ -27,17 +27,25 @@ [Bitcoin Keys (Public/Private)](/protocol/blockchain/cryptography/keys) — [Signatures (ECDSA/Schnorr)](/protocol/blockchain/cryptography/signatures) — [Multisignature (M-of-N multisig)](/protocol/blockchain/cryptography/multisignature) ### Network upgrades -**Pre-BCH:** [Bip-9](/protocol/forks/bip-0009) — [Bip-16](/protocol/forks/bip-0016) — [Bip-34](/protocol/forks/bip-0034) — [Bip-37](/protocol/forks/bip-0037) — [Bip-65](/protocol/forks/bip-0065) — [Bip-66](/protocol/forks/bip-0066) — [Bip-68](/protocol/forks/bip-0068) — [Bip-112](/protocol/forks/bip-0112) — [Bip-113](/protocol/forks/bip-0113) — [Bip-133](/protocol/forks/bip-0133) — [Bip-152](/protocol/forks/bip-0152) — [Bip-157](/protocol/forks/bip-0157) — [Bip-158](/protocol/forks/bip-0158) — [Bip-159](/protocol/forks/bip-0159) -**2017:** [BCH-UAHF (BUIP-55)](/protocol/forks/bch-uahf) — [HF-20171113](/protocol/forks/hf-20171113) +#### Pre-BCH -**2018:** [HF-20180515](/protocol/forks/hf-20180515) — [HF-20181115](/protocol/forks/hf-20181115) +| Year (Creation) | BIPs | +|------|-------| +| 2012 | [Bip-16](/protocol/forks/bip-0016) — [Bip-34](/protocol/forks/bip-0034) — [BIP-35](/protocol/forks/bip-0035) — [Bip-37](/protocol/forks/bip-0037) | +| 2014 | [Bip-65](/protocol/forks/bip-0065) | +| 2015 | [Bip-66](/protocol/forks/bip-0066) — [Bip-68](/protocol/forks/bip-0068) — [Bip-112](/protocol/forks/bip-0112) — [Bip-113](/protocol/forks/bip-0113) — [Bip-9](/protocol/forks/bip-0009) | +| 2016 | [Bip-133](/protocol/forks/bip-0133) — [Bip-152](/protocol/forks/bip-0152) | +| 2017 | [Bip-157](/protocol/forks/bip-0157) — [Bip-158](/protocol/forks/bip-0158) — [Bip-159](/protocol/forks/bip-0159) | -**2019:** [HF-20190515](/protocol/forks/hf-20190515) — [HF-20191115](/protocol/forks/hf-20191115) - -**2020:** [HF-20200515](/protocol/forks/hf-20200515) — [HF-20201115](/protocol/forks/hf-20201115) - -**2021:** [HF-20210515](/protocol/forks/hf-20210515) +#### BCH +| Year (Activation) | Hard Forks | +|------|---------------| +| 2017 | [BCH-UAHF (BUIP-55)](/protocol/forks/bch-uahf) — [HF-20171113](/protocol/forks/hf-20171113) | +| 2018 | [HF-20180515](/protocol/forks/hf-20180515) — [HF-20181115](/protocol/forks/hf-20181115) | +| 2019 | [HF-20190515](/protocol/forks/hf-20190515) — [HF-20191115](/protocol/forks/hf-20191115) | +| 2020 | [HF-20200515](/protocol/forks/hf-20200515) — [HF-20201115](/protocol/forks/hf-20201115) | +| 2021 | [HF-20210515](/protocol/forks/hf-20210515) | ### Network protocol [Network Messages](/protocol/network/messages) — [Handshake](/protocol/network/node-handshake) diff --git a/protocol/forks/bch-uahf.md b/protocol/forks/bch-uahf.md index c28f942..d947495 100644 --- a/protocol/forks/bch-uahf.md +++ b/protocol/forks/bch-uahf.md @@ -1,4 +1,4 @@ -# UAHF +# BCH-UAHF: Bitcoin Cash User-Activated Hard Fork layout: specification title: UAHF Technical Specification diff --git a/protocol/forks/bip-0009.md b/protocol/forks/bip-0009.md index a7e3209..bb90d6a 100644 --- a/protocol/forks/bip-0009.md +++ b/protocol/forks/bip-0009.md @@ -1,4 +1,4 @@ -# BIP-0009 +# BIP-9 BIP: 9 Title: Version bits with timeout and delay Author: Pieter Wuille diff --git a/protocol/forks/bip-0016.md b/protocol/forks/bip-0016.md index b0091d4..de0f099 100644 --- a/protocol/forks/bip-0016.md +++ b/protocol/forks/bip-0016.md @@ -1,4 +1,4 @@ -# BIP-0016 +# BIP-16 BIP: 16 Layer: Consensus (soft fork) diff --git a/protocol/forks/bip-0034.md b/protocol/forks/bip-0034.md index 3ed3238..c53f329 100644 --- a/protocol/forks/bip-0034.md +++ b/protocol/forks/bip-0034.md @@ -1,4 +1,4 @@ -# BIP-0034 +# BIP-34 BIP: 34 Layer: Consensus (soft fork) diff --git a/protocol/forks/bip-0035.md b/protocol/forks/bip-0035.md new file mode 100644 index 0000000..65d8856 --- /dev/null +++ b/protocol/forks/bip-0035.md @@ -0,0 +1,41 @@ +# BIP-35 + + BIP: 35 + Layer: Peer Services + Title: mempool message + Author: Jeff Garzik + Comments-Summary: No comments yet. + Comments-URI: https://github.com/bitcoin/bips/wiki/Comments:BIP-0035 + Status: Final + Type: Standards Track + Created: 2012-08-16 + +## Abstract + +Make a network node's transaction memory pool accessible via a new "mempool" message. Extend the existing "getdata" message behavior to permit accessing the transaction memory pool. + +## Motivation + +Several use cases make it desireable to expose a network node's transaction memory pool: +1. SPV clients, wishing to obtain zero-confirmation transactions sent or received. +2. Miners, to avoid missing lucrative fees, downloading existing network transactions after a restart. +3. Remote network diagnostics. + +## Specification + +1. The mempool message is defined as an empty message where pchCommand == "mempool" +2. Upon receipt of a "mempool" message, the node will respond with an "inv" message containing MSG_TX hashes of all the transactions in the node's transaction memory pool, if any. +3. The typical node behavior in response to an "inv" is "getdata". However, the reference Satoshi implementation ignores requests for transaction hashes outside that which is recently relayed. To support "mempool", an implementation must extend its "getdata" message support to querying the memory pool. +4. Feature discovery is enabled by checking two "version" message attributes: + - Protocol version >= 60002 + - NODE_NETWORK bit set in nServices + +Note that existing implementations drop "inv" messages with a vector size > 50000. + +## Backward compatibility + +Older clients remain 100% compatible and interoperable after this change. + +## Implementation + +https://github.com/bitcoin/bitcoin/pull/1641 \ No newline at end of file diff --git a/protocol/forks/bip-0037.md b/protocol/forks/bip-0037.md index 2b3a1f8..28c28f7 100644 --- a/protocol/forks/bip-0037.md +++ b/protocol/forks/bip-0037.md @@ -1,4 +1,4 @@ -# BIP-0037 +# BIP-37 BIP: 37 Layer: Peer Services diff --git a/protocol/forks/bip-0065.md b/protocol/forks/bip-0065.md index 33d3e6d..14cc499 100644 --- a/protocol/forks/bip-0065.md +++ b/protocol/forks/bip-0065.md @@ -1,4 +1,4 @@ -# BIP-0065 +# BIP-65 BIP: 65 Layer: Consensus (soft fork) diff --git a/protocol/forks/bip-0066.md b/protocol/forks/bip-0066.md index 9fc7566..d67e16e 100644 --- a/protocol/forks/bip-0066.md +++ b/protocol/forks/bip-0066.md @@ -1,4 +1,4 @@ -# BIP-0066 +# BIP-66 BIP: 66 Layer: Consensus (soft fork) diff --git a/protocol/forks/bip-0068.md b/protocol/forks/bip-0068.md index 56baf4e..82d12d8 100644 --- a/protocol/forks/bip-0068.md +++ b/protocol/forks/bip-0068.md @@ -1,4 +1,4 @@ -# BIP-0068 +# BIP-68 BIP: 68 Layer: Consensus (soft fork) diff --git a/protocol/forks/bip-0112.md b/protocol/forks/bip-0112.md index 20df7df..189d3e4 100644 --- a/protocol/forks/bip-0112.md +++ b/protocol/forks/bip-0112.md @@ -1,4 +1,4 @@ -BIP-0112 +# BIP-112 BIP: 112 Layer: Consensus (soft fork) diff --git a/protocol/forks/bip-0113.md b/protocol/forks/bip-0113.md index 31dc525..b10c52f 100644 --- a/protocol/forks/bip-0113.md +++ b/protocol/forks/bip-0113.md @@ -1,4 +1,4 @@ -# BIP-0113 +# BIP-113 BIP: 113 Layer: Consensus (soft fork) diff --git a/protocol/forks/bip-0133.md b/protocol/forks/bip-0133.md index 19eca91..3259bc2 100644 --- a/protocol/forks/bip-0133.md +++ b/protocol/forks/bip-0133.md @@ -1,4 +1,4 @@ -# BIP-0133 +# BIP-133 BIP: 133 Layer: Peer Services diff --git a/protocol/forks/bip-0157.md b/protocol/forks/bip-0157.md index 06a8950..d989cd8 100644 --- a/protocol/forks/bip-0157.md +++ b/protocol/forks/bip-0157.md @@ -1,4 +1,4 @@ -# BIP-0157 +# BIP-157 BIP: 157 Layer: Peer Services diff --git a/protocol/forks/bip-0158.md b/protocol/forks/bip-0158.md index 3f241d1..14f12f2 100644 --- a/protocol/forks/bip-0158.md +++ b/protocol/forks/bip-0158.md @@ -1,4 +1,4 @@ -# BIP-0158 +# BIP-158 BIP: 158 Layer: Peer Services diff --git a/protocol/forks/bip-0159.md b/protocol/forks/bip-0159.md index 5ca841d..3cac927 100644 --- a/protocol/forks/bip-0159.md +++ b/protocol/forks/bip-0159.md @@ -1,4 +1,4 @@ -# BIP-0159 +# BIP-159 BIP: 159 Layer: Peer Services diff --git a/protocol/network/messages/mempool.md b/protocol/network/messages/mempool.md index a46ceed..b1c2f29 100644 --- a/protocol/network/messages/mempool.md +++ b/protocol/network/messages/mempool.md @@ -3,6 +3,8 @@ Requests that the recipient notify the sender of transactions that are currently in its [mempool](/protocol/blockchain/memory-pool). Recipients of a `mempool` message MAY respond with a set of transaction hashes currently in their mempool via an [`inv`](/protocol/network/messages/inv) message. +The mempool message was defined in [BIP-35](/protocol/forks/bip-0035). + ## Message Format This message has no contents.