* Start updating types
* WIP
* Signature hacking
* Existing EF tests passing with fake_crypto
* Updates
* Delete outdated API spec
* The refactor continues
* It compiles
* WIP test fixes
* All release tests passing bar genesis state parsing
* Update and test YamlConfig
* Update to spec v0.10 compatible BLS
* Updates to BLS EF tests
* Add EF test for AggregateVerify
And delete unused hash2curve tests for uncompressed points
* Update EF tests to v0.10.1
* Use optional block root correctly in block proc
* Use genesis fork in deposit domain. All tests pass
* Cargo fmt
* Fast aggregate verify test
* Update REST API docs
* Cargo fmt
* Fix unused import
* Bump spec tags to v0.10.1
* Add `seconds_per_eth1_block` to chainspec
* Update to timestamp based eth1 voting scheme
* Return None from `get_votes_to_consider` if block cache is empty
* Handle overflows in `is_candidate_block`
* Revert to failing tests
* Fix eth1 data sets test
* Choose default vote according to spec
* Fix collect_valid_votes tests
* Fix `get_votes_to_consider` to choose all eligible blocks
* Uncomment winning_vote tests
* Add comments; remove unused code
* Reduce seconds_per_eth1_block for simulation
* Addressed review comments
* Add test for default vote case
* Fix logs
* Remove unused functions
* Meter default eth1 votes
* Fix comments
* Address review comments; remove unused dependency
* Disable/delete two outdated tests
* Bump eth1 default vote warn to error
* Delete outdated eth1 test
Co-authored-by: Pawan Dhananjay <pawandhananjay@gmail.com>
* Add LRU caches to store
* Improvements to LRU caches
* Take state by value in `Store::put_state`
* Store blocks by value, configurable cache sizes
* Use a StateBatch to efficiently store skip states
* Fix store tests
* Add CloneConfig test, remove unused metrics
* Use Mutexes instead of RwLocks for LRU caches
* Start adding interop genesis state to lcli
* Use more efficient method to generate genesis state
* Remove duplicate int_to_bytes32
* Add lcli command to change state genesis time
* Add option to allow VC to start with unsynced BN
* Set VC to do parallel key loading
* Don't default to dummy eth1 backend
* Add endpoint to dump operation pool
* Add metrics for op pool
* Remove state clone for slot notifier
* Add mem size approximation for tree hash cache
* Avoid cloning tree hash when getting head
* Fix failing API tests
* Address Michael's comments
* Add HashMap::from_par_iter
* Store dht enrs on shutdown
* Load enrs on startup and add tests
* Remove enr_entries from behavior
* Move all dht persisting logic to `NetworkService`
* Move `PersistedDht` from eth2-libp2p to network crate
* Add test to confirm dht persistence
* Add logging
* Remove extra call to beacon_chain persist
* Expose only mutable `add_enr` method from behaviour
* Fix tests
* Fix merge errors
* Update op_pool to use proper rewards
* Fix missing use import for tests
* Address Michael's comments
* Revert to private ValidatorStatuses
* Rename variable for clearer code
* Fix update_cover function
* Remove expect
* Add WIP test for rewards
* Use aggregation_bits instead of earliest_attestation_validators
* Use earliest attestation in test and correct typo
* Fix op_pool test thanks to @michaelsproul 's help
* Change test name
This should reduce disk usage by 32x while keeping historical state queries to
less than 10s. If historical states are required quickly, the minimum SPRP of 32
can be set on the CLI.
* Sparse hot DB and block root tree
* Fix store_tests
* Ensure loads of hot states on boundaries are fast
* Milder error for unaligned finalized blocks
* Add TimeoutRwLock to BeaconChain
* Update network crate
* Update rest api
* Fix beacon chain tests
* Fix rest api tests
* Set test back to !debug_assertions
* Set random port when zero-port option is set
* Remove logic allowing lighthouse to update its own ENR
* Discovery address is set to localhost by default
* Return error if discovery-addr isn't explicit
* Add functions to get deposit_count and deposit_root from deposit cache
* Fetch deposit root and deposit count from cache
* Fix bugs
* Add test
* Compare deposit_count between the caching and http eth1 blocks
* Revert "Compare deposit_count between the caching and http eth1 blocks"
This reverts commit e3d0325ae6d1040976d37eddf35fcc7ff2333cb8.
* Fetch deposit cache using binary search instead of linear search
* BlockCache waits till DepositCache is in sync
* Truncate required_blocks in block_cache upto latest_processed_block in deposit cache
* Clean up
* Handled getting deposit count before deploying deposit contract
* More cleanup
* Remove calls to http get deposit/count
* Fix block cache tests
* Minor changes
* Fix bootnode ports
* Address some of Paul's comments
* Optimize `get_deposit_root` by caching `DepositDataTree`
* Fix comments and minor changes
* Change eth1 default config parameters
* Use `Vec` instead of `HashMap` to store `deposit_roots`
* Minor renaming
* add support for gzip
* Fix clippy warnings
* Fix additional clippy warnings and optimized get_deposits function
* Fix get_deposits function call
* Add simulator to CI
* Install ganache before running sim
* Apply clippy lints to beacon node
* Remove unnecessary logging and correct formatting
* Initial bones of load-balanced range-sync
* Port bump meshsup tests
* Further structure and network handling logic added
* Basic structure, ignoring error handling
* Correct max peers delay bug
* Clean up and re-write message processor and sync manager
* Restructure directory, correct type issues
* Fix compiler issues
* Completed first testing of new sync
* Correct merge issues
* Clean up warnings
* Push attestation processed log down to dbg
* Add state enc/dec benches
* Correct math error, downgraded logs
* Add example for flamegraph
* Use `PublicKeyBytes` for `Validator`
* Ripple PublicKeyBytes change through codebase
* Add RPC error handling and improved syncing code
* Add benches, optimizations to store BeaconState
* Store BeaconState in StorageContainer too
* Optimize StorageContainer with std::mem magic
* Add libp2p stream error handling and dropping of invalid peers
* Lower logs
* Update lcli to parse spec at boot, remove pycli
* Fix issues when starting with mainnet spec
* Set default spec to mainnet
* Fix lcli --spec param
* Add discovery tweak
* Ensure ETH1_FOLLOW_DISTANCE is in YamlConfig
* Set testnet ETH1_FOLLOW_DISTANCE to 16
* Fix rest_api tests
* Set testnet min validator count
* Update with new testnet dir
* Remove some dbg, println
* Add timeout when notifier waits for libp2p lock
* Add validator count CLI flag to lcli contract deploy
* Extend genesis delay time
* Correct libp2p service locking
* Update testnet dir
* Add basic block/state caching on beacon chain
* Add decimals display to notifier sync speed
* Try merge in change to reduce fork choice calls
* Remove fork choice from process block
* Minor log fix
* Check successes > 0
* Adds checkpoint cache
* Stop storing the tree hash cache in the db
* Handles peer disconnects for sync
* Fix failing beacon chain tests
* Change eth2_testnet_config tests to Mainnet
* Add logs downgrade discovery log
* Remove dedunant beacon state write
* Fix re-org warnings
* Use caching get methods in fork choice
* Fix mistake in prev commit
* Use caching state getting in state_by_slot
* Add state.cacheless_clone
* Less fork choice (#679)
* Try merge in change to reduce fork choice calls
* Remove fork choice from process block
* Minor log fix
* Check successes > 0
* Fix failing beacon chain tests
* Fix re-org warnings
* Fix mistake in prev commit
* Attempt to improve attestation processing times
* Introduce HeadInfo struct
* Used cache tree hash for block processing
* Use cached tree hash for block production too
* Range sync refactor
- Introduces `ChainCollection`
- Correct Disconnect node handling
- Removes duplicate code
* Add more logging for DB
* Various bug fixes
* Remove unnecessary logs
* Maintain syncing state in the transition from finalied to head
* Improved disconnect handling
* Add `Speedo` struct
* Fix bugs in speedo
* Fix bug in speedo
* Fix rounding bug in speedo
* Move code around, reduce speedo observation count
* Adds forwards block interator
* Fix inf NaN
* Add first draft of validator onboarding
* Update docs
* Add documentation link to main README
* Continue docs development
* Update book readme
* Update docs
* Allow vc to run without testnet subcommand
* Small change to onboarding docs
* Tidy CLI help messages
* Update docs
* Add check to val client see if beacon node is synced
* Attempt to fix NaN bug
* Fix compile bug
* Add notifier service to validator client
* Re-order onboarding steps
* Update deposit contract address
* Update testnet dir
* Add note about public eth1 node
* Fix installation link
* Set default eth1 endpoint to sigp
* Fix broken test
* Try fix eth1 cache locking
* Be more specific about eth1 endpoint
* Increase gas limit for deposit
* Fix default deposit amount
* Fix re-org log