From 42ee3f5c15de34dfbe9473807d44685fa1354e86 Mon Sep 17 00:00:00 2001 From: Vasil Dimov Date: Fri, 10 Apr 2020 09:46:48 +0200 Subject: [PATCH] BIP155: include changes from followup discussions * Increase the maximum length of an address from 32 to 512 bytes and clarify that the entire message should be rejected if it contains a longer address. (from https://github.com/bitcoin/bips/pull/766#issuecomment-519248699) * Remove a contradiction about unknown address types - "MUST ignore" VS "MAY store and gossip". * Recommend gossiping addresses for networks to which the node is not currently connected to. (from https://github.com/bitcoin/bips/pull/766#issuecomment-545067608) * Clarify that the entire message should be rejected if it contains an address with unexpected size (e.g. IPv4 address with length 5). --- bip-0155.mediawiki | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/bip-0155.mediawiki b/bip-0155.mediawiki index 59142413..ba0c7980 100644 --- a/bip-0155.mediawiki +++ b/bip-0155.mediawiki @@ -78,8 +78,8 @@ This means that the message contains a serialized std::vector of th One message can contain up to 1,000 addresses. Clients SHOULD reject messages with more addresses. -Field addr has a variable length, with a maximum of 32 bytes (256 bits). Clients SHOULD reject -longer addresses. +Field addr has a variable length, with a maximum of 512 bytes (4096 bits). +Clients SHOULD reject messages with longer addresses, irrespective of the network ID. The list of reserved network IDs is as follows: @@ -120,10 +120,13 @@ The list of reserved network IDs is as follows: | Cjdns overlay network address |} -To allow for future extensibility, clients MUST ignore address types that they do not know about. -Client MAY store and gossip address formats that they do not know about. Further network ID numbers MUST be reserved in a new BIP document. +Clients are RECOMMENDED to gossip addresses from all known networks even if they are currently not connected to some of them. That could help multi-homed nodes and make it more difficult for an observer to tell which networks a node is connected to. -Clients SHOULD reject addresses that have a different length than specified in this table for a specific address ID, as these are meaningless. +Clients SHOULD NOT gossip addresses from unknown networks because they have no means to validate those addresses and so can be tricked to gossip invalid addresses. + +Further network ID numbers MUST be reserved in a new BIP document. + +Clients SHOULD reject messages that contain addresses that have a different length than specified in this table for a specific network ID, as these are meaningless. See the appendices for the address encodings to be used for the various networks.