Fix failing attestation tests and misc electra attestation cleanup (#5810)

* - get attestation related beacon chain tests to pass
- observed attestations are now keyed off of data + committee index
- rename op pool attestationref to compactattestationref
- remove unwraps in agg pool and use options instead
- cherry pick some changes from ef-tests-electra

* cargo fmt

* fix failing test

* Revert dockerfile changes

* make committee_index return option

* function args shouldnt be a ref to attestation ref

* fmt

* fix dup imports

---------

Co-authored-by: realbigsean <seananderson33@GMAIL.com>
This commit is contained in:
Eitan Seri-Levi
2024-05-30 17:51:34 +02:00
committed by GitHub
parent 75432e1135
commit e340998241
28 changed files with 765 additions and 292 deletions

View File

@@ -3369,7 +3369,7 @@ pub fn serve<T: BeaconChainTypes>(
"error" => format!("{:?}", e),
"request_index" => index,
"aggregator_index" => aggregate.message().aggregator_index(),
"attestation_index" => aggregate.message().aggregate().data().index,
"attestation_index" => aggregate.message().aggregate().committee_index(),
"attestation_slot" => aggregate.message().aggregate().data().slot,
);
failures.push(api_types::Failure::new(index, format!("Verification: {:?}", e)));
@@ -3390,7 +3390,7 @@ pub fn serve<T: BeaconChainTypes>(
"error" => format!("{:?}", e),
"request_index" => index,
"aggregator_index" => verified_aggregate.aggregate().message().aggregator_index(),
"attestation_index" => verified_aggregate.attestation().data().index,
"attestation_index" => verified_aggregate.attestation().committee_index(),
"attestation_slot" => verified_aggregate.attestation().data().slot,
);
failures.push(api_types::Failure::new(index, format!("Fork choice: {:?}", e)));

View File

@@ -141,7 +141,7 @@ pub async fn publish_attestations<T: BeaconChainTypes>(
// move the `attestations` vec into the blocking task, so this small overhead is unavoidable.
let attestation_metadata = attestations
.iter()
.map(|att| (att.data().slot, att.data().index))
.map(|att| (att.data().slot, att.committee_index()))
.collect::<Vec<_>>();
// Gossip validate and publish attestations that can be immediately processed.