Commit Graph

4735 Commits

Author SHA1 Message Date
Danny Ryan 15a90407ef
minor comment change 2022-03-03 13:50:05 -07:00
Aditya Asgaonkar 37b8a89bb1 Apply code review from @djrtwo 2022-03-03 11:43:52 -08:00
Nishant Das 70e8243450
Update p2p-interface.md 2022-03-02 12:39:21 +08:00
Aditya Asgaonkar 7f31c80b8f Fix lint & CI 2022-03-01 11:47:45 -08:00
Aditya Asgaonkar 4fbe162655 Add on_attester_slashing() and related test 2022-03-01 11:42:49 -08:00
Danny Ryan 72d4597131
Merge pull request #2828 from ethereum/is_finality_update
Refactoring: add `is_finality_update` helper
2022-02-28 08:39:38 -07:00
Danny Ryan 3f2d5ecda7
Merge pull request #2838 from ethereum/revert-dupe-condition
revert removal of aggregate deduplication condition from #2183
2022-02-28 08:19:45 -07:00
Danny Ryan bbdb50278c
Merge pull request #2830 from status-im/ignore-atts
Ignore attestations voting for the wrong finalized checkpoint
2022-02-25 11:18:41 -07:00
Danny Ryan 03f0f6762a
revert removal of aggregate deduplication condition from #2183 2022-02-25 10:25:27 -07:00
Danny Ryan 0a55f062d7
fix execution paylaod tests 2022-02-24 15:38:23 -07:00
Danny Ryan f5dab5b666
fix fully withdrawal tests 2022-02-24 15:06:31 -07:00
Danny Ryan d513f5cf17
fix lint 2022-02-24 14:26:15 -07:00
Alex Stokes 0b89c7fb18
Update specs/capella/beacon-chain.md 2022-02-24 12:43:57 -07:00
Danny Ryan e49f73c9a4
fix tx type 2022-02-23 15:15:24 -07:00
Danny Ryan 2026103bb9
Merge branch 'dev' into withdrawals-push 2022-02-23 15:08:29 -07:00
Danny Ryan e80a142d83
modified withdrawals for push 2022-02-23 15:05:55 -07:00
Mikhail Kalinin 1280fe2a02 Bellatrix: random -> prev_randao 2022-02-22 17:16:33 +06:00
Jacek Sieka 9fb2dd16c1
Ignore attestations voting for the wrong finalized checkpoint
When nodes are syncing but have not yet reached the canonical `head`,
they cannot determine whether nodes they are connected to serve a valid
history or are making bogus claims in their `Status` advertisement.

Thus, the best course of action that a client can take is to vote for
its "current" best synced head, regardless of whether it's connected to
peers that claim to have other heads or not.

