mirror of
https://github.com/sigp/lighthouse.git
synced 2026-03-09 19:51:47 +00:00
Tree hash caching and optimisations for Altair (#2459)
## Proposed Changes Remove the remaining Altair `FIXME`s from consensus land. 1. Implement tree hash caching for the participation lists. This required some light type manipulation, including removing the `TreeHash` bound from `CachedTreeHash` which was purely descriptive. 2. Plumb the proposer index through Altair attestation processing, to avoid calculating it for _every_ attestation (potentially 128ms on large networks). This duplicates some work from #2431, but with the aim of getting it in sooner, particularly for the Altair devnets. 3. Removes two FIXMEs related to `superstruct` and cloning, which are unlikely to be particularly detrimental and will be tracked here instead: https://github.com/sigp/superstruct/issues/5
This commit is contained in:
@@ -337,6 +337,7 @@ fn invalid_attestation_no_committee_for_index() {
|
||||
let result = process_operations::process_attestations(
|
||||
&mut state,
|
||||
head_block.body(),
|
||||
head_block.proposer_index(),
|
||||
VerifySignatures::True,
|
||||
&spec,
|
||||
);
|
||||
@@ -368,6 +369,7 @@ fn invalid_attestation_wrong_justified_checkpoint() {
|
||||
let result = process_operations::process_attestations(
|
||||
&mut state,
|
||||
head_block.body(),
|
||||
head_block.proposer_index(),
|
||||
VerifySignatures::True,
|
||||
&spec,
|
||||
);
|
||||
@@ -400,6 +402,7 @@ fn invalid_attestation_bad_aggregation_bitfield_len() {
|
||||
let result = process_operations::process_attestations(
|
||||
&mut state,
|
||||
head_block.body(),
|
||||
head_block.proposer_index(),
|
||||
VerifySignatures::True,
|
||||
&spec,
|
||||
);
|
||||
@@ -425,6 +428,7 @@ fn invalid_attestation_bad_signature() {
|
||||
let result = process_operations::process_attestations(
|
||||
&mut state,
|
||||
head_block.body(),
|
||||
head_block.proposer_index(),
|
||||
VerifySignatures::True,
|
||||
&spec,
|
||||
);
|
||||
@@ -456,6 +460,7 @@ fn invalid_attestation_included_too_early() {
|
||||
let result = process_operations::process_attestations(
|
||||
&mut state,
|
||||
head_block.body(),
|
||||
head_block.proposer_index(),
|
||||
VerifySignatures::True,
|
||||
&spec,
|
||||
);
|
||||
@@ -491,6 +496,7 @@ fn invalid_attestation_included_too_late() {
|
||||
let result = process_operations::process_attestations(
|
||||
&mut state,
|
||||
head_block.body(),
|
||||
head_block.proposer_index(),
|
||||
VerifySignatures::True,
|
||||
&spec,
|
||||
);
|
||||
@@ -522,6 +528,7 @@ fn invalid_attestation_target_epoch_slot_mismatch() {
|
||||
let result = process_operations::process_attestations(
|
||||
&mut state,
|
||||
head_block.body(),
|
||||
head_block.proposer_index(),
|
||||
VerifySignatures::True,
|
||||
&spec,
|
||||
);
|
||||
|
||||
Reference in New Issue
Block a user