lighthouse/consensus/tree_hash
Paul Hauner 21bcc8848d Add caching for state.eth1_data_votes (#919)
## Issue Addressed

NA

## Proposed Changes

Adds additional tree hash caching for `state.eth1_data_votes`.

Presently, each time we tree hash the `BeaconState`, we recompute the `state.eth1_data_votes` tree in it's entirety. This is because we only previous had support for caching fixed-length lists.

This PR adds the `Eth1DataVotesTreeHashCache` which provides caching for the `state.eth1_data_votes` list. The cache is aware of `SLOTS_PER_ETH1_VOTING_PERIOD` and will reset itself whenever that boundary is crossed.

This cache adds a new (but somewhat fundamental) restriction to tree hash caching:

*For some state `s`, `s.tree_hash_cache` is only valid for `s` or descendants of `s` that have been reached via state transitions that are faithful to the specification (invalid blocks are permitted, as long as they are faithfully processed).*
2020-07-24 02:19:47 +00:00
..
benches Add caching for state.eth1_data_votes (#919) 2020-07-24 02:19:47 +00:00
examples Improve bls::SecretKey privacy (#1164) 2020-05-19 11:23:08 +10:00
src Directory Restructure (#1163) 2020-05-18 21:24:23 +10:00
Cargo.toml Update smallvec (#1339) 2020-07-07 16:57:27 +10:00