Commit Graph

1129 Commits

Author SHA1 Message Date
Age Manning
522d0e1201 Updated all crates in eth2-libp2p 2020-04-30 21:31:12 +10:00
pawanjay176
655e255f76 Merge branch 'upstream/stable-futures' into master-sf 2020-04-30 12:03:01 +05:30
pawanjay176
2390b013ac Merge branch 'master' into master-sf 2020-04-30 11:53:32 +05:30
Raw Pong Ghmoa
f4ac0422e2 beacon/notifier: display block information for current slot (#1084) 2020-04-30 16:20:54 +10:00
Paul Hauner
8bf0ef8d30 Add more detail to bad hardcoded dir warning (#1069) 2020-04-30 16:19:15 +10:00
Pawan Dhananjay
85baec87f5 Port websockets, timer and notifier to stable futures (#1035)
* Fix lcli

* Port timer to stable futures

* Fix timer

* Port websocket_server to stable futures

* Port notifier to stable futures

* Add TODOS

* Port remote_beacon_node to stable futures
2020-04-30 15:49:05 +10:00
realbigsean
dea01be00e Improve aggregate validator logic (#1020)
* track whether we have aggregate validator subscriptions to exact subnets, so we know whether or not to drop incoming attestations

* fix is aggregator check

* fix CI

Co-authored-by: Age Manning <Age@AgeManning.com>
2020-04-30 15:39:10 +10:00
Age Manning
78a08ec1e6 Remove padding from gossipsub ids (#1083) 2020-04-30 15:33:53 +10:00
pawanjay176
5fa6b8d5e3 protocol.rs compiles 2020-04-29 20:10:23 +05:30
Paul Hauner
7f2121205a Ensure genesis is not triggered too early (#1052) 2020-04-29 11:37:14 +10:00
pawanjay176
5ae53c9699 Non rpc stuff compiles 2020-04-28 20:30:29 +05:30
pawanjay176
47124ca404 Fix lcli merge conflicts 2020-04-28 18:26:17 +05:30
pawanjay176
19436d4ad7 Merge branch 'master' into master-sf 2020-04-28 18:19:33 +05:30
Justin
41208d79b1 Add missing TODO (#1079) 2020-04-28 21:58:21 +10:00
Kirk Baird
1abb54dabd Milagro BLS update (#985)
* 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

* Add first attempt at attestation proc. re-write

* Add version 2 of attestation processing

* Minor fixes

* Add validator pubkey cache

* Make get_indexed_attestation take a committee

* Link signature processing into new attn verification

* First working version

* Ensure pubkey cache is updated

* Add more metrics, slight optimizations

* Clone committee cache during attestation processing

* Update shuffling cache during block processing

* Remove old commented-out code

* Fix shuffling cache insert bug

* Used indexed attestation in fork choice

* Restructure attn processing, add metrics

* Add more detailed metrics

* Tidy, fix failing tests

* Fix failing tests, tidy

* Disable/delete two outdated tests

* Add new Pubkeys struct to signature_sets

* Refactor with functional approach

* Update beacon chain

* Remove decompressed member from pubkey bytes

* Add hashmap for indices lookup

* Change `get_attesting_indices` to use Vec

* Fix failing test

* Tidy

* Add pubkey cache persistence file

* Add more comments

* Integrate persistence file into builder

* Add pubkey cache tests

* Add data_dir to beacon chain builder

* Remove Option in pubkey cache persistence file

* Ensure consistency between datadir/data_dir

* Fix failing network test

* Tidy

* Fix todos

* Improve tests

* Split up block processing metrics

* Tidy

* Refactor get_pubkey_from_state

* Remove commented-out code

* Add BeaconChain::validator_pubkey

* Update milagro_bls

Signed-off-by: Kirk Baird <baird.k@outlook.com>

* Cargo fmt

Signed-off-by: Kirk Baird <baird.k@outlook.com>

* Use Option::filter

* Remove Box

* Comment out tests that fail due to hard-coded

* Fix fake crypto

Signed-off-by: Kirk Baird <baird.k@outlook.com>

* Fix Cow::Borrowed

Signed-off-by: Kirk Baird <baird.k@outlook.com>

* Cargo fmt

Signed-off-by: Kirk Baird <baird.k@outlook.com>

Co-authored-by: Michael Sproul <michael@sigmaprime.io>
Co-authored-by: Michael Sproul <micsproul@gmail.com>
Co-authored-by: pawan <pawandhananjay@gmail.com>
Co-authored-by: Paul Hauner <paul@paulhauner.com>
2020-04-28 13:15:46 +10:00
Age Manning
500f6b53d1 Testnet corrections (#1050)
* Correct RPC ping request

* Add attestation verification

* Add discv5 bug fixes

* Reduce gossipsub heartbeat and update metadata

* Handle known chain of advanced peer
2020-04-27 14:18:30 +10:00
divma
fa8154e3da Ensure batches align to epoch boundaries (#1021)
* Ensure batches align to epoch boundaries

* Clean up range_sync logs
2020-04-27 14:18:09 +10:00
Paul Hauner
30e8e8a337 Add feature flag for writing ssz pre/post to disk (#1046) 2020-04-24 11:57:39 +10:00
Age Manning
79cc9473c1 Sync and multi-client updates (#1044)
* Update finalized/head sync logic

* Correct sync logging

* Handle status during sync gracefully
2020-04-23 19:01:29 +10:00
Age Manning
0b82e9f8a9 Update Syncing logic (#1042)
* Prevent duplicate parent block lookups

* Updates logic for handling re-status'd peers

* Allow block lookup if the block is close to head

* Correct ordering of sync logs

* Remove comments in block processer, clean up sim
2020-04-22 23:58:10 +10:00
Paul Hauner
aacec7a4a7 Skip an already finalized block in a segment (#1041) 2020-04-22 23:06:16 +10:00
divma
2469bde6b1 Add chain_id in range syncing to avoid wrong dispatching of batch results (#1037) 2020-04-22 21:17:56 +10:00
Paul Hauner
018a666731 Address clippy arith lints (#1038) 2020-04-22 14:46:19 +10:00
Age Manning
ca538e887e Cleanup v0.2.0 2020-04-22 01:31:07 +10:00
Age Manning
dfecca72ef Updates the grafiti tag to v0.2.0 2020-04-22 01:07:38 +10:00
Age Manning
9e416a9bcd Merge latest master 2020-04-22 01:05:46 +10:00
pawan
1bc75986ac Add TODOS 2020-04-21 20:06:27 +05:30
Age Manning
20b6baf11f Sync corrections (#1034)
* Correct status re-request logic improve logging

* Prevent multiple dials of the same peer

* Discovery to obey max peers when connecting to new peers
2020-04-22 00:29:19 +10:00
Age Manning
9e42a851e4 Adds peers and connected_peers to lighthouse http API (#1030) 2020-04-21 23:27:49 +10:00
pawan
3075b3c61c Port notifier to stable futures 2020-04-21 18:23:07 +05:30
pawan
d0b478f994 Port websocket_server to stable futures 2020-04-21 14:34:10 +05:30
pawan
1fa6b49136 Fix timer 2020-04-21 01:56:03 +05:30
pawan
1475302c44 Port timer to stable futures 2020-04-20 19:53:10 +05:30
divma
fa7147f7c5 Clean RPC names versions and encodings (#1024)
* cleanup RPC protocol names

* add rpc encodings

* Add RPC Versions as an enum
2020-04-20 23:15:08 +10:00
Age Manning
11209ae966 Discv5 patch (#1029) 2020-04-20 23:12:07 +10:00
Adam Szkoda
9c3f76a33b Prune abandoned forks (#916)
* Address compiler warning

* Prune abandoned fork choice forks

* New approach to pruning

* Wrap some block hashes in a newtype pattern

For increased type safety.

* Add Graphviz chain dump emitter for debugging

* Fix broken test case

* Make prunes_abandoned_forks use real DiskStore

* Mark finalized blocks in the GraphViz output

* Refine debug stringification of Slot and Epoch

Before this commit: print!("{:?}", Slot(123)) == "Slot(\n123\n)".
After this commit: print!("{:?", Slot(123)) == "Slot(123)".

* Simplify build_block()

* Rewrite test case using more composable test primitives

* Working rewritten test case

* Tighten fork prunning test checks

* Add another pruning test case

* Bugfix: Finalized blocks weren't always properly detected

* Pruning: Add pruning_does_not_touch_blocks_prior_to_finalization test case

* Tighten pruning tests: check if heads are tracked properly

* Add a failing test case for a buggy scenario

* Change name of function to a more accurate one

* Fix failing test case

* Test case: Were skipped slots' states pruned?

* Style fix: Simplify dereferencing

* Tighten pruning tests: check if abandoned states are deleted

* Towards atomicity of db ops

* Correct typo

* Prune also skipped slots' states

* New logic for handling skipped states

* Make skipped slots test pass

* Post conflict resolution fixes

* Formatting fixes

* Tests passing

* Block hashes in Graphviz node labels

* Removed unused changes

* Fix bug with states having < SlotsPerHistoricalRoot roots

* Consolidate State/BlockRootsIterator for pruning

* Address review feedback

* Fix a bug in pruning tests

* Detach prune_abandoned_forks() from its object

* Move migrate.rs from store to beacon_chain

* Move forks pruning onto a background thread

* Bugfix: Heads weren't pruned when prune set contained only the head

* Rename: freeze_to_state() -> process_finalization()

* Eliminate redundant function parameter

Co-authored-by: Michael Sproul <michael@sigmaprime.io>
2020-04-20 19:59:56 +10:00
Age Manning
7acb136974 Correct parent lookup (#1027)
* Correct parent-lookup with block gossip verification

* Further update port conflicts in tests
2020-04-20 16:54:37 +10:00
Paul Hauner
2d3acadfb5 Add debug log when gossip block recieved (#1026)
* Add debug! log for processing gossip block

* Fix stray dbg! command
2020-04-20 16:16:42 +10:00
Age Manning
49c77fe74b Shift gossip duplication into gossipsub (#1025)
* Remove hidden gossip source, improve logging

* Shift gossip cache into gossipsub
2020-04-20 15:58:07 +10:00
Michael Sproul
32074f0d09 Use checked arithmetic in types and state proc (#1009) 2020-04-20 12:35:11 +10:00
Michael Sproul
50ef0d7fbf Check attestation shuffling when producing blocks (#900)
Closes #845
2020-04-20 12:34:37 +10:00
Age Manning
489ad90536 Various corrections pre-testnet (#1019)
* Correct sync log messaging

* Modify syncing logs

* Update discv5 bug

* Discv5 patch

* Re-word sync status message

* Correct discovery peer finding logic

* Remove debugging log

* Remove duplicates in CLI

* Correct fmt
2020-04-19 20:45:25 +10:00
Paul Hauner
7b86c9a08f Update testnet tooling (#1001)
* Add progress on new deposits

* Add deposited command to account manager

* Remove old lcli::helpers mod

* Clean clap_utils

* Refactor lcli deposit contract commands to use IPC

* Make testnet optional for environment

* Use dbg formatting for deploy address

* Add command to generate bootnode enr

* Ensure lcli returns with 1 on error

* Ensure account manager returns 1 on error

* Disallow deposits to the zero address

* Update web3 in eth1 crate

* Ensure correct lighthouse dir is created

* Reduce deposit gas requirement

* Update cargo.lock

* Add progress on new deposits

* Add deposited command to account manager

* Remove old lcli::helpers mod

* Clean clap_utils

* Refactor lcli deposit contract commands to use IPC

* Add command to generate bootnode enr

* Ensure lcli returns with 1 on error

* Ensure account manager returns 1 on error

* Update web3 in eth1 crate

* Update Cargo.lock

* Move lcli out of main install script

* Change --limit to --at-least

* Change --datadir to --validator-dir

* Remove duplication in docs
2020-04-19 02:20:43 +00:00
Age Manning
f9e8dad1fb Correct status fork digest (#1016)
* Correct status fork digest

* Correct port issues with tests
2020-04-18 11:45:52 +10:00
Age Manning
62d7a71fd9 Merge latest master 2020-04-17 18:25:56 +10:00
Paul Hauner
1a3d1b3077 Fix issues with testnet dir, update docs (#992)
* Fix issues with testnet dir, update docs

* Remove "simple testnet" docs

* Tear out old "bn testnet" stuff

* Add back ClientGenesis::Interop

* Tidy

* Remove lighthouse-bootstrap module

* Fix bug with spec constant mismatch

* Ensure beacon-node.toml is written to correct dir

* Add -t alias for --testnet-dir

* Update book/src/local-testnets.md

Co-Authored-By: Age Manning <Age@AgeManning.com>

* Add --purge CLI flag

* Update purge docs

* Perform manual delete of files in purge

* Rename --purge to --purge-db

* Address Michael's comments

Co-authored-by: Age Manning <Age@AgeManning.com>
2020-04-17 17:49:29 +10:00
pawan
decd29adfb Port beacon_chain to stable futures 2020-04-17 17:29:22 +10:00
pawan
d778e7346e Port genesis tests to stable futures 2020-04-17 17:29:22 +10:00
pawan
a80f40f155 Port genesis service to stable futures 2020-04-17 17:29:22 +10:00
pawan
bdf89513c6 Port eth1 tests to stable futures 2020-04-17 17:29:22 +10:00