600 Commits

Author SHA1 Message Date
Suphanat Chunhapanya
912c9b37a1 Fix typos 2023-04-04 13:33:42 +07:00
Hsiao-Wei Wang
0dd8db76cd
Make linter happy. Add SUBNET_DURATION_IN_EPOCHS definition. 2023-03-30 14:51:41 +08:00
Age Manning
7cb1630902
Attnet revamp draft 2023-03-30 15:32:35 +11:00
Roberto Saltini
c7029ce19e Rename get_epoch_boundary_block to get_ancestor_at_epoch_boundary 2023-03-29 12:40:58 +11:00
Roberto Saltini
ddbd82e1be Add toc 2023-03-28 15:51:34 +11:00
Roberto Saltini
201f113b50 Introduce get_epoch_boundary_block 2023-03-28 15:43:48 +11:00
omahs
3115d1140b
Fix: typos 2023-03-25 13:14:57 +01:00
Danny Ryan
a0eb23f108
Merge pull request #3290 from ethereum/fork-choice-upgrade
Fork choice upgrade
2023-03-15 10:51:09 -06:00
Aditya Asgaonkar
1a2967a542 Apply suggestions from @djrtwo 2023-03-14 14:49:41 -07:00
Aditya Asgaonkar
3de96f7a19
Apply suggestions from code review
Co-authored-by: Danny Ryan <dannyjryan@gmail.com>
2023-03-14 13:54:57 -07:00
Danny Ryan
b53392b463
Merge pull request #3177 from mkalinin/deposits
In-protocol deposits flow (no queue approach)
2023-03-14 11:33:36 -06:00
Aditya Asgaonkar
23c5b7c66e fix typo 2023-03-13 13:48:34 -07:00
Aditya Asgaonkar
e9551715d5 large fork choice upgrade 2023-03-13 11:52:43 -07:00
Ben Edgington
7f74a08a6c Fix trailing whitespace 2023-03-09 11:07:01 +00:00
Mikhail Kalinin
13f3654296 Apply suggestions from @djrtwo 2023-03-02 17:29:22 +06:00
Ben Edgington
7637158a2f Change get_latest_attesting_balances() to get_weight() 2023-02-15 11:39:33 +00:00
Potuz
86962b9437 Simplify commitee weight computation 2023-02-10 11:43:38 -03:00
Hsiao-Wei Wang
127edf3af1
Merge pull request #3221 from benjaminion/fc-on-attester-slashing
Add on_attester_slashing() to handlers list
2023-01-27 21:49:34 +08:00
Ben Edgington
8a0de1c595 Add on_attester_slashing() to handlers list 2023-01-24 13:25:40 +00:00
Ben Edgington
d54c87a5c0 Add genesis_block to get_forkchoice_store() params 2023-01-24 13:08:41 +00:00
Dustin Brody
b5bcec8d34
deprecate phase 0-only versions of beacon_blocks_by_{range,root} 2022-09-26 15:01:45 +00:00
Hsiao-Wei Wang
d133dae471
Fix codespell errors (#2975) 2022-08-18 22:08:44 +08:00
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