Skip to content

Commit 7fccc60

Browse files
authored
Merge pull request bitcoin#592 from jonasschnelli/node_network_limited
Remove second service bit from NODE_NETWORK_LIMITED/BIP159
2 parents e49aa21 + 8b971ea commit 7fccc60

File tree

2 files changed

+11
-13
lines changed

2 files changed

+11
-13
lines changed

README.mediawiki

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -710,7 +710,7 @@ Those proposing changes should consider that ultimately consent may rest with th
710710
|-
711711
| [[bip-0159.mediawiki|159]]
712712
| Peer Services
713-
| NODE_NETWORK_LIMITED service bits
713+
| NODE_NETWORK_LIMITED service bit
714714
| Jonas Schnelli
715715
| Standard
716716
| Draft

bip-0159.mediawiki

Lines changed: 10 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
<pre>
22
BIP: 159
33
Layer: Peer Services
4-
Title: NODE_NETWORK_LIMITED service bits
4+
Title: NODE_NETWORK_LIMITED service bit
55
Author: Jonas Schnelli <[email protected]>
66
Comments-Summary: No comments yet.
77
Comments-URI: https://github.com/bitcoin/bips/wiki/Comments:BIP-0159
@@ -13,44 +13,42 @@
1313

1414
== Abstract ==
1515

16-
Define service bits that allow pruned peers to signal their limited services
16+
Define a service bit that allow pruned peers to signal their limited services
1717

1818
==Motivation==
1919

2020
Pruned peers can offer the same services as traditional peer except of serving all historical blocks.
2121
Bitcoin right now only offers the NODE_NETWORK service bit which indicates that a peer can serve
2222
all historical blocks.
2323
# 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)
24-
# 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
24+
# Peers no longer in initial block download should consider connecting some of its outbound connections to pruned peers to allow other peers to bootstrap from non-pruned peers
2525
2626
== Specification ==
2727

28-
=== New service bits ===
28+
=== New service bit ===
2929

30-
This BIP proposes two new service bits
30+
This BIP proposes a new service bit
3131

3232
{|class="wikitable"
3333
|-
34-
| NODE_NETWORK_LIMITED_LOW || bit 10 (0x400) || 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).
35-
|-
36-
| NODE_NETWORK_LIMITED_HIGH || bit 11 (0x800) || If signaled, the peer <I>MUST</i> be capable of serving at least the last 1152 blocks (~8 days)
34+
| NODE_NETWORK_LIMITED || bit 10 (0x400) || 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).
3735
|}
3836

39-
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.
37+
A safety buffer of additional 144 blocks to handle chain reorganizations <I>SHOULD</I> be taken into account when connecting to a peer signaling the <code>NODE_NETWORK_LIMITED</code> service bit.
4038

4139
=== Address relay ===
4240

43-
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>).
41+
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>).
4442

4543
=== Counter-measures for peer fingerprinting ===
4644

47-
Peers may have different prune depths (depending on the peers configuration, disk space, etc.) which can result in a fingerprinting weakness (finding the prune depth through getdata requests). NODE_NETWORK_LIMITED supporting peers <I>SHOULD</I> avoid leaking the prune depth and therefore not serve blocks deeper then the signaled <code>NODE_NETWORK_LIMITED_*</code> thresholds.
45+
Peers may have different prune depths (depending on the peers configuration, disk space, etc.) which can result in a fingerprinting weakness (finding the prune depth through getdata requests). NODE_NETWORK_LIMITED supporting peers <I>SHOULD</I> avoid leaking the prune depth and therefore not serve blocks deeper then the signaled <code>NODE_NETWORK_LIMITED</code> thresholds.
4846

4947
=== Risks ===
5048

5149
Pruned peers following this BIP may consume more outbound bandwidth.
5250

53-
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.
51+
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.
5452

5553
== Compatibility ==
5654

0 commit comments

Comments
 (0)