|
|
@@ -23,10 +23,16 @@ 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 | (Optional) 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 in these cases:
|
|
|
+
|
|
|
+1. No external address is set.
|
|
|
+2. Node does not advertise itself. Set via a flag in the network settings.
|
|
|
+
|
|
|
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.
|