Skip to content
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

Electra: Remaining Consensus Data Structures #5712

Merged
merged 101 commits into from
Jun 24, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
101 commits
Select commit Hold shift + click to select a range
3b7132b
Attestation superstruct changes for EIP 7549 (#5644)
eserilev Apr 30, 2024
e6c7f14
`superstruct` the `AttesterSlashing` (#5636)
ethDreamer May 2, 2024
3a41e13
Merge remote-tracking branch 'upstream/unstable' into electra_attesta…
ethDreamer May 2, 2024
9b98f4e
Make EF Tests Fork-Agnostic (#5713)
ethDreamer May 3, 2024
7c6526d
Finish EF Test Fork Agnostic (#5714)
ethDreamer May 3, 2024
19a9479
Superstruct `AggregateAndProof` (#5715)
ethDreamer May 6, 2024
9f6de8e
Merge remote-tracking branch 'sigp/unstable' into electra_attestation…
realbigsean May 6, 2024
38382a3
cargo fmt
realbigsean May 6, 2024
2c2e44c
Merge pull request #5726 from realbigsean/electra_attestation_changes
realbigsean May 6, 2024
90179d4
EIP7549 `get_attestation_indices` (#5657)
eserilev May 8, 2024
f30246b
Some small changes (#5739)
ethDreamer May 8, 2024
43c3f63
cargo fmt (#5740)
ethDreamer May 8, 2024
7cb7653
Sketch op pool changes
michaelsproul May 9, 2024
e32dfcd
fix get attesting indices (#5742)
realbigsean May 9, 2024
07229b7
Ef test fixes (#5753)
realbigsean May 9, 2024
cb8c8f5
Fix Aggregation Pool for Electra (#5754)
ethDreamer May 9, 2024
c30f709
fix ssz (#5755)
realbigsean May 9, 2024
ab9e58a
Get `electra_op_pool` up to date (#5756)
ethDreamer May 9, 2024
ca09671
Revert "Get `electra_op_pool` up to date (#5756)" (#5757)
ethDreamer May 9, 2024
b807d39
Merge branch 'electra_attestation_changes' of https://github.com/sigp…
realbigsean May 9, 2024
411fcee
Compute on chain aggregate impl (#5752)
eserilev May 10, 2024
e448557
update the naive agg pool interface (#5760)
realbigsean May 10, 2024
437e851
Fix bugs in cross-committee aggregation
michaelsproul May 10, 2024
16265ef
Add comment to max cover optimisation
michaelsproul May 10, 2024
72548cb
Fix assert
michaelsproul May 10, 2024
7926afe
Merge pull request #5749 from sigp/electra_op_pool
realbigsean May 10, 2024
e1dcfb6
update committee offset
realbigsean May 11, 2024
3b1fb0a
Fix Electra Fork Choice Tests (#5764)
ethDreamer May 12, 2024
79a5f25
Subscribe to the correct subnets for electra attestations (#5782)
eserilev May 15, 2024
a8088f1
cargo fmt
realbigsean May 15, 2024
bafb5f0
fix slashing handling
realbigsean May 17, 2024
987abe0
Merge remote-tracking branch 'upstream/unstable'
ethDreamer May 24, 2024
82858bc
Send unagg attestation based on fork
pawanjay176 May 13, 2024
154b7a7
Publish all aggregates
ethDreamer May 15, 2024
bb734af
just one more check bro plz..
ethDreamer May 15, 2024
469296b
Merge pull request #5832 from ethDreamer/electra_attestation_changes_…
realbigsean May 24, 2024
3f169ef
Merge pull request #5835 from realbigsean/fix-validator-logic
realbigsean May 24, 2024
3e10e68
Merge pull request #5816 from realbigsean/electra-attestation-slashin…
realbigsean May 24, 2024
75432e1
Electra attestation changes rm decode impl (#5856)
ethDreamer May 30, 2024
e340998
Fix failing attestation tests and misc electra attestation cleanup (#…
eserilev May 30, 2024
b61d244
fix some todos (#5817)
realbigsean May 30, 2024
49de63f
Merge branch 'unstable' of https://github.com/sigp/lighthouse into el…
realbigsean May 31, 2024
29ed1c5
add consolidations to merkle calc for inclusion proof
realbigsean May 12, 2024
f9d3545
Remove Duplicate KZG Commitment Merkle Proof Code (#5874)
ethDreamer Jun 1, 2024
77c630b
Merge branch 'unstable' of https://github.com/sigp/lighthouse into el…
realbigsean Jun 13, 2024
b21b108
fix compile
realbigsean Jun 13, 2024
35e07eb
Fix slasher tests (#5906)
pawanjay176 Jun 14, 2024
d7f3c95
Update superstruct to 0.8
michaelsproul Jun 14, 2024
d5aa2d8
Merge remote-tracking branch 'origin/unstable' into electra_attestati…
michaelsproul Jun 14, 2024
c4f2284
Small cleanup in slasher tests
michaelsproul Jun 14, 2024
3ac3ddb
Clean up Electra observed aggregates (#5929)
michaelsproul Jun 17, 2024
9a01b6b
Merge branch 'unstable' of https://github.com/sigp/lighthouse into el…
realbigsean Jun 17, 2024
d87541c
De-dup attestation constructor logic
dapplion Jun 17, 2024
dd0d5e2
Remove unwraps in Attestation construction
dapplion Jun 17, 2024
3ec21a2
Dedup match_attestation_data
dapplion Jun 17, 2024
795eff9
Remove outdated TODO
dapplion Jun 17, 2024
960f8c5
Use ForkName Ord in fork-choice tests
dapplion Jun 17, 2024
1d0e3f4
Use ForkName Ord in BeaconBlockBody
dapplion Jun 17, 2024
5acc052
Make to_electra not fallible
dapplion Jun 17, 2024
4f08f6e
Remove TestRandom impl for IndexedAttestation
dapplion Jun 17, 2024
f049285
Remove IndexedAttestation faulty Decode impl
dapplion Jun 17, 2024
5070ab2
Drop TestRandom impl
dapplion Jun 17, 2024
45d007a
Add PendingAttestationInElectra
dapplion Jun 17, 2024
9e84779
Indexed att on disk (#35)
realbigsean Jun 18, 2024
7af3f2e
add electra fork enabled fn to ForkName impl (#36)
eserilev Jun 18, 2024
2634a1f
Update common/eth2/src/types.rs
dapplion Jun 18, 2024
dec7cff
Dedup attestation constructor logic in attester cache
dapplion Jun 17, 2024
6a4d842
Use if let Ok for committee_bits
dapplion Jun 18, 2024
6f0b784
Dedup Attestation constructor code
dapplion Jun 18, 2024
444cd62
Diff reduction in tests
dapplion Jun 18, 2024
d264736
Fix beacon_chain tests
dapplion Jun 18, 2024
7521f97
Diff reduction
dapplion Jun 18, 2024
4d3edfe
Use Ord for ForkName in pubsub
dapplion Jun 18, 2024
7fce143
Resolve into_attestation_and_indices todo
dapplion Jun 18, 2024
4d4c268
Remove stale TODO
dapplion Jun 18, 2024
370d511
Fix beacon_chain tests
dapplion Jun 18, 2024
cbb7c5d
Test spec invariant
dapplion Jun 19, 2024
70a2d4d
Use electra_enabled in pubsub
dapplion Jun 19, 2024
9e6e76f
Remove get_indexed_attestation_from_signed_aggregate
dapplion Jun 19, 2024
a8d8989
Use ok_or instead of if let else
dapplion Jun 19, 2024
d67270f
committees are sorted
dapplion Jun 19, 2024
3977b92
remove dup method `get_indexed_attestation_from_committees`
realbigsean Jun 19, 2024
6e44832
Merge pull request #5940 from dapplion/electra_attestation_changes_li…
realbigsean Jun 19, 2024
afb9122
update default persisted op pool deserialization
realbigsean Jun 19, 2024
381bbab
ensure aggregate and proof uses serde untagged on ref
realbigsean Jun 19, 2024
0e2add2
Fork aware ssz static attestation tests
dapplion Jun 20, 2024
f85a124
Electra attestation changes from Lions review (#5971)
eserilev Jun 20, 2024
efb8a01
Merge branch 'unstable' of https://github.com/sigp/lighthouse into el…
realbigsean Jun 20, 2024
27ed90e
Electra attestation changes sean review (#5972)
realbigsean Jun 21, 2024
b6913ae
Avoid changing slasher schema for Electra
michaelsproul Jun 21, 2024
ebbb17b
Delete slasher schema v4
michaelsproul Jun 21, 2024
13b1b05
Fix clippy
michaelsproul Jun 21, 2024
339d1b8
Fix compilation of beacon_chain tests
michaelsproul Jun 21, 2024
70a80d5
Update database.rs
dapplion Jun 21, 2024
8715589
Add electra lightclient types
dapplion Jun 21, 2024
09141ec
Update slasher/src/database.rs
realbigsean Jun 21, 2024
8fc5333
fix imports
realbigsean Jun 21, 2024
5517c78
Merge pull request #5980 from dapplion/electra-lightclient
realbigsean Jun 21, 2024
cf030d0
Merge pull request #5975 from michaelsproul/electra-slasher-no-migration
realbigsean Jun 21, 2024
68fd7a7
Update beacon_node/beacon_chain/src/attestation_verification.rs
realbigsean Jun 21, 2024
d137881
Update beacon_node/beacon_chain/src/attestation_verification.rs
realbigsean Jun 21, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 3 additions & 2 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -162,7 +162,7 @@ smallvec = "1.11.2"
snap = "1"
ssz_types = "0.6"
strum = { version = "0.24", features = ["derive"] }
superstruct = "0.7"
superstruct = "0.8"
syn = "1"
sysinfo = "0.26"
tempfile = "3"
Expand Down
2 changes: 1 addition & 1 deletion beacon_node/beacon_chain/src/attestation_simulator.rs
Original file line number Diff line number Diff line change
Expand Up @@ -82,7 +82,7 @@ pub fn produce_unaggregated_attestation<T: BeaconChainTypes>(
// Store the unaggregated attestation in the validator monitor for later processing
match chain.produce_unaggregated_attestation(current_slot, beacon_committee_index) {
Ok(unaggregated_attestation) => {
let data = &unaggregated_attestation.data;
let data = unaggregated_attestation.data();

debug!(
chain.log,
Expand Down
388 changes: 262 additions & 126 deletions beacon_node/beacon_chain/src/attestation_verification.rs

Large diffs are not rendered by default.

Original file line number Diff line number Diff line change
Expand Up @@ -66,14 +66,13 @@ where
.ok_or(BeaconChainError::ValidatorPubkeyCacheLockTimeout)?;

let mut signature_sets = Vec::with_capacity(num_indexed * 3);

// Iterate, flattening to get only the `Ok` values.
for indexed in indexing_results.iter().flatten() {
let signed_aggregate = &indexed.signed_aggregate;
let indexed_attestation = &indexed.indexed_attestation;
let fork = chain
.spec
.fork_at_epoch(indexed_attestation.data.target.epoch);
.fork_at_epoch(indexed_attestation.data().target.epoch);

signature_sets.push(
signed_aggregate_selection_proof_signature_set(
Expand All @@ -98,7 +97,7 @@ where
signature_sets.push(
indexed_attestation_signature_set_from_pubkeys(
|validator_index| pubkey_cache.get(validator_index).map(Cow::Borrowed),
&indexed_attestation.signature,
indexed_attestation.signature(),
indexed_attestation,
&fork,
chain.genesis_validators_root,
Expand Down Expand Up @@ -182,11 +181,11 @@ where
let indexed_attestation = &partially_verified.indexed_attestation;
let fork = chain
.spec
.fork_at_epoch(indexed_attestation.data.target.epoch);
.fork_at_epoch(indexed_attestation.data().target.epoch);

let signature_set = indexed_attestation_signature_set_from_pubkeys(
|validator_index| pubkey_cache.get(validator_index).map(Cow::Borrowed),
&indexed_attestation.signature,
indexed_attestation.signature(),
indexed_attestation,
&fork,
chain.genesis_validators_root,
Expand Down
2 changes: 2 additions & 0 deletions beacon_node/beacon_chain/src/attester_cache.rs
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@ use state_processing::state_advance::{partial_state_advance, Error as StateAdvan
use std::collections::HashMap;
use std::ops::Range;
use types::{
attestation::Error as AttestationError,
beacon_state::{
compute_committee_index_in_epoch, compute_committee_range_in_epoch, epoch_committee_count,
},
Expand Down Expand Up @@ -59,6 +60,7 @@ pub enum Error {
InverseRange {
range: Range<usize>,
},
AttestationError(AttestationError),
}

impl From<BeaconStateError> for Error {
Expand Down
2 changes: 1 addition & 1 deletion beacon_node/beacon_chain/src/beacon_block_reward.rs
Original file line number Diff line number Diff line change
Expand Up @@ -202,7 +202,7 @@ impl<T: BeaconChainTypes> BeaconChain<T> {
let mut previous_epoch_participation = state.previous_epoch_participation()?.clone();

for attestation in block.body().attestations() {
let data = &attestation.data;
let data = attestation.data();
let inclusion_delay = state.slot().safe_sub(data.slot)?.as_u64();
// [Modified in Deneb:EIP7045]
let participation_flag_indices = get_attestation_participation_flag_indices(
Expand Down
Loading