mirror of
https://github.com/sigp/lighthouse.git
synced 2026-05-08 09:16:00 +00:00
Altair consensus changes and refactors (#2279)
## Proposed Changes Implement the consensus changes necessary for the upcoming Altair hard fork. ## Additional Info This is quite a heavy refactor, with pivotal types like the `BeaconState` and `BeaconBlock` changing from structs to enums. This ripples through the whole codebase with field accesses changing to methods, e.g. `state.slot` => `state.slot()`. Co-authored-by: realbigsean <seananderson33@gmail.com>
This commit is contained in:
@@ -173,7 +173,7 @@ where
|
||||
impl<Pub, AggPub, Sig, AggSig> GenericAggregateSignature<Pub, AggPub, Sig, AggSig>
|
||||
where
|
||||
Pub: TPublicKey + Clone,
|
||||
AggPub: TAggregatePublicKey + Clone,
|
||||
AggPub: TAggregatePublicKey<Pub> + Clone,
|
||||
Sig: TSignature<Pub>,
|
||||
AggSig: TAggregateSignature<Pub, AggPub, Sig>,
|
||||
{
|
||||
@@ -189,6 +189,18 @@ where
|
||||
}
|
||||
}
|
||||
|
||||
/// Wrapper to `fast_aggregate_verify` accepting the infinity signature when `pubkeys` is empty.
|
||||
pub fn eth2_fast_aggregate_verify(
|
||||
&self,
|
||||
msg: Hash256,
|
||||
pubkeys: &[&GenericPublicKey<Pub>],
|
||||
) -> bool {
|
||||
if pubkeys.is_empty() && self.is_infinity {
|
||||
return true;
|
||||
}
|
||||
self.fast_aggregate_verify(msg, pubkeys)
|
||||
}
|
||||
|
||||
/// Verify that `self` represents an aggregate signature where all `pubkeys` have signed their
|
||||
/// corresponding message in `msgs`.
|
||||
///
|
||||
|
||||
Reference in New Issue
Block a user