Commit Graph

528 Commits

Author SHA1 Message Date
David Theodore c51e67a059 fixed typo in on_block() definition 2022-07-29 00:13:32 -07: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
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
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
Michael Sproul 3f76792ee3
Require fork choice to run before proposal 2022-05-05 11:21:55 +10:00
Alex Stokes 0afa7e1b38
update language to reflect latest work on withdrawals 2022-03-15 18:01:47 -06: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
Aditya Asgaonkar a0ba6b2a1a Add note about syncing 2022-03-08 06:52:03 -08: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 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 03f0f6762a
revert removal of aggregate deduplication condition from #2183 2022-02-25 10:25:27 -07: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
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
Alex Stokes 2b45496fe4
clean up unused argument from `phase0` 2022-01-13 11:39:36 -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 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
Aditya Asgaonkar 0d8fab3986 Apply Danny's suggestion 2021-12-02 09:57:28 -08: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
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
Danny Ryan 395fdd4566
Merge pull request #2730 from ethereum/proposer-score-boost
Proposer LMD Score Boosting
2021-11-23 11:39:07 -07: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