Commit Graph

4971 Commits

Author SHA1 Message Date
Etan Kissling 65cfedef22
Update finality update documentation 2022-06-27 22:36:55 +02:00
Etan Kissling 99e30328a8
Switch condition order for readability
Co-authored-by: Hsiao-Wei Wang <hsiaowei.eth@gmail.com>
2022-06-27 22:26:35 +02:00
fradamt 67d62025d9
fix typo and specify something
- committee_index is used as an input to compute_subnet_for_attestation but it's not previously defined
- attestation.data.committee_index is incorrect, the field is "index"
2022-06-27 14:20:25 +02:00
Etan Kissling c10daf1709
Allow `LightClientUpdate` with genesis finality
When `state.finalized_checkpoint` references the genesis slot, it points
to an empty `root`, instead of the actual genesis block hash. This patch
updates the `LightClientUpdate` logic to allow including finality proofs
for genesis `finalized_checkpoint.root`, better supporting non-mainnet.
When including such a finality proof, the proof is for the empty `root`,
but `finalized_header` is kept zeroed out to signify this edge case.
2022-06-27 12:10:40 +02:00
Hsiao-Wei Wang a40a64440c
Merge pull request #2916 from etan-status/lc-forkversion 2022-06-27 06:38:11 +02:00
Hsiao-Wei Wang d4a2bdcea0
Merge pull request #2915 from asn-d6/consensus-4844-proofs-optimization
Optimizing EIP-4844 block validation (using KZG proofs)
2022-06-26 13:55:17 +02:00
Hsiao-Wei Wang a3339c7b7f
PR suggestion from @Inphi 2022-06-25 00:13:20 +08:00
Etan Kissling 840733ffd2
Move `compute_fork_version` to `fork.md` 2022-06-23 21:03:24 +02:00
Hsiao-Wei Wang 94da861d9c
Fix ToC 2022-06-23 18:44:37 +08:00
Hsiao-Wei Wang 0ab280d396
minor suggestions 2022-06-23 18:40:09 +08:00
George Kadianakis e7e520791d Use Python's pow() in bls_modular_inverse(). 2022-06-22 15:42:03 +03:00
George Kadianakis 534a9d1d95 Move EIP-4844 cryptography code to its own file 2022-06-22 15:42:03 +03:00
Hsiao-Wei Wang 8a70295a84
Fix ToC 2022-06-20 21:26:41 +08:00
Etan Kissling 0b8ab23bd4
Remove `fork_version` from `LightClientUpdate`
The `fork_version` field in `LightClientUpdate` can be derived from the
`update.signature_slot` value by consulting the locally configured fork
schedule. The light client already needs access to the fork schedule to
determine the `GeneralizedIndex` values used for merkle proofs, and the
memory layouts of the structures (including `LightClientUpdate`). The
`fork_version` itself is network dependent and doesn't reveal that info.
2022-06-16 17:17:24 +02:00
Hsiao-Wei Wang 8cc008d11c
Merge pull request #2805 from etan-status/lc-period
Allow light client to verify signatures at period boundary
2022-06-16 16:53:12 +02:00
George Kadianakis 4be0b9d6bc Add needed math/crypto functions to validate KZG aggregated proofs
All code pretty much straight up copied from https://github.com/ethereum/EIPs/pull/5088
2022-06-14 16:37:08 +03:00
George Kadianakis e4c75d67ce Introduce high-level logic of new efficient block validation 2022-06-14 16:37:08 +03:00
inphi dbac7b1582
EIP-4844: Remove shard field from BlobsSidecar 2022-06-13 16:32:18 -04:00
Danny Ryan 74489d5523
Partial withdrawals (#2862)
* t push base design for partial withdrawals

* moor tests

* clean up withdrawals naming

* make partial withdrawal randomized tests better

* Apply suggestions from code review

Co-authored-by: Alex Stokes <r.alex.stokes@gmail.com>
Co-authored-by: Hsiao-Wei Wang <hsiaowei.eth@gmail.com>

* fix mainnet brokn test

* name swap

* lint

Co-authored-by: Alex Stokes <r.alex.stokes@gmail.com>
Co-authored-by: Hsiao-Wei Wang <hsiaowei.eth@gmail.com>
2022-06-08 13:16:12 -06:00
Murphy Law a3128b8c57
EIP-4844: fix a typo (#2898) 2022-05-31 08:40:06 -06:00
Jacek Sieka 0e6a7cd39a
deprecate `BeaconBlocksByRange.step` (#2856)
* deprecate `BeaconBlocksByRange.step`

The `step` parameter has not seen much implementation in real life
clients which instead opt to request variations on a few epochs at a
time (instead of interleaving single blocks, entire epochs are
interleaved).

At the same time, supporting `step` on the server side brings several
complications: more complex bounds checking logic, more complex loading
of blocks from linear storage (which presumably stores all blocks and
not just certain increments).

This PR suggests that we deprecate the whole idea. Backwards
compatibility is kept by simply responding with a single block when
`step > 0` - this is allowed by the spec and should thus be handled
gracefully by requesting clients already, should there exist any that
use larger step counts.

Removing `step` now allows simplifying the EL-CL protocol for serving
execution data from the EL to avoid double storage.

* Update specs/phase0/p2p-interface.md

Co-authored-by: Danny Ryan <dannyjryan@gmail.com>

Co-authored-by: Danny Ryan <dannyjryan@gmail.com>
2022-05-20 13:18:24 -06:00
Caspar Schwarz-Schilling 72f7b88f2a
Update PROPOSER_SCORE_BOOST to 40 percent (#2895) 2022-05-20 13:15:40 -06:00
Mikhail Kalinin d62ebaeaca
Run on_tick before picking the head for proposal (#2897) 2022-05-19 07:56:49 -06:00
Alex Stokes 5337da5dff
use python syntax for bitwise AND operation (#2894) 2022-05-17 07:14:19 -06:00
Jacek Sieka bab5e402df
Ignore subset aggregates (#2847)
* Ignore subset aggregates

When aggregates are propagated through the network, it is often the case
that a better aggregate has already been seen - in particular, this
happens when an aggregator has not been able to include itself in the
mesh and therefore publishes an aggregate with only its own
attestations.

This new ignore rule allows dropping all aggregates that are
(non-strict) subsets of aggregates that have already been seen on the
network. In particular, it does not mandate dropping aggregates where a
union of previous aggregates would cause it to become a subset).

The logic for allowing this is based on the premise that any aggregate
that has already been seen by a peer will also have been seen by its
neighbours - a subset aggregate (strict or not) brings no new value to
the aggregation algorithm, except in the extreme edge case where you
could combine several such sparse aggregates into a single, more dense
"combined" aggregate and thus use less block space.

Further, as a small benefit, computing the `hash_tree_root` of the full
aggregate is generally not done -however, `hash_tree_root(data)` is
already done for other purposes as this is used as index in the beacon
API.

* add subset ignore rule to sync contributions as well

* typo
2022-05-17 07:05:22 -06:00
Alex Stokes 20a90f1df7
Add new `DomainType` for application usage (#2884) 2022-05-16 08:08:15 -06:00
Danny Ryan af1fbab181
Merge pull request #2888 from casparschwa/update-proposer-score-boost
Update proposer score boost
2022-05-16 08:06:59 -06:00
terencechain ec7bb23697
bellatrix-p2p: fix a typo 2022-05-14 10:30:20 -07:00
Danny Ryan c0a8178fff
minor patch to bytes formatting in capella 2022-05-10 09:37:01 -06:00
Danny Ryan 242f286f6e
Merge pull request #2878 from michaelsproul/forkchoice-b4-propose
Require fork choice to run before proposal
2022-05-10 09:23:16 -06:00
Caspar Schwarz-Schilling 712a4f9cf1 Fix linting 2022-05-09 15:05:05 +02:00
Caspar Schwarz-Schilling f5303ca58e Update PROPOSER_SCORE_BOOST to 33 percent 2022-05-09 10:17:24 +02:00
Danny Ryan c1d0836936
Merge pull request #2855 from ethereum/00-to-01
00 to 01 cred change
2022-05-05 07:31:49 -06:00
Michael Sproul 3f76792ee3
Require fork choice to run before proposal 2022-05-05 11:21:55 +10:00
Etan Kissling 5653649ca8
Allow light client to verify signatures at period boundary
As the sync committee signs the previous block, the situation arises at
every sync committee period boundary, that the new sync committee signs
a block in the previous sync committee period. The light client cannot
reliably detect this condition (e.g., assume that this is the case when
it is currently on the last slot of a sync committee period), because
the last couple slots of a sync committee period may not have a block.

For example, when receiving a `LightClientUpdate` that is constructed
as in the following illustration, it is unknown whether `sync_aggregate`
was signed by the current or next sync committee at `attested_header`.

```

        slot N           N + 1   |            N + 2   (slot not sent!)
                                 |
  +-----------------+     \ /    |     +----------------+
  | attested_header | <--- X ----|---- | sync_aggregate |
  +-----------------+     / \    |     +----------------+
                        missed   |
                                 |
                          sync committee
                          period boundary
```

This patch addresses this edge case by including the slot at which the
`sync_aggregate` was created into the `LightClientUpdate` object.

Note that the `signature_slot` cannot be trusted beyond the purpose of
signature verification, as it could be manipulated to any other slot
within the same sync committee period and fork version, without making
the `sync_aggregate` invalid.
2022-05-02 13:08:20 +02:00
Etan Kissling f125538122
Fix param order in `prepare_execution_payload`
Documentation on how to call `prepare_execution_payload` had the params
for `safe_block_hash` and `finalized_block` hash flipped compared to the
function definition. Also updated tests for consistency.
2022-04-25 16:49:00 +02:00
Hsiao-Wei Wang 83ac38c183
Merge pull request #2872 from benjaminion/patch-1 2022-04-17 08:00:33 -07:00
Ben Edgington eca7237b27
Correct typo: BLSCommitment -> KZGCommitment
The consensus chain counterpart to https://github.com/ethereum/EIPs/pull/4992. The same comment from there applies here as well.
2022-04-13 15:04:55 +01:00
Hsiao-Wei Wang dcf41ef5e2 Merge branch 'dev' into eip4844-typo 2022-04-12 22:14:37 +08:00
Hsiao-Wei Wang 5978c86f3a
Typo fix: `ksg_to_version_hash` -> `kzg_to_versioned_hash` 2022-04-10 18:41:49 +08:00
Hsiao-Wei Wang 6576cab612 Fix Capella `prepare_execution_payload` 2022-04-06 18:13:39 +08:00
Danny Ryan 1bfefe301d
Merge pull request #2858 from mkalinin/justified-to-safe-block
Bellatrix: pass justified as a safe block
2022-03-30 12:19:21 -06:00
Danny Ryan c87fc48053
minor typo 2022-03-30 12:04:23 -06:00
Mikhail Kalinin b13a9f0f8a Apply suggestions as per review 2022-03-30 15:36:01 +06:00
terence tsao eb26a1d74c
EIP4844: fix a minor typo 2022-03-26 08:26:52 -07:00
Danny Ryan 19613ac7cd
Merge pull request #2854 from ralexstokes/update-0x01-creds
Update 0x01 withdrawal credentials.
2022-03-25 16:27:41 -06:00
Mikhail Kalinin bd66114f4a Clarify names and move get_safe_block_hash to safe-block.md 2022-03-26 02:02:38 +06:00
Mikhail Kalinin c97cc6f4dc Add separate get_safe_beacon_block function 2022-03-24 17:22:11 +06:00
Mikhail Kalinin bc95973232
Reorder params
Co-authored-by: Hsiao-Wei Wang <hsiaowei.eth@gmail.com>
2022-03-24 16:35:28 +06:00
Danny Ryan 4ac4158b42
move bls chang operation to end of block body 2022-03-23 10:54:40 -06:00
Hsiao-Wei Wang 8a388f2226 toc 2022-03-23 15:38:17 +08:00
Danny Ryan 2017b61265
test address_change 2022-03-22 13:37:17 -06:00
Mikhail Kalinin 046eaf2ea0 Bellatrix: remove a comment about safe head stub 2022-03-22 22:53:47 +06:00
Mikhail Kalinin 95a2327800 Bellatrix: add get_safe_block_hash to validator.md 2022-03-22 22:51:45 +06:00
Mikhail Kalinin d195e066ad Fix toc 2022-03-22 20:41:42 +06:00
Mikhail Kalinin 199398c503 Bellatrix: pass justified as a safe block 2022-03-22 20:26:09 +06:00
Danny Ryan 38496ba021
toc 2022-03-22 08:23:59 -06:00
Danny Ryan 702ed9f39a
Merge branch 'withdrawals-push' into 00-to-01 2022-03-22 08:23:34 -06:00
Danny Ryan b469593219
toc 2022-03-22 08:22:35 -06:00
Danny Ryan 0da78ebc4b
Merge branch 'withdrawals-push' into 00-to-01 2022-03-22 08:19:31 -06:00
Danny Ryan a2db44693b
build 2022-03-22 08:14:38 -06:00
Danny Ryan c10d219664
Merge branch 'dev' into withdrawals-push 2022-03-22 08:11:09 -06:00
Danny Ryan 43ce98b541
Merge branch 'withdrawals-push' of github.com:ethereum/eth2.0-specs into withdrawals-push 2022-03-22 08:10:53 -06:00
Danny Ryan 03f9503de0
Apply suggestions from code review
Co-authored-by: Alex Stokes <r.alex.stokes@gmail.com>
2022-03-22 08:03:55 -06:00
Danny Ryan 9a8ff4f3ab
topo sort 2022-03-22 08:00:53 -06:00
Danny Ryan 493b169022
refine naming for withdrawals 2022-03-22 07:55:45 -06:00
terence tsao 36b0044569
EIP4844: fix a minor typo 2022-03-20 08:20:08 -07:00
Danny Ryan 79cdb88e66
wip 00 to 01 cred change 2022-03-16 15:41:37 -06:00
Danny Ryan 36aae1d848
add tests for process_withdrawals 2022-03-16 13:35:29 -06:00
Danny Ryan 255e942f64
add validator and fork-choice mods for withdrawals in capella 2022-03-16 12:01:42 -06:00
Mikhail Kalinin cc347c6ff4
Merge pull request #2851 from mkalinin/safe-head
Add safe_block_hash to notify_forkchoice_updated
2022-03-16 13:29:23 +06:00
Alex Stokes 0afa7e1b38
update language to reflect latest work on withdrawals 2022-03-15 18:01:47 -06:00
Danny Ryan 80292f7957
Update specs/bellatrix/validator.md
Co-authored-by: Hsiao-Wei Wang <hsiaowei.eth@gmail.com>
2022-03-15 13:14:40 -06:00
protolambda dc5f9dffa0
eip4844: process_blob_kzgs - move TODO to issue, add missing input argument 2022-03-14 21:50:07 +01:00
protolambda 9b760dfb54
eip4844: beacon doc - update TOC 2022-03-14 19:08:50 +01:00
protolambda 45e207be4d
EIP-4844 consensus-specs review fixes
Co-Authored-By: terenc3t <terence@prysmaticlabs.com>
Co-Authored-By: djrtwo <dannyjryan@gmail.com>
2022-03-14 18:57:11 +01:00
Mikhail Kalinin 84ab086d94 Add safe_block_hash to notify_fc_updated 2022-03-14 19:09:21 +06:00
Danny Ryan 3dd83cf4ee
minor withdrawals renamings 2022-03-10 12:30:51 -07:00
Danny Ryan 507f550cb1
Merge branch 'dev' into withdrawals-push 2022-03-10 10:27:20 -07:00
protolambda 8ec4773339
EIP-4844: consensus layer changes 2022-03-10 06:52:27 +01:00
Danny Ryan 825a39577e
Merge pull request #2845 from ethereum/discard-equivocations
Remove equivocating validators from fork choice consideration
2022-03-08 11:41:04 -07:00
Danny Ryan bd6d2ad4ce
minor copy edit 2022-03-08 11:33:59 -07:00
Danny Ryan 0197a1464c
Merge pull request #2846 from nisdas/patch-2
Ignore Aggregates Which Are Following the Wrong Finalized Checkpoint
2022-03-08 11:28:20 -07:00
Aditya Asgaonkar a0ba6b2a1a Add note about syncing 2022-03-08 06:52:03 -08:00
Aditya Asgaonkar 1e10e7dc1c Fix UPDATE_TIMEOUT unit typo 2022-03-03 20:16:32 -08:00
Danny Ryan e1b9cf97e2
add withdrawal index to wihdrawal transaction 2022-03-03 14:02:52 -07:00
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
Danny Ryan bda07e15ad
remove extraneous gossip condition 2021-10-26 15:47:07 -06:00
Danny Ryan dae5b87c2b
increase TX sizes to account for very high gas limits 2021-10-26 15:46:08 -06:00
Danny Ryan 3e320dacff
fix gossip and tx size limits for the merge 2021-10-26 15:46:08 -06:00
Hsiao-Wei Wang 62504d9efd
Update `pow_chain` to dict and reuse it instead of calling `get_pow_block` 2021-10-26 21:59:33 +08:00
Hsiao-Wei Wang 71d315950f
Fix typo
Co-authored-by: Mikhail Kalinin <noblesse.knight@gmail.com>
2021-10-26 21:38:22 +08:00
Hsiao-Wei Wang 5b9652bf93
Merge branch 'dev' into get_pow_block-not-found 2021-10-26 21:37:08 +08:00
Danny Ryan edb5a023c8
remove extraneous p2p condition 2021-10-20 12:24:00 -06:00
Danny Ryan 8a27a7cb5d
remove union type for eecution-payload txs 2021-10-19 15:46:18 -06:00
Danny Ryan e787da3954
Apply suggestions from code review
Co-authored-by: Hsiao-Wei Wang <hsiaowei.eth@gmail.com>
2021-10-19 14:35:30 -06:00
Danny Ryan 4bf88ba89e
Merge pull request #2683 from ethereum/remove-prepare-payload
remove prepare_payload
2021-10-19 09:41:44 -06:00
Danny Ryan def46dd16c
Merge pull request #2682 from ethereum/TBH-epoch
add TBH_ACTIVATION_EPOCH
2021-10-19 09:36:33 -06:00
Danny Ryan 8023edc94b
cleanup some copy relatedto removal of prepare_payload 2021-10-19 09:28:52 -06:00
Danny Ryan 294b60a48b
pr feedback 2021-10-19 09:24:07 -06:00
Hsiao-Wei Wang 34335e0334
Remove `prepare_payload` leftover 2021-10-19 15:30:49 +08:00
Hsiao-Wei Wang ba582b3e3a
Fix setup.py parser and rename `TBH_ACTIVATION_EPOCH` -> `TERMINAL_BLOCK_HASH_ACTIVATION_EPOCH` 2021-10-19 11:26:53 +08:00
Danny Ryan d5be6b5d68
remove prepare_payload in favor of a unification with notify_forkchoice_updated 2021-10-18 18:12:11 -06:00
Danny Ryan 3bfdc917e1
ad TBH_ACTIVATION_EPOCH 2021-10-18 13:38:08 -06:00
Danny Ryan 190ef9fb50
call notify_forkchoice_updated with finalized_block_hash == 0x00..00 if not yet finalized 2021-10-18 12:07:33 -06:00
Hsiao-Wei Wang cd5cf60deb
Clarify `get_pow_block` block-not-found case 2021-10-18 14:05:40 +08:00
Danny Ryan da240340b2
Merge pull request #2661 from ethereum/fix-gas-uint
base_fee_per_gas to uint256
2021-10-12 08:18:44 -06:00
Diederik Loerakker aa592b008c
Merge pull request #2645 from paulhauner/patch-31
Specify format for --terminal-total-difficulty
2021-10-12 02:15:40 +03:00
Danny Ryan e5bbbc5191
base_fee_per_gas to uint256 2021-10-11 16:25:01 -06:00
Danny Ryan 130b81bf55
remove notify_consensus_validated in accordance with POS_CONSENSUS_VALIDATED removal from eip 3675 2021-10-10 10:47:59 -04:00
Paul Hauner 9ed907727e
Specify format for --terminal-total-difficulty 2021-10-05 20:00:45 +11:00
Hsiao-Wei Wang f1f082fbe7
Remove the unused stub constants 2021-10-04 00:30:01 +08:00
Hsiao-Wei Wang e235aa8296
Clean up. Add `execution_payload_header` to initialization `meta.yaml` 2021-10-03 22:38:05 +08:00
Danny Ryan 789eea0060
fix tests. add new generator 2021-10-03 16:19:50 +03:00
Danny Ryan af262bec07
make initialize_beacon_state_from_eth1 work for pre-transition merge 2021-10-03 15:16:44 +03:00
Danny Ryan f221674be4
Merge pull request #2634 from ethereum/fix-initialize-merge-state
Fix `initialize_beacon_state_from_eth1` previous_version
2021-09-30 16:08:10 -06:00
Hsiao-Wei Wang 1f7040b42b
Make previous_version=current_version 2021-09-30 16:41:05 +08:00
Hsiao-Wei Wang 2d169adfc7
Fix `initialize_beacon_state_from_eth1` previous_version 2021-09-29 01:10:09 +08:00
terence tsao 2ea262f7d6
Update specs/merge/beacon-chain.md
Co-authored-by: Hsiao-Wei Wang <hsiaowei.eth@gmail.com>
2021-09-28 07:53:29 -07:00
terence tsao 6d81440b10
Fix a comment typo in `execute_payload` 2021-09-27 21:19:03 -07:00
Danny Ryan 757ad7851a
Merge branch 'dev' into terminal_blockhash_override_2 2021-09-27 11:24:48 -06:00
Danny Ryan d34b79f4de
Merge pull request #2630 from ethereum/tests/merge-clean-up
#2598 + cleanups
2021-09-27 11:23:30 -06:00
Danny Ryan 08ea4348c5
Merge branch 'dev' into terminal_blockhash_override_2 2021-09-27 11:01:10 -06:00
Danny Ryan adfcb79815
Merge pull request #2625 from ethereum/altair-fork
add ALTAIR_FORK_EPOCH for mainnet configuration
2021-09-27 07:57:09 -06:00
Mark Mackey 8a76a4143d Fixed Validation Conditions (Function Renamed) 2021-09-24 14:15:42 -05:00
lsankar4033 9353c71a6d Fix spelling 2021-09-24 11:57:58 -07:00
Danny Ryan af5eef37b2
fix am/pm issue 2021-09-24 12:29:34 -06:00
Danny Ryan 9f037180ba
add ALTAIR_FORK_EPOCH for mainnet configuration 2021-09-24 12:14:39 -06:00
Danny Ryan 995e928f42
Merge pull request #2621 from ethDreamer/fix_gossip_block_validation_conditions
Modify Merge Gossip Block Validation Conditions
2021-09-24 06:33:05 -06:00
Danny Ryan a48a6f46c4
fix lint 2021-09-24 06:32:08 -06:00
Danny Ryan 35a42c9d45
Apply suggestions from code review 2021-09-24 06:23:59 -06:00
Danny Ryan d7665681a2
simplify merge block gossip conditions 2021-09-24 06:08:01 -06:00
Danny Ryan 940d6b1cc5
Merge pull request #2613 from mkalinin/execution-engine-update
Update execution engine calls
2021-09-24 05:57:27 -06:00
Mikhail Kalinin 11840ce51f Map EE calls on the PoS events defined in EIP-3675 2021-09-24 16:31:09 +06:00
Dmitrii Shmatko 8ae078a4f5 Merge branch 'dev' into tests/merge 2021-09-23 22:24:33 +03:00
Dmitrii Shmatko b1aa227983 Added `on_merge_block` client tests 2021-09-23 22:22:34 +03:00
Mark Mackey d9a183b5cb Modify Merge Gossip Block Validation Conditions 2021-09-23 13:30:43 -05:00
Mark Mackey 08ca12ba97 Fixed Altair p2p-interface.md Link 2021-09-23 13:16:57 -05:00
lsankar4033 1ccb7d0a52 Inline TERMINAL_BLOCK_HASH and TERMINAL_TOTAL_DIFFICULTY usages 2021-09-23 09:52:02 -07:00
Lakshman Sankar 9d1cdf5ce1
Bytes32 -> Hash32
Co-authored-by: Mikhail Kalinin <noblesse.knight@gmail.com>
2021-09-23 09:31:43 -07:00
Mikhail Kalinin 0e2eb50675 Fix spelling 2021-09-23 15:30:14 +06:00
Mikhail Kalinin 41e06aec1b Introduce PayloadId type 2021-09-23 15:03:43 +06:00
Mikhail Kalinin 7d577ed422 Introduce ExecutionAddress type 2021-09-23 14:35:55 +06:00
Mikhail Kalinin b7deef1629 Clarity which state should be used in prepare_payload in a better way 2021-09-23 13:50:46 +06:00
Mikhail Kalinin 7ef938da77 Add notify_ prefix to EE functions sending notifications 2021-09-23 13:37:52 +06:00
Mikhail Kalinin c815f695cd
Polish comment in get_payload body
Co-authored-by: Hsiao-Wei Wang <hsiaowei.eth@gmail.com>
2021-09-23 13:17:55 +06:00
Mikhail Kalinin eada985e9e
Better wording for consensus_validated
Co-authored-by: Danny Ryan <dannyjryan@gmail.com>
2021-09-23 13:16:18 +06:00
lsankar4033 56fc984333 Re-run doctoc 2021-09-22 11:24:05 -07:00
lsankar4033 df6a834889 Add TERMINAL_BLOCK_HASH override 2021-09-22 11:18:41 -07:00
Mikhail Kalinin f4bd37a108 Fix spelling 2 2021-09-22 23:58:04 +06:00
Mikhail Kalinin 38a4fd907e
Fix spelling
Co-authored-by: Hsiao-Wei Wang <hsiaowei.eth@gmail.com>
2021-09-22 23:56:10 +06:00