Files
lighthouse/book/src/developers.md
chonghe 3070cb7c39 Markdown linter (#5494)
* linter

* Add markdown linter

* add env

* only check markdown

* Add token

* Update .github/workflows/test-suite.yml

* Markdown linter

* Exit code

* Update script

* rename

* mdlint

* Add an empty line after end of file

* Testing disable

* add text

* update mdlint.sh

* ori validator inclusion

* Add config yml file

* Remove MD041 and fix advanced-datadir file

* FIx validator inclusion file conflict

* Merge branch 'unstable' into markdown-linter

* change files

* Merge branch 'markdown-linter' of https://github.com/chong-he/lighthouse into markdown-linter

* mdlint

* Remove MD025

* Remove MD036

* Remove MD045

* Removr MD001

* Set MD028 to false

* Remove MD024

* Remove MD055

* Remove MD029

* Remove MD040

* Set MD040 to false

* Set MD033 to false

* Set MD013 to false

* Rearrange yml file

* Update mdlint.sh and test

* Test remove fix

* Test with fix

* Test with space

* Fix summary indentation

* Test mdlint.sh

* Update mdlint.sh

* Test

* Update

* Test fix

* Test again

* Fix

* merge into check-code

* Update scripts/mdlint.sh

Co-authored-by: Mac L <mjladson@pm.me>

* Update scripts/mdlint.sh

Co-authored-by: Mac L <mjladson@pm.me>

* Remove set -e

* Add comment

* Merge pull request #7 from chong-he/unstable

Merge unstable to markdown branch

* mdlint

* Merge branch 'unstable' into markdown-linter

* mdlint
2024-05-24 02:45:19 +00:00

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