mirror of
https://github.com/sigp/lighthouse.git
synced 2026-05-07 00:42:42 +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:
@@ -11,7 +11,6 @@ pub type CacheArena = cache_arena::CacheArena<Hash256>;
|
||||
pub use crate::cache::TreeHashCache;
|
||||
pub use crate::impls::int_log;
|
||||
use ethereum_types::H256 as Hash256;
|
||||
use tree_hash::TreeHash;
|
||||
|
||||
#[derive(Debug, PartialEq, Clone)]
|
||||
pub enum Error {
|
||||
@@ -34,7 +33,7 @@ impl From<cache_arena::Error> for Error {
|
||||
}
|
||||
|
||||
/// Trait for types which can make use of a cache to accelerate calculation of their tree hash root.
|
||||
pub trait CachedTreeHash<Cache>: TreeHash {
|
||||
pub trait CachedTreeHash<Cache> {
|
||||
/// Create a new cache appropriate for use with values of this type.
|
||||
fn new_tree_hash_cache(&self, arena: &mut CacheArena) -> Cache;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user