1.9 KiB
1.9 KiB
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 |
140 | Blobs Not Found For Block | We do not possess the blobs for the requested block |