Michael Sproul
371e5adcf8
Update to Spec v0.10 ( #817 )
...
* 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>
2020-02-11 10:19:36 +11:00
Paul Hauner
b771bbb60c
Add proto_array fork choice ( #804 )
...
* Start implementing proto_array
* Add progress
* Add unfinished progress
* Add further progress
* Add progress
* Add tree filtering
* Add half-finished modifications
* Add refactored version
* Tidy, add incomplete LmdGhost impl
* Move impls in LmdGhost trait def
* Remove old reduced_tree fork choice
* Combine two functions in to `compute_deltas`
* Start testing
* Add more compute_deltas tests
* Add fork choice testing
* Add more fork choice testing
* Add more fork choice tests
* Add more testing to proto-array
* Remove old tests
* Modify tests
* Add more tests
* Add more testing
* Add comments and fixes
* Re-organise crate
* Tidy, finish pruning tests
* Add ssz encoding, other pub fns
* Rename lmd_ghost > proto_array_fork_choice
* Integrate proto_array into lighthouse
* Add first pass at fixing filter
* Clean out old comments
* Add more comments
* Attempt to fix prune error
* Adjust TODO
* Fix test compile errors
* Add extra justification change check
* Update cargo.lock
* Fix fork choice test compile errors
* Most remove ffg_update_required
* Fix bug with epoch of attestation votes
* Start adding new test format
* Make fork choice tests declarative
* Create test def concept
* Move test defs into crate
* Add binary, re-org crate
* Shuffle files
* Start adding ffg tests
* Add more fork choice tests
* Add fork choice JSON dumping
* Add more detail to best node error
* Ensure fin+just checkpoints from from same block
* Rename JustificationManager
* Move checkpoint manager into own file
* Tidy
* Add targetted logging for sneaky sync bug
* Fix justified balances bug
* Add cache metrics
* Add metrics for log levels
* Fix bug in checkpoint manager
* Fix compile error in fork choice tests
* Ignore duplicate blocks in fork choice
* Add block to fock choice before db
* Rename on_new_block fn
* Fix spec inconsistency in `CheckpointManager`
* Remove BlockRootTree
* Remove old reduced_tree code fragment
* Add API endpoint for fork choice
* Add more ffg tests
* Remove block_root_tree reminents
* Ensure effective balances are used
* Remove old debugging code, fix API fault
* Add check to ensure parent block is in fork choice
* Update readme dates
* Fix readme
* Tidy checkpoint manager
* Remove fork choice yaml files from repo
* Remove fork choice yaml from repo
* General tidy
* Address majority of Michael's comments
* Tidy bin/lib business
* Remove dangling file
* Undo changes for rpc/handler from master
* Revert "Undo changes for rpc/handler from master"
This reverts commit 876edff0e4a501aafbb47113454852826dcc24e8.
Co-authored-by: Age Manning <Age@AgeManning.com>
2020-01-29 15:05:00 +11:00
Age Manning
81b028b805
Advanced error handling for syncing ( #819 )
...
* Initial block processing thread design
* Correct compilation issues
* Increase logging and request from all given peers
* Patch peer request bug
* Adds fork choice to block processing
* Adds logging for bug isolation
* Patch syncing for chains with skip-slots
* Bump block processing error logs
* Improve logging for attestation processing
* Randomize peer selection during sync
* Resuming chains restarts from local finalized slot
* Downgrades Arc batches to Rc batches
* Add clippy fixes
* Add advanced error handling for invalid/malicious batches
* Downgrade Rc<Batch> to Option<Batch> to pass processed batches to chains
* Squash edge case rpc and syncing bugs
* Process empty batches which could end chains
* Removes last_processed_id concept to account for ending skip-slot batches
* Add logging for chain purges
* Adds retries to re-request batch logging
* Remove bug finding log
* Add reviewers suggestions
* Revert to master modifications
* Line wrapping
* Revert to master
2020-01-23 19:25:13 +11:00
Age Manning
fdb6e28f94
Super/Silky smooth syncs ( #816 )
...
* Initial block processing thread design
* Correct compilation issues
* Increase logging and request from all given peers
* Patch peer request bug
* Adds fork choice to block processing
* Adds logging for bug isolation
* Patch syncing for chains with skip-slots
* Bump block processing error logs
* Improve logging for attestation processing
* Randomize peer selection during sync
* Resuming chains restarts from local finalized slot
* Downgrades Arc batches to Rc batches
* Add clippy fixes
* Downgrade Rc<Batch> to Option<Batch> to pass processed batches to chains
* Add reviewers suggestions
2020-01-23 17:30:49 +11:00
pscott
7396cd2cab
Fix clippy warnings ( #813 )
...
* Clippy account manager
* Clippy account_manager
* Clippy beacon_node/beacon_chain
* Clippy beacon_node/client
* Clippy beacon_node/eth1
* Clippy beacon_node/eth2-libp2p
* Clippy beacon_node/genesis
* Clippy beacon_node/network
* Clippy beacon_node/rest_api
* Clippy beacon_node/src
* Clippy beacon_node/store
* Clippy eth2/lmd_ghost
* Clippy eth2/operation_pool
* Clippy eth2/state_processing
* Clippy eth2/types
* Clippy eth2/utils/bls
* Clippy eth2/utils/cahced_tree_hash
* Clippy eth2/utils/deposit_contract
* Clippy eth2/utils/eth2_interop_keypairs
* Clippy eth2/utils/eth2_testnet_config
* Clippy eth2/utils/lighthouse_metrics
* Clippy eth2/utils/ssz
* Clippy eth2/utils/ssz_types
* Clippy eth2/utils/tree_hash_derive
* Clippy lcli
* Clippy tests/beacon_chain_sim
* Clippy validator_client
* Cargo fmt
2020-01-21 18:38:56 +11:00
Age Manning
c184a98170
Sync fixes ( #801 )
...
* Randomize peer selection for batch errors
* Downgrade attestation logging
* Handle range sync errors
* Update lock file
* Downgrade logs
* Decrease batch size for better thread handling
* Optimise peer selection in range sync
2020-01-15 14:48:09 +11:00
Paul Hauner
f04c55075e
Add timeouts to canonical head rwlock ( #759 )
...
* Add TimeoutRwLock to BeaconChain
* Update network crate
* Update rest api
* Fix beacon chain tests
* Fix rest api tests
* Set test back to !debug_assertions
2020-01-06 17:30:37 +11:00
Age Manning
01ac60d638
Documents and simplifies syncing code ( #738 )
...
* Add duplication prevention to gossipsub
* Clean up topic logs
* Add content addressed messages for gossip
* Support BlocksByRange step parameter
* Add initial docs to syncing
* Adds documentation and simplify code in sync
* Remove unnecessary comment
* Fix fmt issue
* Add batch log to sync
2019-12-23 21:23:14 +11:00
Age Manning
45271abc16
Filter gossipsub message duplication ( #736 )
...
* Add duplication prevention to gossipsub
* Clean up topic logs
* Add content addressed messages for gossip
2019-12-20 16:26:30 +11:00
Age Manning
5853326342
Sync Re-Write ( #663 )
...
* 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
* Correct math error, downgraded logs
* Add RPC error handling and improved syncing code
* Add libp2p stream error handling and dropping of invalid peers
* Lower logs
* Add discovery tweak
* Correct libp2p service locking
* Handles peer disconnects for sync
* Add logs downgrade discovery log
* 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
* Range sync refactor
- Introduces `ChainCollection`
- Correct Disconnect node handling
- Removes duplicate code
* Various bug fixes
* Remove unnecessary logs
* Maintain syncing state in the transition from finalied to head
* Improved disconnect handling
* Adds forwards block interator
* Notifies lighthouse on stream timeouts
* Apply new gossipsub updates
2019-12-09 18:50:21 +11:00