diff --git a/identify/README.md b/identify/README.md index 2d7f141b2..a4a62711f 100644 --- a/identify/README.md +++ b/identify/README.md @@ -5,7 +5,7 @@ | Lifecycle Stage | Maturity Level | Status | Latest Revision | |-----------------|----------------|--------|-----------------| -| 3A | Recommendation | Active | r1, 2021-08-09 | +| 3A | Recommendation | Active | r3, 2024-09-11 | Authors: [@vyzo] @@ -37,7 +37,7 @@ and spec status. - [listenAddrs](#listenaddrs) - [observedAddr](#observedaddr) - [protocols](#protocols) - + - [signedPeerRecord](#signedpeerrecord) ## Overview @@ -81,6 +81,7 @@ message Identify { repeated bytes listenAddrs = 2; optional bytes observedAddr = 4; repeated string protocols = 3; + optional bytes signedPeerRecord = 8; } ``` @@ -133,3 +134,16 @@ clients only support initiating requests while some servers (only) support responding to requests. To prevent clients from initiating requests to other clients, which given them being clients they fail to respond, clients should not advertise `foo` in their `protocols` list. + +### signedPeerRecord + +This is a serialized [SignedEnvelope][envelope-rfc] containing a [PeerRecord][peer-record-rfc], +signed by the sending node. It contains the same addresses as the `listenAddrs` field, but in a form that lets us share authenticated addrs with other peers. + +This field was introduced in a backwards compatible manner (meaning that it is sent along with the `listenAddrs` field), therefore it is optional. + +If the `signedPeerRecord` is present the implementation MUST use the data contained within it and ignore duplicated fields present in the main identify message + + +[envelope-rfc]: ../RFC/0002-signed-envelopes.md#wire-format +[peer-record-rfc]: ../RFC/0003-routing-records.md#address-record-format