mirror of
https://github.com/sigp/lighthouse.git
synced 2026-03-11 18:04:18 +00:00
## Issue Addressed #4402 ## Proposed Changes This PR adds QUIC support to Lighthouse. As this is not officially spec'd this will only work between lighthouse <-> lighthouse connections. We attempt a QUIC connection (if the node advertises it) and if it fails we fallback to TCP. This should be a backwards compatible modification. We want to test this functionality on live networks to observe any improvements in bandwidth/latency. NOTE: This also removes the websockets transport as I believe no one is really using it. It should be mentioned in our release however. Co-authored-by: João Oliveira <hello@jxs.pt>
51 lines
1.8 KiB
Markdown
51 lines
1.8 KiB
Markdown
# For Protocol Developers
|
|
|
|
_Documentation for protocol developers._
|
|
|
|
This section lists Lighthouse-specific decisions that are not strictly spec'd and may be useful for
|
|
other protocol developers wishing to interact with lighthouse.
|
|
|
|
|
|
## Custom ENR Fields
|
|
|
|
Lighthouse currently uses the following ENR fields:
|
|
|
|
### Ethereum Consensus Specified
|
|
|
|
| Field | Description |
|
|
| ---- | ---- |
|
|
| `eth2` | The `ENRForkId` in SSZ bytes specifying which fork the node is on |
|
|
| `attnets` | An SSZ bitfield which indicates which of the 64 subnets the node is subscribed to for an extended period of time |
|
|
| `syncnets` | An SSZ bitfield which indicates which of the sync committee subnets the node is subscribed to |
|
|
|
|
|
|
### Lighthouse Custom Fields
|
|
|
|
Lighthouse is currently using the following custom ENR fields.
|
|
| Field | Description |
|
|
| ---- | ---- |
|
|
| `quic` | The UDP port on which the QUIC transport is listening on IPv4 |
|
|
| `quic6` | The UDP port on which the QUIC transport is listening on IPv6 |
|
|
|
|
|
|
## Custom RPC Messages
|
|
|
|
The specification leaves room for implementation-specific errors. Lighthouse uses the following
|
|
custom RPC error messages.
|
|
|
|
### Goodbye Reason Codes
|
|
|
|
| Code | Message | Description |
|
|
| ---- | ---- | ---- |
|
|
| 128 | Unable to Verify Network | Teku uses this, so we adopted it. It relates to having a fork mismatch |
|
|
| 129 | Too Many Peers | Lighthouse can close a connection because it has reached its peer-limit and pruned excess peers |
|
|
| 250 | Bad Score | The node has been dropped due to having a bad peer score |
|
|
| 251 | Banned | The peer has been banned and disconnected |
|
|
| 252 | Banned IP | The IP the node is connected to us with has been banned |
|
|
|
|
|
|
### Error Codes
|
|
|
|
| Code | Message | Description |
|
|
| ---- | ---- | ---- |
|
|
| 139 | Rate Limited | The peer has been rate limited so we return this error as a response | |