|
|
@@ -1,7 +1,7 @@
|
|
|
# DEP 0001: Version Message Info
|
|
|
|
|
|
```
|
|
|
-status: draft
|
|
|
+status: accepted
|
|
|
```
|
|
|
|
|
|
## Motivation
|
|
|
@@ -23,13 +23,10 @@ easier.
|
|
|
| `u16` | nonce | Random nonce, randomly generated everytime a version packet is sent. This nonce is used to detect connections to self. |
|
|
|
| `String` | connect_recv_addr | Network address of the node receiving this message (before resolving) |
|
|
|
| `String` | resolv_recv_addr | Network address of the node receiving this message (after resolving) |
|
|
|
-| `Vec<String>` | ext_send_addr | External address of the node sending this message |
|
|
|
| `Vec<(String, u32)>` | (services, version) | List of features to be enabled for this connection |
|
|
|
|
|
|
`resolv_recv_addr` is optional depending on some transports which may not have such an address.
|
|
|
|
|
|
-`ext_send_addr` is optional when no external address is set for the node.
|
|
|
-
|
|
|
The `(services, version)` field can be used to enable certain features in protocols, or even to upgrade protocols to new versions.
|
|
|
When protocols are first attached, they can add their own data to this field which will be communicated in the subsequent version exchange.
|
|
|
Any further negotiation needed can be done using protocol specific messages afterwards.
|