-
Notifications
You must be signed in to change notification settings - Fork 964
Update Lighthouse Book for Electra features #7280
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
Merged
Changes from 23 commits
Commits
Show all changes
26 commits
Select commit
Hold shift + click to select a range
0209a51
fix wrong name files
chong-he e2f8ed5
typo
chong-he 362c0f6
Add blobs disk space Electra
chong-he c479f76
EL withdrawals
chong-he b571270
Add consolidation
chong-he 24db080
update book links
chong-he e346bb8
Add Lighthouse architecture
chong-he 36222ed
Update database schema version
chong-he a330268
Revise blob storage
chong-he 2ad5bd9
Update delayed head block time component
chong-he ddd8017
Update delayed log
chong-he eaec0d5
Update faq
chong-he 2de28fb
revise
chong-he d226fe6
update consolidation
chong-he cbc6a22
revise
chong-he 4c09068
Add summary
chong-he f145d6e
fix link
chong-he 225191a
mdlint
chong-he a844665
spellcheck
chong-he 10fc37f
summary
chong-he 179a459
Update log
chong-he 3d92499
Fix link
chong-he 798adbe
Correct schema version docs
michaelsproul 7ecdeb7
Apply suggestions from code review
chong-he e984ff9
delete archived_faq.md
chong-he 3c9572f
revise to pending consolidation
chong-he File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -1,3 +1,3 @@ | ||
| # Archived | ||
|
|
||
| This section keeps the topics that are deprecated or less applicable for archived purposes. | ||
| This section keeps the topics that are deprecated. Documentation in this section are for informational purposes only and will not be maintained. | ||
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,74 @@ | ||
| # Archived FAQ | ||
|
||
|
|
||
| Note: The following FAQ is valid for mainnet before Electra. After Electra, [EIP6110 Supply validator deposits on chain](https://ethereum.org/en/roadmap/pectra/#6110) is implemented and the time taken to activate a validator can be as fast as 13 minutes. | ||
|
|
||
| ## Why does it take so long for a validator to be activated? | ||
|
|
||
| After validators create their execution layer deposit transaction there are two waiting | ||
| periods before they can start producing blocks and attestations: | ||
|
|
||
| 1. Waiting for the beacon chain to recognise the execution layer block containing the | ||
| deposit (generally takes ~13.6 hours). | ||
| 1. Waiting in the queue for validator activation. | ||
|
|
||
| Detailed answers below: | ||
|
|
||
| ### 1. Waiting for the beacon chain to detect the execution layer deposit | ||
|
|
||
| Since the beacon chain uses the execution layer for validator on-boarding, beacon chain | ||
| validators must listen to event logs from the deposit contract. Since the | ||
| latest blocks of the execution chain are vulnerable to re-orgs due to minor network | ||
| partitions, beacon nodes follow the execution chain at a distance of 2048 blocks | ||
| (~6.8 hours) (see | ||
| [`ETH1_FOLLOW_DISTANCE`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/validator.md#process-deposit)). | ||
| This follow distance protects the beacon chain from on-boarding validators that | ||
| are likely to be removed due to an execution chain re-org. | ||
|
|
||
| Now we know there's a 6.8 hours delay before the beacon nodes even _consider_ an | ||
| execution layer block. Once they _are_ considering these blocks, there's a voting period | ||
| where beacon validators vote on which execution block hash to include in the beacon chain. This | ||
| period is defined as 64 epochs (~6.8 hours, see | ||
| [`ETH1_VOTING_PERIOD`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#time-parameters)). | ||
| During this voting period, each beacon block producer includes an | ||
| [`Eth1Data`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#eth1data) | ||
| in their block which counts as a vote towards what that validator considers to | ||
| be the head of the execution chain at the start of the voting period (with respect | ||
| to `ETH1_FOLLOW_DISTANCE`, of course). You can see the exact voting logic | ||
| [here](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/validator.md#eth1-data). | ||
|
|
||
| These two delays combined represent the time between an execution layer deposit being | ||
| included in an execution data vote and that validator appearing in the beacon chain. | ||
| The `ETH1_FOLLOW_DISTANCE` delay causes a minimum delay of ~6.8 hours and | ||
| `ETH1_VOTING_PERIOD` means that if a validator deposit happens just _before_ | ||
| the start of a new voting period then they might not notice this delay at all. | ||
| However, if the validator deposit happens just _after_ the start of the new | ||
| voting period the validator might have to wait ~6.8 hours for next voting | ||
| period. In times of very severe network issues, the network may even fail | ||
| to vote in new execution layer blocks, thus stopping all new validator deposits and causing the wait to be longer. | ||
|
|
||
| ### 2. Waiting for a validator to be activated | ||
|
|
||
| If a validator has provided an invalid public key or signature, they will | ||
| _never_ be activated. | ||
| They will simply be forgotten by the beacon chain! But, if those parameters were | ||
| correct, once the execution layer delays have elapsed and the validator appears in the | ||
| beacon chain, there's _another_ delay before the validator becomes "active" | ||
| (canonical definition | ||
| [here](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#is_active_validator)) and can start producing blocks and attestations. | ||
|
|
||
| Firstly, the validator won't become active until their beacon chain balance is | ||
| equal to or greater than | ||
| [`MAX_EFFECTIVE_BALANCE`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#gwei-values) | ||
| (32 ETH on mainnet, usually 3.2 ETH on testnets). Once this balance is reached, | ||
| the validator must wait until the start of the next epoch (up to 6.4 minutes) | ||
| for the | ||
| [`process_registry_updates`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#registry-updates) | ||
| routine to run. This routine activates validators with respect to a [churn | ||
| limit](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#get_validator_churn_limit); | ||
| it will only allow the number of validators to increase (churn) by a certain | ||
| amount. If a new validator isn't within the churn limit from the front of the queue, | ||
| they will need to wait another epoch (6.4 minutes) for their next chance. This | ||
| repeats until the queue is cleared. The churn limit for validators joining the beacon chain is capped at 8 per epoch or 1800 per day. If, for example, there are 9000 validators waiting to be activated, this means that the waiting time can take up to 5 days. | ||
|
|
||
| Once a validator has been activated, congratulations! It's time to | ||
| produce blocks and attestations! | ||
File renamed without changes.
File renamed without changes.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,5 @@ | ||
| # Lighthouse architecture | ||
|
|
||
| A technical walkthrough on Lighthouse based on a Lighthouse architecture below can be found at: [Lighthouse technical walkthrough](https://www.youtube.com/watch?v=pLHhTh_vGZ0) | ||
chong-he marked this conversation as resolved.
Outdated
Show resolved
Hide resolved
|
||
|
|
||
|  | ||
Oops, something went wrong.
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Uh oh!
There was an error while loading. Please reload this page.