Commit Graph

614 Commits

Author SHA1 Message Date
Kirk Baird
0513559252 Fix syncing bugs by recursively attempting to process parents in the … (#429)
* Fix syncing bugs by recursively attempting to process parents in the import queue, change BlockRootsIterator

* Swap from crossbeam channel to tokio mpsc

* Recursion fix

* Remove exess block processing

* Fix network lag, correct attestation topic

* Correct network poll logic

* Overhaul of SimpleSync and modify BlockRootsIterator to return start_slot

* Fix bug in tests relating to StateRootsIterator

* Remove old, commented-out heartbeat code.

* Tidy docs on import queue enum

* Change source logging msg in simple sync

* Rename function parameter in simple sync

* Use `BestBlockRootsIterator` in `reduced_tree`

* Update comments for `BestBlockRootsIterator`

* Fix duplicate dep in cargo.toml
2019-07-16 17:28:15 +10:00
Age Manning
af28d5e20c
Add persistent network identification 2019-07-04 14:14:27 +10:00
Age Manning
44c9058477
Integrate discv5 into lighthouse 2019-07-04 14:14:27 +10:00
Age Manning
6ee2b4df34
Complete merging of network addition branch 2019-07-04 14:14:26 +10:00
Age Manning
b33ce5dd10
Initial core grouping of libp2p behaviours 2019-07-04 14:13:43 +10:00
Age Manning
2d710f19fc
Update to latest libp2p 2019-07-04 14:08:48 +10:00
Age Manning
7920f8098f
Complete moving network logc into beacon node 2019-07-04 14:07:26 +10:00
Age Manning
64abd0bc5b
Removes network parameters from chain spec 2019-07-04 14:07:26 +10:00
Age Manning
a31d6bcb22
RPC methods get pubsub topics from chain spec 2019-07-04 14:07:26 +10:00
Paul Hauner
027f0a539d
Prepare ssz for publishing on crates.io 2019-07-03 16:06:20 +10:00
Age Manning
5521c53d36
Add persistent network identification 2019-07-01 16:38:42 +10:00
Paul Hauner
2a7122beaf
Partially refactor simple_sync, makes improvement 2019-06-27 18:05:03 +10:00
Age Manning
81f0b6c238
Integrate discv5 into lighthouse 2019-06-25 18:02:50 +10:00
Age Manning
84ea5adffe
Complete merging of network addition branch 2019-06-25 18:02:50 +10:00
Age Manning
cf459b60a9
Updates for latest master 2019-06-25 18:02:50 +10:00
Age Manning
f7c2e4c5af
Initial core grouping of libp2p behaviours 2019-06-25 18:02:50 +10:00
Age Manning
7ad9805f02
Update to latest libp2p 2019-06-25 18:02:49 +10:00
Age Manning
c1d609902a
Complete moving network logc into beacon node 2019-06-25 18:02:49 +10:00
Age Manning
dd3a4f0b43
Removes network parameters from chain spec 2019-06-25 18:02:49 +10:00
Age Manning
f54bd79f84
RPC methods get pubsub topics from chain spec 2019-06-25 18:02:48 +10:00
Paul Hauner
906580be15
Attempt to catch edge case in syncing 2019-06-25 16:05:26 +10:00
Paul Hauner
075c989375
Remove old fork_choice crate 2019-06-24 09:34:56 +10:00
Paul Hauner
55818e285a
Refactor block prod. to produce for forks 2019-06-24 09:34:53 +10:00
Paul Hauner
4c0724fba6
Refactor block processing results, some sync logic 2019-06-12 23:54:16 -04:00
Paul Hauner
e550c0218f
Add various fixes to clippy lints
Thou shalt appease clippy
2019-06-10 11:01:25 -04:00
Paul Hauner
e74d49fc8a
Remove dupe info between ChainSpec and EthSpec 2019-06-08 07:57:25 -04:00
Paul Hauner
719dd72de6
Fix recently introduced sync bugs 2019-06-07 02:55:16 -04:00
Paul Hauner
af96dd08c8
Simplify simple_sync code 2019-06-06 00:32:09 -04:00
Paul Hauner
2f9f8bf772
Tidy BeaconChain; del spec, unify head updates 2019-05-31 17:32:20 +10:00
Paul Hauner
0590504261
Remove BeaconChain wrapper trait from network 2019-05-30 18:27:19 +10:00
Paul Hauner
9ed8a4d380
Implement basic BeaconChain persistence. 2019-05-27 17:58:15 +10:00
Paul Hauner
ee8d13573f
Create BeaconChainTypes, thread through runtime 2019-05-26 15:59:29 +10:00
Paul Hauner
3bcf5ba706
Rename db crate to store 2019-05-21 18:20:23 +10:00
Paul Hauner
b62f4477e1
More project-wide fixes for new DB 2019-05-21 17:45:35 +10:00
Paul Hauner
fcabef91da
Use E for EthSpec trait, instead of B 2019-05-13 14:44:43 +10:00
Paul Hauner
ce8ebeccbc
Rename BeaconStateTypes to EthSpec 2019-05-10 14:47:09 +10:00
Paul Hauner
2a938f2fd5
Fix clippy lints 2019-05-09 13:35:00 +10:00
Paul Hauner
49c92ef167
Remove attester, block_producer & test_harness 2019-05-09 11:48:14 +10:00
Paul Hauner
42b7aa89d4
Update network and rpc to BeaconStateTypes 2019-05-08 19:38:18 +10:00
Paul Hauner
f69b56ad60
Add new tree_hash crate project wide. 2019-04-16 14:25:43 +10:00
Paul Hauner
b8c4c3308a
Update types to new tree_hash crate 2019-04-16 14:14:38 +10:00
Paul Hauner
1913be0c6f
Fix clippy lints 2019-04-03 16:23:09 +11:00
Paul Hauner
5e80b90301
Extend queue stale time, queue more blocks 2019-04-01 15:51:48 +11:00
Paul Hauner
a7df4f1800
Add log when block not processed in queue 2019-04-01 15:38:22 +11:00
Paul Hauner
a3ca3ec50d
Break block proc. loop if we get a bad block 2019-04-01 15:32:04 +11:00
Paul Hauner
111c81f428
Add ParentUnknown block processing to SimpleSync 2019-04-01 15:23:38 +11:00
Paul Hauner
9a0ebac687
Merge branch 'validator-enhancements' into paul-gossip-test 2019-03-31 17:47:35 +11:00
Paul Hauner
a93f898946
Improve gossipsub block processing 2019-03-31 17:27:04 +11:00
Age Manning
e0b5e74e7c
Removes further unneccessary debug output 2019-03-31 15:48:11 +11:00
Paul Hauner
2c1fa86cd3
Swap to gossiping whole block.
Processing for gossiped blocks is broken in `SimpleSync`, will be fixed
next.
2019-03-31 12:28:35 +11:00
Paul Hauner
c99a742aae
Fix bug in SimpleSync queue.
It was not completing partials with bodies.
2019-03-31 10:15:42 +11:00
Paul Hauner
5cc2fdd3d4
Change beacon_node and network slog features
Allows printing debug messages in --release
2019-03-31 10:15:01 +11:00
Paul Hauner
d2b5cf5a32
Improve queueing in SimpleSync 2019-03-31 09:44:58 +11:00
Paul Hauner
935c64deef
Adds attestation validation to SimpleSync 2019-03-30 19:11:52 +11:00
Paul Hauner
12936e73a7
Set gossip logs to info 2019-03-27 12:57:05 +11:00
Age Manning
f7131c2f87
Fix compile issues and modify type names 2019-03-25 23:39:39 +11:00
Age Manning
52b31b2009
Implement initial pubsub message handling 2019-03-25 23:02:51 +11:00
Age Manning
05369df7e8
Add PubsubMessage and publish function to behaviour 2019-03-25 22:00:11 +11:00
Paul Hauner
098e63ac32
Move gossip structs into behaviour 2019-03-25 18:59:50 +11:00
Paul Hauner
32a025bdf7
Introduced RequestId newtype 2019-03-25 16:48:44 +11:00
Paul Hauner
ebb9ced0a4
Improve peer status handling 2019-03-25 15:30:46 +11:00
Paul Hauner
708d9b5674
Add basic Gossip sync handlers 2019-03-25 14:27:20 +11:00
Paul Hauner
267477ffc2
Fix typo from previous commit 2019-03-24 18:37:23 +11:00
Paul Hauner
755a09d164
Move ImportQueue into own file 2019-03-24 18:34:44 +11:00
Paul Hauner
ee07efb9e9
Add comments to SimpleSync 2019-03-24 18:31:03 +11:00
Paul Hauner
07b6f70842
Ignore syncing tests (they run too long) 2019-03-24 17:58:30 +11:00
Paul Hauner
796b68dc04
Implement Goodbye and BeaconState msg handlers 2019-03-24 17:51:32 +11:00
Paul Hauner
f918f42b28
Merge branch 'master' into paul-sync 2019-03-24 16:36:18 +11:00
Paul Hauner
3dc5595a6f
Fix last errors stopping full chain sync 2019-03-24 16:35:07 +11:00
Paul Hauner
1ea9959632
Fix bug with block processing in sync 2019-03-24 15:18:21 +11:00
Paul Hauner
5f4f67f46f
Swap ImportQueue from a Map to a Vec
There's an edge case where different blocks can have the same block
body.
2019-03-24 14:22:12 +11:00
Paul Hauner
15f853416b
Add more detail to sync logs 2019-03-24 13:59:27 +11:00
Paul Hauner
840738ea12
Tidy logging, fix bug with stale time in queue 2019-03-24 13:06:17 +11:00
Paul Hauner
6b39c693af
Extend syncing 2019-03-24 12:50:23 +11:00
Paul Hauner
3eae7b3fc5
Add skip slot support to BeaconChain fns 2019-03-24 12:49:59 +11:00
Paul Hauner
a57a7c2394
Implement block imports for sync 2019-03-23 18:48:09 +11:00
Paul Hauner
4b5b5851a6
Allow sync to to request block bodies. 2019-03-23 13:23:44 +11:00
Paul Hauner
96ba1c8f77
Implement get_block_roots for syncing 2019-03-22 14:20:49 +11:00
Paul Hauner
f96a3282b5
Pass first sync test 2019-03-22 11:39:16 +11:00
Paul Hauner
7a75ee3d19
Merge branch 'master' into paul-sync 2019-03-22 07:11:04 +11:00
Paul Hauner
f3c81cda99
Implement hello responses. 2019-03-21 18:21:50 +11:00
Paul Hauner
ca18d4390a
Add first changes to syncing logic
- Adds testing framework
- Breaks out new `NetworkContext` object
2019-03-21 17:17:01 +11:00
Age Manning
13ac5b1d25
Tidy network poll and implement Identify 2019-03-21 13:15:14 +11:00
Age Manning
e080f63811
Rename libp2p to eth2-libp2p 2019-03-20 15:09:24 +11:00
Age Manning
7c7f81d188
Fix issue with merging v0.5.0 2019-03-20 14:36:09 +11:00
Age Manning
4105b869e1
Fix all matches relating to new RPC methods 2019-03-20 10:54:19 +11:00
Age Manning
d229bc9ccb
Stub possible fields in HandlerMessage 2019-03-20 10:02:26 +11:00
Age Manning
4b57d32b60
Apply clippy suggestions 2019-03-19 23:20:39 +11:00
Age Manning
e7f87112fb
Tidy networking crates 2019-03-19 22:53:51 +11:00
Age Manning
dc014d07bc
Enable syncing state when new peer connects 2019-03-19 22:32:56 +11:00
Age Manning
0a8b0069dc
Add peer validation and successful handshake 2019-03-19 22:18:01 +11:00
Age Manning
b30d72501c
Add logger to sync module 2019-03-19 21:55:57 +11:00
Age Manning
6e10ce93d4
Tidy message handler 2019-03-19 21:44:52 +11:00
Age Manning
c0bc45f1f3
Implement node connection validation structure 2019-03-19 18:28:42 +11:00
Age Manning
752c784534
Initial handling of RPC HELLO requests 2019-03-19 14:40:08 +11:00
Age Manning
5ae8079b44
Basic node handshake 2019-03-19 13:25:25 +11:00
Age Manning
67c09021f0
Initial handling RPC responses 2019-03-19 13:03:12 +11:00
Age Manning
2657dc1465
Builds RPC infrastructure to handle RPC responses 2019-03-19 12:47:36 +11:00
Age Manning
31333e8f8e
Add send rpc in message handler 2019-03-19 12:19:07 +11:00
Age Manning
495348f934
Adds RPC request send framework in message handler 2019-03-19 11:25:42 +11:00
Age Manning
dfdec78a7a
Implements hello generation in sync module 2019-03-19 00:26:15 +11:00
Age Manning
41abdb7599
Remove sync crate, move into network crate 2019-03-19 00:05:06 +11:00
Age Manning
8ec0688cb9
Implements RPC call functionality 2019-03-18 23:34:44 +11:00
Age Manning
0625bb6b03
Add network channel into message handler 2019-03-18 23:18:25 +11:00
Age Manning
6a89da43b7
Cleanup network shutdown messages 2019-03-18 18:22:01 +11:00
Age Manning
6b5debe654
Organize beacon_chain typing
- Implements ClientTypes
- New network BeaconChain type for the networking service
2019-03-18 17:38:23 +11:00
Age Manning
bbad4bfa19
Starts initialisation of beacon chain in the client 2019-03-18 16:16:54 +11:00
Age Manning
2e0c8e2e47
Handle peer dials and propagate to message handler 2019-03-17 23:14:28 +11:00
Age Manning
9803ab30f2
Propagate RPC through network service.
- Basic network message handler threading
- Correct references
2019-03-17 21:49:56 +11:00
Age Manning
ae983a9347
Basic networking service with channel 2019-03-12 17:28:11 +11:00
Age Manning
ac639c6427
Add libp2p transport - tcp/ws/secio and multiplexing. 2019-03-06 23:31:08 +11:00
Age Manning
b68adc1ae3
Implement skeleton network/sync framework. 2019-03-04 18:31:01 +11:00
Age Manning
3b8f29a914
[Temp Commit] Implements more basic skeleton code. 2019-03-04 16:39:37 +11:00
Age Manning
19a64f906e
Initial beacon node setup.
- Add network crate.
- Add sync crate.
- Add version crate.
- Add lighthouse configuration.
- Add network configuration.
2019-02-28 10:29:28 +11:00