lighthouse/eth2/utils
Paul Hauner 7f6ae4c2f5
Refactor tree hashing (#861)
* Pre-allocated tree hash caches

* Add SmallVec to tree hash cache

* Avoid allocation for validator.pubkey

* Avoid iterator which seems to be doing heap alloc

* Add more smallvecs

* MOAR SMALLVEC

* Move non-test code to Hash256 tree hash

* Fix byte ordering error

* Add incomplete but working merkle stream impl

* Fix zero hash error

* Add zero hash fn

* Add MerkleStream comments

* Add smallvec, tidy

* Integrate into tree hash derive

* Update ssz_types tree hash

* Don't heap alloc for mix in length

* Add byte-level streaming to MerkleStream

* Avoid recursion in write method

* Update BLS to MerkleStream

* Fix some not-compiling tests

* Remove debug profiling

* Remove code duplication

* Move beacon state tree hash to new hasher

* Fix failing tests

* Update comments

* Add some fast-paths to tree_hash::merkle_root

* Remove unncessary test

* Rename MerkleStream -> MerkleHasher

* Rename new_with_leaf_count -> with_leaves

* Tidy

* Remove NonZeroUsize

* Remove todo

* Update smallvec
2020-03-05 08:07:27 +11:00
..
bls Refactor tree hashing (#861) 2020-03-05 08:07:27 +11:00
cached_tree_hash Refactor tree hashing (#861) 2020-03-05 08:07:27 +11:00
compare_fields Add extra level of comparisons to CompareFields 2019-05-24 14:08:19 +10:00
compare_fields_derive Robustify derive macro attribute parsing (#544) 2019-09-28 14:29:14 +10:00
deposit_contract Update to Spec v0.10 (#817) 2020-02-11 10:19:36 +11:00
eth2_config Eth1 Integration (#542) 2019-11-15 14:47:51 +11:00
eth2_hashing Refactor tree hashing (#861) 2020-03-05 08:07:27 +11:00
eth2_interop_keypairs Update to Spec v0.10 (#817) 2020-02-11 10:19:36 +11:00
eth2_testnet_config Remove testnet dir from repo (#857) 2020-03-04 10:02:44 +11:00
int_to_bytes Tree hash cache arena (#836) 2020-02-07 12:42:49 +11:00
lighthouse_bootstrap Updates external dependencies (#577) 2019-10-30 12:22:18 +11:00
lighthouse_metrics Fix clippy warnings (#813) 2020-01-21 18:38:56 +11:00
logging Add proto_array fork choice (#804) 2020-01-29 15:05:00 +11:00
merkle_proof Tree hash cache arena (#836) 2020-02-07 12:42:49 +11:00
remote_beacon_node Add attester/proposer slashing endpoints (#856) 2020-02-14 22:35:18 +11:00
serde_hex Updates external dependencies (#577) 2019-10-30 12:22:18 +11:00
slot_clock Validator client refactor (#618) 2019-11-25 15:48:24 +11:00
ssz Refactor tree hashing (#861) 2020-03-05 08:07:27 +11:00
ssz_derive Add optimized SSZ decoding for fixed-len items (#865) 2020-03-04 11:45:01 +11:00
ssz_types Refactor tree hashing (#861) 2020-03-05 08:07:27 +11:00
swap_or_not_shuffle Remove temporary heap allocations during shuffling (#867) 2020-02-25 09:00:09 +11:00
test_random_derive Robustify derive macro attribute parsing (#544) 2019-09-28 14:29:14 +10:00
tree_hash Refactor tree hashing (#861) 2020-03-05 08:07:27 +11:00
tree_hash_derive Refactor tree hashing (#861) 2020-03-05 08:07:27 +11:00