diff options
author | Luke Dashjr <luke_github1@dashjr.org> | 2017-08-07 17:58:59 +0000 |
---|---|---|
committer | GitHub <noreply@github.com> | 2017-08-07 17:58:59 +0000 |
commit | ccc435fb708f6ec5d3a721b5bd1a58d96ce059f5 (patch) | |
tree | be3ee065d6738bb746798b58f46f30725940a63d /bip-0159.mediawiki | |
parent | 545fd89a0f0eb21a3180384ed75b871e4957de9b (diff) | |
parent | ec403b0ac53bbf248493da219a191df494795a4a (diff) | |
download | bips-ccc435fb708f6ec5d3a721b5bd1a58d96ce059f5.tar.xz |
Merge pull request #566 from jonasschnelli/node_network_limited
BIP 159: NODE_NETWORK_LIMITED service bits
Diffstat (limited to 'bip-0159.mediawiki')
-rw-r--r-- | bip-0159.mediawiki | 66 |
1 files changed, 66 insertions, 0 deletions
diff --git a/bip-0159.mediawiki b/bip-0159.mediawiki new file mode 100644 index 0000000..a402978 --- /dev/null +++ b/bip-0159.mediawiki @@ -0,0 +1,66 @@ +<pre> + BIP: 159 + Layer: Peer Services + Title: NODE_NETWORK_LIMITED service bits + Author: Jonas Schnelli <dev@jonasschnelli.ch> + Comments-Summary: No comments yet. + Comments-URI: https://github.com/bitcoin/bips/wiki/Comments:BIP-0159 + Status: Draft + Type: Standards Track + Created: 2017-05-11 + License: BSD-2-Clause +</pre> + +== Abstract == + +Define service bits that allow pruned peers to signal their limited services + +==Motivation== + +Pruned peers can offer the same services as traditional peer except of serving all historical blocks. +Bitcoin right now only offers the NODE_NETWORK service bit which indicates that a peer can serve +all historical blocks. +# Pruned peers can relay blocks, headers, transactions, addresses and can serve a limited number of historical blocks, thus they should have a way how to announce their service(s) +# Peers no longer in initial block download should consider connection some of its outbound connections to pruned peers to allow other peers to bootstrap from non-pruned peers + +== Specification == + +=== New service bits === + +This BIP proposes two new service bits + +{|class="wikitable" +|- +| NODE_NETWORK_LIMITED_LOW || If signaled, the peer <I>MUST</I> be capable of serving at least the last 288 blocks (~2 day / the current minimum limit for Bitcoin Core). +|- +| NODE_NETWORK_LIMITED_HIGH || If signaled, the peer <I>MUST</i> be capable of serving at least the last 1152 blocks (~8 days) +|} + +The required behaviour when signaling both bits (<code>NODE_NETWORK_LIMITED_LOW & NODE_NETWORK_LIMITED_HIGH</code>) is currently undefined. + +A safety buffer of additional 144 blocks to handle chain reorganizations <I>SHOULD</I> be taken into account when connecting to a peer signaling <code>NODE_NETWORK_LIMITED_*</code> service bits. + +=== Address relay === + +Full nodes following this BIP <I>SHOULD</I> relay address/services (<code>addr</code> message) from peers they would connect to (including peers signaling <code>NODE_NETWORK_LIMITED_*</code>). + +=== Risks === + +Pruned peers following this BIP may consume more outbound bandwidth. + +Light clients (and such) who are not checking the <code>nServiceFlags</code> (service bits) from a relayed <code>addr</code>-message may unwillingly connect to a pruned peer and ask for (filtered) blocks at a depth below their pruned depth. Light clients should therefore check the service bits (and eventually connect to peers signaling <code>NODE_NETWORK_LIMITED_*</code> if they require [filtered] blocks around the tip). Light clients obtaining peer IPs though DNS seed should use the DNS filtering option. + +== Compatibility == + +This proposal is backward compatible. + +== Reference implementation == + +* https://github.com/bitcoin/bitcoin/pull/10387 + + +== References == + +== Copyright == + +This BIP is licensed under the 2-clause BSD license. |