mirror of
https://github.com/bitcoin/bips.git
synced 2025-01-18 21:35:13 +01:00
Add BIP NODE_NETWORK_LIMITED service bits
This commit is contained in:
parent
545fd89a0f
commit
ec403b0ac5
@ -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
|
||||
|
66
bip-0159.mediawiki
Normal file
66
bip-0159.mediawiki
Normal file
@ -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.
|
Loading…
Reference in New Issue
Block a user