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
Michael Sproul
c1a2238f1a
Implement tree hash caching ( #584 )
...
* Implement basic tree hash caching
* Use spaces to indent top-level Cargo.toml
* Optimize BLS tree hash by hashing bytes directly
* Implement tree hash caching for validator registry
* Persist BeaconState tree hash cache to disk
* Address Paul's review comments
2019-11-05 15:46:52 +11:00
Age Manning
5c97ed3562
Updates external dependencies ( #577 )
...
* Updates external dependencies
* Correct fmt formatting
2019-10-30 12:22:18 +11:00
Michael Sproul
392b4203d1
Consolidate lazy_static versions
2019-09-30 12:36:42 +10:00
Paul Hauner
8cfa36fedd
Publish ssz_types (and deps) to crates.io ( #468 )
...
* Rename `hashing` crate to `eth2_hashing`
* Add license, desc to eth2_hashing Cargo.toml
* Remove merkle root from eth2 hashing
* Remove old benches folder (zombied from old branch)
* Add docs to eth2_hashing
* Prepare tree_hash for publishing on crates.io
* Update deps to use crates.io instead of paths
* Update all crates to pull ssz from crates.io
* Remove cached_tree_hash, add patches to manifest
* Fix compile error in benches
* Remove unused code
* Fix fake_crypto compile error
2019-08-08 11:39:47 +10:00
Pawan Dhananjay
88e89f9ab2
Update ethereum types ( #489 )
...
* Update ethereum-types to version 0.6
* Fix tests
* Run rustfmt
2019-08-06 14:41:42 +10:00
Paul Hauner
4f45bf2255
Tree hash benches ( #486 )
...
* Add initial tree hash benches
* Add tree hash example
* Use lazy static in tree hash benches
2019-08-05 18:06:50 +10:00
Paul Hauner
88c6d15c32
Padding efficent merkle root algo ( #436 )
...
* Add initial work on padding efficent merkle roots
* Improve merklize_padded
* Improve tree_hash crate -- fix bugs, docs
* Update codebase for tree_hash API change
* Remove dbg statements, fix import error
* Fix clippy lints, doc error
* Tidy tree hash comments
* Increase tree_hash max tree height
* Fix PR review comments
* Fix typos
* Fix cache access off-by-one in tree hash
* Set max tree depth to 48 (from 64)
2019-07-16 14:40:56 +10:00
Paul Hauner
4aeadfa60f
Remove "old" item requirement from treehash
2019-04-21 12:12:47 +10:00
Paul Hauner
10eeced227
Remove SSZ dep from tree_hash
2019-04-17 11:18:00 +10:00
Paul Hauner
0b5c10212d
Move tree_hash from ssz into own crate
2019-04-15 11:14:30 +10:00