However, in the p2p spec, we penalize such peers with a `REJECT` - this
should be an `IGNORE` instead because this vote is correct per the spec,
albeit "late" according to the validating clients' view of the chain.
2022-02-11 17:12:13 +01:00
Hsiao-Wei Wang 6d11d627f8 Refactoring: add `is_finality_update` helper 2022-02-09 18:13:51 -07:00
Danny Ryan 5a09b5f8a8
Merge pull request #2814 from etan-status/lc-opt-fin
Ensure light client `optimistic_header` to be at head
2022-02-09 10:06:57 -07:00
Danny Ryan 824ff970f5
Merge pull request #2818 from etan-status/err-unavailable
Update reserved libp2p error documentation
2022-02-03 09:00:34 -07:00
Hsiao-Wei Wang f2fd673a66
Merge pull request #2807 from etan-status/compute-sync-period
Consistently use `compute_sync_committee_period`
2022-02-01 16:05:58 -08:00
Etan Kissling 20c8d0d641
Update reserved libp2p error documentation
The spec reserves the libp2p error code range `[3, 127]` for future use
but actually defines error code `3` as `ResourceUnavailable`. This patch
updates the reserved range to `[4, 127]`.
2022-01-28 00:33:38 +01:00
Mikhail Kalinin eb4497fae7 Bellatrix: Rename execute_payload to notify_new_payload 2022-01-27 15:24:53 +06:00
Danny Ryan b517092770
Merge pull request #2812 from tersec/intervals_per_slot
use INTERVALS_PER_SLOT in sync committee specs
2022-01-25 15:18:53 -07:00
Danny Ryan d5e4828aec
Merge pull request #2770 from sigp/opt-sync-2
Optimistic Sync
2022-01-25 10:26:29 -07:00
Etan Kissling 0e9460b8dd
Ensure light client `optimistic_header` to be at head
When a light client updates its `finalized_header` using a forced update
because of the timeout, and the new header was not signed by enough sync
committee participants to pass `get_safety_threshold(store)`, it may
occur that `store.finalized_header.slot > store.optimistic_header.slot`.
This patch ensures that the `optimistic_header` is updated to the latest
`finalized_header` if that happens, so that it always indicates the
latest known and accepted head.
2022-01-25 10:09:10 +01:00
Dustin Brody 182e4496c3
use INTERVALS_PER_SLOT in sync committee specs 2022-01-21 19:01:56 +00:00
Danny Ryan 2232d76735
Merge pull request #2808 from ethereum/receipts-root
receipt_root -> receipts_root
2022-01-20 08:37:57 -07:00
Alex Stokes 02b32100ed
Merge pull request #2803 from ralexstokes/clean-up-linter
add `pylint` to catch unused args
2022-01-18 09:29:54 -06:00
Danny Ryan f77fc055f8
Update specs/bellatrix/beacon-chain.md
Co-authored-by: Hsiao-Wei Wang <hsiaowei.eth@gmail.com>
2022-01-18 07:19:00 -07:00
Paul Hauner 092f3e0b16
Propose -> Propagate 2022-01-18 11:22:07 +11:00
Paul Hauner 6225236a52
Specify about EL/CL scoring rules 2022-01-18 11:20:52 +11:00
Paul Hauner b1ec9bcfbc
Update gossip conditions 2022-01-18 11:12:55 +11:00
Paul Hauner 15ef2f30d2
Apply suggestions from @djrtwo review
Co-authored-by: Danny Ryan <dannyjryan@gmail.com>
2022-01-18 09:30:01 +11:00
Danny Ryan 671c4f0e3a
receipt_root -> receipts_root 2022-01-17 13:42:10 -07:00
Etan Kissling 8319d07084
Consistently use `compute_sync_committee_period`
There were a couple instances where a division was used on an epoch
to derive the corresponding sync committee period instead of calling the
`compute_sync_committee_period` function.
These instances were changed to also use the function.
2022-01-17 17:38:24 +01:00
Etan Kissling fd89b72c6b
`doctoc` on `custody_game` specs
This updates the TOC in `custody_game/beacon-chain.md` using
`make doctoc specs`.
2022-01-17 12:56:51 +01:00
Alex Stokes 2b45496fe4
clean up unused argument from `phase0` 2022-01-13 11:39:36 -08:00
Hsiao-Wei Wang 16c350ebcd
Merge pull request #2796 from etan-status/lc-aggregate
Rename `sync_committee_aggregate` > `sync_aggregate`
2022-01-13 21:07:50 +08:00
Paul Hauner 0c2e416a6e
Run doctoc 2022-01-13 06:56:32 +11:00
Paul Hauner 90fb7f6871
Add rationale 2022-01-12 19:04:43 +11:00
Paul Hauner e97335a09a
Merge branch 'dev' into opt-sync-2 2022-01-12 16:22:05 +11:00
Paul Hauner 1228e01883
Update p2p-networking 2022-01-12 16:18:53 +11:00
Danny Ryan 7b435bd470
Merge pull request #2797 from etan-status/lc-update-doc
Fix light client docs to match function signature
2022-01-11 06:57:19 -07:00
Etan Kissling 79c456b9f4
Fix light client docs to match function signature
In the light client docs a mentioning of a function trigger is lacking
the `genesis_validators_root` argument. This patch adds that argument
to the documentation to match the real function signature. It also
slightly improves the grammar.
2022-01-11 12:10:30 +01:00
Etan Kissling 212eb00fc1
Document light client constants
This adds documentation about the unit and actual value of light client
specific constants, consistently with the rest of the spec.
2022-01-11 12:10:09 +01:00
Etan Kissling 48e19b15ae
Rename `sync_committee_aggregate` > `sync_aggregate`
This renames the `sync_committee_aggregate` field of `LightClientUpdate`
to `sync_aggregate` for consistency with the terminology in the rest of
the spec.
2022-01-11 11:22:39 +01:00
Hsiao-Wei Wang 171a9ccc81
Resolve conflicts 2021-12-27 18:30:12 +08:00
Hsiao-Wei Wang 3970fa7a75
PR feedback from @ralexstokes 2021-12-24 01:38:33 +08:00
Hsiao-Wei Wang 8c226013fd
minor fix 2021-12-23 17:32:15 +08:00
Hsiao-Wei Wang 41af639517
PR feedback from @mkalinin 2021-12-23 17:26:48 +08:00
Hsiao-Wei Wang 8facc0a095
Merge -> Bellatrix 2021-12-23 14:25:43 +08:00
Hsiao-Wei Wang 2fa396f67d
Merge pull request #2746 from ethereum/vbuterin-patch-12
Simplify sync protocol and update to calculate optimistic heads
2021-12-16 00:12:36 +08:00
Hsiao-Wei Wang de892382db
Minor style fixes 2021-12-15 23:44:29 +08:00
Hsiao-Wei Wang 25d88fee24
Fix `process_light_client_update` 2021-12-14 22:05:09 +08:00
Hsiao-Wei Wang 2f618f7b48
Fix lint and presets 2021-12-14 21:38:58 +08:00
vbuterin 916193bd69
Updates in response to comments 2021-12-10 07:48:14 -06:00
Hsiao-Wei Wang 200ed58dd9
Merge branch 'dev' into ex-ante-tests 2021-12-07 18:29:48 +08:00
Danny Ryan 3a9777eebc
Update specs/phase0/fork-choice.md 2021-12-02 14:00:06 -07:00
Danny Ryan 180abb90ec
clean up some withdrawal logic and add tests 2021-12-02 11:56:33 -07:00
Aditya Asgaonkar 0d8fab3986 Apply Danny's suggestion 2021-12-02 09:57:28 -08:00
Danny Ryan 3024dc8ba8
add withdrawn_epoch to capella validators 2021-12-02 10:52:56 -07:00
Danny Ryan ca74094605
Apply suggestions from code review
Co-authored-by: Mikhail Kalinin <noblesse.knight@gmail.com>
2021-12-02 10:31:56 -07:00
Aditya Asgaonkar 6f3379c7be
Apply HWW's suggestion
Co-authored-by: Hsiao-Wei Wang <hsiaowei.eth@gmail.com>
2021-12-01 20:11:52 -08:00
Aditya Asgaonkar 3e2890bb3e Apply proposer boost to ancestors correctly 2021-12-01 18:03:40 -08:00
Danny Ryan 4f24fe455b
basic capella withdrawal in place 2021-12-01 11:37:30 -07:00
Danny Ryan 4d35748ff0
Merge pull request #2754 from ethereum/dankrad-patch-1
Correct primitive root
2021-12-01 08:15:27 -07:00
dankrad ad588d79f6
Update beacon-chain.md
5 is not a primitive root of the BLS field, it needs to be 7
2021-11-30 22:52:16 +00:00
realbigsean 0bc0769767 Simplify logic in calculating proposer score 2021-11-30 15:44:56 -05:00
Hsiao-Wei Wang d7f6a42729
[WIP] Add ex-ante fork choice test cases 2021-12-01 02:37:22 +08:00
Hsiao-Wei Wang 402c663b51
Fix function name leftover 2021-11-30 21:57:43 +08:00
vbuterin c30662b696
Consistently use sum instead of count(1) 2021-11-30 06:39:25 -06:00
Hsiao-Wei Wang 7de1495a42
Fix lint (#2750) 2021-11-30 06:38:42 -06:00
vbuterin 6fa19705fb
Clarified next sync committee comment 2021-11-29 07:05:01 -06:00
vbuterin 06af6296c5
Updated in response to comments 2021-11-29 07:04:05 -06:00
vbuterin c4f70970c4
Update specs/altair/sync-protocol.md
Co-authored-by: terence tsao <terence@prysmaticlabs.com>
2021-11-28 08:31:48 -06:00
vbuterin 77188726de
Fixed ToC and get_active_header positioninf 2021-11-27 07:27:16 -06:00
vbuterin e104164960
Rework data structures (#2747)
1. Replace `header` and `finality_header` with `attested_header` (always the header signed by the committee) and `finailzed_header` (always the header verified by the Merkle branch)
2. Remove `LightClientSnapshot`, fold its fields into `LightClientStore` for simplicity
2021-11-27 07:25:27 -06:00
vbuterin 013e814d2d
Update sync-protocol.md 2021-11-26 15:32:37 -06:00
vbuterin 25f2efab19
Simplify sync protocol and update to calculate optimistic heads
1. Simplify `valid_updates` to `best_valid_update` so the `LightClientStore` only needs to store O(1) data
2. Track an optimistic head, by looking for the highest-slot header which passes a safety threshold
2021-11-26 15:11:19 -06:00
Danny Ryan e1356aec83
Merge pull request #2745 from mkalinin/clarify-forkchoice-updated
Bring more clarity to notify_forkchoice_updated calls
2021-11-26 06:54:37 -07:00
Danny Ryan d237491dfe
minor typo 2021-11-26 06:47:05 -07:00
Mikhail Kalinin 7a8f236679 Fix notify_forkchoice_updated description as per review 2021-11-25 16:33:30 +06:00
Mikhail Kalinin b4377333fa
Polish notify_forkchoice_updated description as per review
Co-authored-by: Hsiao-Wei Wang <hsiaowei.eth@gmail.com>
2021-11-25 16:27:59 +06:00
Mikhail Kalinin 6ece777ff5 Bring more clarity to notify_forkchoice_updated calls 2021-11-24 20:32:27 +06:00
Mikhail Kalinin 00bede5908 Remove client-settings.md 2021-11-24 17:00:32 +06:00
Danny Ryan 69e7f586ac
Merge pull request #2738 from ethereum/fix-names
is_merge -> is_merge_transition
2021-11-23 14:52:05 -07:00
Danny Ryan a0d008bb86
is_merge -> is_merge_transition 2021-11-23 14:45:03 -07:00
Danny Ryan 32e8ca26a0
Merge pull request #2737 from ethereum/test_prepare_execution_payload
Fix spec typo and add `test_prepare_execution_payload` unit tests
2021-11-23 14:25:48 -07:00
Danny Ryan 395fdd4566
Merge pull request #2730 from ethereum/proposer-score-boost
Proposer LMD Score Boosting
2021-11-23 11:39:07 -07:00
Hsiao-Wei Wang 8050de384e
Fix spec typo and add `test_prepare_execution_payload` unit tests 2021-11-24 02:23:24 +08:00
Aditya Asgaonkar 2a5c9d8dc5 Set PROPOSER_SCORE_BOOST to 70% 2021-11-23 07:23:59 -08:00
Ben Edgington 44fec310b3
Eth1 block hashes have type Hash32 (#2693)
* Eth1 block hashes have type Hash32

* Modify other forks as well

Co-authored-by: Hsiao-Wei Wang <hsiaowei.eth@gmail.com>
2021-11-23 08:20:26 -07:00
Aditya Asgaonkar a0b5a809d5 Apply HWW code's review - fix is_before_attesting_interval 2021-11-23 07:02:04 -08:00
Aditya Asgaonkar 1d835c5198 Apply Danny's code review & suggestions 2021-11-22 14:44:52 -08:00
Danny Ryan ea09df50db
toc 2021-11-22 11:39:08 -07:00
Danny Ryan 282d85b9e7
simplify on_tick proposer boost update 2021-11-22 11:31:44 -07:00
Danny Ryan cebe6ba7e7
minor formatting cleanups 2021-11-22 11:31:17 -07:00
Aditya Asgaonkar 88c76abd7f
Apply Danny's code review 2021-11-22 11:12:25 -07:00
Aditya Asgaonkar 859bbf4358
This reverts commit 4c726cdff39a10c5d096b294fb562cfc99c1f068. 2021-11-22 11:12:24 -07:00
Aditya Asgaonkar 3b20e3ea02
Apply suggestions from code review
Co-authored-by: Danny Ryan <dannyjryan@gmail.com>
2021-11-22 11:12:24 -07:00
Aditya Asgaonkar b0fb861cf5
Make PROPOSER_SCORE_BOOST a percentage value 2021-11-22 11:12:24 -07:00
Aditya Asgaonkar 504d82cc1a
Add datatype to new parameters 2021-11-22 11:12:24 -07:00
Aditya Asgaonkar 47fa6d108a
Add parameter for score boost value 2021-11-22 11:12:24 -07:00
Aditya Asgaonkar 281c1b2d1a
Update validator guide with ATTESTATION_OFFSET_QUOTIENT 2021-11-22 11:12:24 -07:00
Aditya Asgaonkar 2d161b4244
Add proposer score boosting & related tests 2021-11-22 11:12:24 -07:00
Danny Ryan bbdb0d8fba
Merge pull request #2727 from ethereum/fc-dev-validate_target_epoch_scope-patch
always atomically update justified and finalized
2021-11-22 09:42:20 -07:00
Danny Ryan 97e6d5c6d6
Merge branch 'fc-dev-validate_target_epoch_scope-patch' into dev 2021-11-22 08:32:32 -07:00
Danny Ryan 3c25da8218
Merge pull request #2726 from ethereum/get_pow_block_at_ttd-tests
Fix `get_pow_block_at_terminal_total_difficulty` and add unit tests
2021-11-19 09:37:11 -07:00
Danny Ryan 8333514422
Update specs/merge/validator.md 2021-11-19 09:26:43 -07:00
Danny Ryan dc14b79a52
Merge pull request #2720 from paulhauner/patch-34
Remove `difficulty` from `PowBlock`
2021-11-18 15:49:27 -07:00
Mikhail Kalinin 58968f9286 Rename coinbase to fee_recipient 2021-11-18 19:23:52 +06:00
Danny Ryan 3d4ece44df
port phase0 forkchocie changes to merge 2021-11-17 18:37:45 -07:00
Danny Ryan eb00f8f735
cleanup forkchoice tests 2021-11-17 18:24:47 -07:00
Hsiao-Wei Wang 28762096d3
PR feedback from @mkalinin 2021-11-17 23:45:41 +08:00
Hsiao-Wei Wang e56bbb8c44
Fix `get_pow_block_at_terminal_total_difficulty` and add unit tests 2021-11-17 18:00:35 +08:00
Paul Hauner 16aaf74cfc
Remove `difficulty` from `PowBlock` 2021-11-16 10:28:04 +11:00
Hsiao-Wei Wang d9e8306c5a
Refactoring 2021-11-13 18:38:53 +08:00
Hsiao-Wei Wang f643554aa5
Fix issue around on_attestation validation by skipping epoch scope
validation if attestation is from a block message
2021-11-13 18:28:05 +08:00
Danny Ryan cd3d2ce692
working through test issues 2021-11-12 12:43:54 -07:00
Danny Ryan 61207c5b61
Apply suggestions from code review 2021-11-11 07:29:38 -07:00
Paul Hauner 6cfd38e800
Patch for genesis blocks 2021-11-11 11:47:01 +11:00
Fredrik Svantes 46f7845c42
Fixed link to Attesting in beacon chain responsibilities 2021-11-06 16:28:13 +01:00
Mikhail Kalinin c6381345e2
Fixes TBH activation epoch check 2021-11-05 15:00:39 +06:00
Danny Ryan 116017d4cb
Merge pull request #2710 from terencechain/patch-129
`validate_merge_block ` uses correct block hash
2021-11-04 11:24:46 -06:00
terence tsao 0ae9a10123
Proper return after second assertion 2021-11-04 06:59:13 -07:00
Mikhail Kalinin a3380db597 Fix toc 2021-11-04 16:30:23 +06:00
Mikhail Kalinin 0ad344bf72 Make notify_forkchoice_updated return payload id value 2021-11-04 15:58:48 +06:00
terence tsao c144844279
Lint fails, it should be assert? 2021-11-03 20:31:31 -07:00
terence tsao c9d7b8533c
Use correct payload block hash 2021-11-03 20:13:18 -07:00
Mikhail Kalinin 948d476fd1 Polish TBH handling functionality 2021-11-02 20:20:40 +06:00
Alex Stokes 79d005e6ed
Merge pull request #2702 from ethereum/merge-preset
Set execution params to presets
2021-11-02 09:47:24 +01:00
Mikhail Kalinin 7d411a2acd
Merge pull request #2703 from mkalinin/attest-after-execution
State that validator must consider only fully validated blocks
2021-11-01 21:06:38 +06:00
Mikhail Kalinin 16cabb2881
Note the Proof-of-Custody for execution in validator.md
Co-authored-by: Danny Ryan <dannyjryan@gmail.com>
2021-11-01 21:00:49 +06:00
Danny Ryan 7e3ccb706d
remove block_number validation from CL 2021-11-01 07:57:49 -06:00
Danny Ryan 879bd2f3e9
remove etra gas constants and p2p validations 2021-11-01 07:39:14 -06:00
Danny Ryan 52a97ab494
remove gas validations from CL 2021-11-01 07:39:13 -06:00
Mikhail Kalinin dce6b09f51 State that validator must consider only fully validated blocks 2021-11-01 19:31:51 +06:00
Hsiao-Wei Wang 3ba3915396
Set execution params to presets and add builder checks. 2021-11-01 12:11:15 +08:00
Danny Ryan 77fe450f21
Merge pull request #2698 from ethereum/merge-penalties
update penalty params for Merge
2021-10-31 09:59:54 -06:00
Danny Ryan d5f5f8bf61
add modified in merge 2021-10-31 09:47:58 -06:00
Danny Ryan 6d1be4af3d
Merge pull request #2676 from ethereum/get_pow_block-not-found
Clarify `get_pow_block` block-not-found case
2021-10-29 13:21:37 -06:00
Danny Ryan 78040ac3ae
update penalty params for Merge 2021-10-29 12:41:38 -06:00
Danny Ryan 2fc0564a5a
Merge pull request #2686 from ethereum/tx-limits
fix gossip and tx size limits for the merge
2021-10-28 14:18:38 -06:00
Hsiao-Wei Wang d0bcf294a8
Fix typo 2021-10-28 18:42:16 +08:00
Hsiao-Wei Wang 8ecbffa821
Minor comment fix 2021-10-28 16:06:58 +08:00
Hsiao-Wei Wang 60163475d7
PR feedback from @mkalinin 2021-10-28 16:00:01 +08:00
Hsiao-Wei Wang 79bf3481d2
Merge branch 'dev' into get_pow_block-not-found 2021-10-28 15:46:47 +08:00
Danny Ryan d58b1c57ef
bump up MAX_CHUNK_SIZE at the merge as well 2021-10-27 10:48:38 -06:00