summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLuke Dashjr <luke_github1@dashjr.org>2017-08-07 17:58:59 +0000
committerGitHub <noreply@github.com>2017-08-07 17:58:59 +0000
commitccc435fb708f6ec5d3a721b5bd1a58d96ce059f5 (patch)
treebe3ee065d6738bb746798b58f46f30725940a63d
parent545fd89a0f0eb21a3180384ed75b871e4957de9b (diff)
parentec403b0ac53bbf248493da219a191df494795a4a (diff)
downloadbips-ccc435fb708f6ec5d3a721b5bd1a58d96ce059f5.tar.xz
Merge pull request #566 from jonasschnelli/node_network_limited
BIP 159: NODE_NETWORK_LIMITED service bits
-rw-r--r--README.mediawiki7
-rw-r--r--bip-0159.mediawiki66
2 files changed, 73 insertions, 0 deletions
diff --git a/README.mediawiki b/README.mediawiki
index f2cfc7b..24b5ad2 100644
--- a/README.mediawiki
+++ b/README.mediawiki
@@ -708,6 +708,13 @@ Those proposing changes should consider that ultimately consent may rest with th
| Standard
| Draft
|-
+| [[bip-0159.mediawiki|159]]
+| Peer Services
+| NODE_NETWORK_LIMITED service bits
+| Jonas Schnelli
+| Standard
+| Draft
+|-
| [[bip-0171.mediawiki|171]]
| Applications
| Currency/exchange rate information API
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.