Commit Graph

697 Commits

Author SHA1 Message Date
Age Manning
ba771282fa
Merges in validator client branch 2019-03-30 13:17:24 +11:00
Paul Hauner
89cc92572a
Add test_harness tests for attestation count 2019-03-30 13:03:05 +11:00
Paul Hauner
cd9494181c
Push RwLock down into OperationPool
There used to be one massive lock on `BeaconChain.op_pool`, however that
would cause unnecessary blocking.
2019-03-30 12:26:25 +11:00
Paul Hauner
1840248af8
Remove old queues from BeaconChain 2019-03-30 12:00:31 +11:00
Paul Hauner
8bf7a83f37
Rename op processing methods on BeaconChain 2019-03-29 19:09:01 +11:00
Paul Hauner
2b53851062
Pass errors back from block ops processing 2019-03-29 18:54:01 +11:00
Paul Hauner
8b1a91e9ee
Add process_attestation to BeaconChain 2019-03-29 18:40:50 +11:00
Paul Hauner
46a978a5a9
Implement op pool for all ops execpt attestations 2019-03-29 18:30:03 +11:00
Kirk Baird
023b4e8c92
Merge master and remove ssz length encoding from FakeBLS 2019-03-29 11:47:22 +11:00
Luke Anderson
be592c86d1
Started migrating FreeAttestation to Attestation in the harnesses - doesn't compile yet. 2019-03-29 10:39:37 +11:00
Luke Anderson
87acaac8a0
Ran cargo fmt. 2019-03-28 21:01:47 +11:00
Luke Anderson
ba71e8adca
Merged age-validator-client into luke's changes on validator_client, and fixed all the merge conflicts. 2019-03-28 20:55:07 +11:00
Age Manning
2a2660ce62
Cleanup debug issues, corrects RPC server logic 2019-03-28 17:24:49 +11:00
Age Manning
cc4ccd4017
Corrects read/write race condition 2019-03-28 17:16:43 +11:00
Luke Anderson
c9e8fe53bc
Merged Age's changes and ripped out heaps of now obsolete stuff in the validator client.
- Replaced most instances of PublicKey with KeyPair, since they need to be passed into each validator thread now.
 - Pulled out a bunch of FreeAttestations, and replaced with regular Attestations (as per Paul's suggestion)
 - Started generalising pubkeys to 'signers' (though they are still just Keypairs)
 - Added validator_index into a few structs where relevant
 - Removed the SlotClock and DutiesReader from the BlockProducer and Attester services, since this logic is now abstracted to the higher level process.
 - Added a Hash trait to the Keypair (rather than just pubkey) which assumes the Pubkey uniquely defines it.
2019-03-28 15:50:57 +11:00
Age Manning
6f0c0e47c3
Update Validator RPC and cache building 2019-03-28 14:32:02 +11:00
Age Manning
d7289ab55e
Add gossip-test branch 2019-03-28 14:31:35 +11:00
Age Manning
4caaf82892
Correct validator get duties RPC server logic 2019-03-28 13:14:41 +11:00
Age Manning
086ebb1485
Fix beacon node rpc compilation issues 2019-03-27 21:32:53 +11:00
Age Manning
1f437a3e7b
Implements RPC Server side of epoch duties 2019-03-27 21:08:28 +11:00
Luke Anderson
16706d322f
Merge remote-tracking branch 'origin/master' into validator_client-luke_wip 2019-03-27 19:10:36 +11:00
Luke Anderson
c9a7977d69
Renamed some functions, trying to get beaconnode attestation stuff to work. 2019-03-27 14:30:09 +11:00
Paul Hauner
12936e73a7
Set gossip logs to info 2019-03-27 12:57:05 +11:00
Paul Hauner
c52da489cb
Merge branch 'master' into paul-gossip-test 2019-03-27 11:26:06 +11:00
Paul Hauner
f18941a01c
Block client startup until state is ready 2019-03-27 11:25:15 +11:00
Paul Hauner
b006586d19
Add slot timer to beacon node 2019-03-27 10:36:20 +11:00
Paul Hauner
c82bad7602
Add cache builds when advancing chain slot 2019-03-27 10:34:52 +11:00
Paul Hauner
c27fdbe37f
Try to load keys from file when starting client 2019-03-27 10:28:27 +11:00
Luke Anderson
1584469b7c
Renamed attestation -> attestation_data for fetch, but not publish, to acknowledge the difference in the spec. Also started implementing the gRPC get_attestation_data functionality in the BeaconNode. 2019-03-26 17:41:43 +11:00
Age Manning
96ccd58414
Merge branch 'libp2p-patch' 2019-03-26 16:49:43 +11:00
Kirk Baird
e12ce2bd5c
Merge branch 'master' into yaml-test-downloads 2019-03-26 16:47:24 +11:00
Age Manning
507c8efbfb
Update to latest gossipsub 2019-03-26 16:38:50 +11:00
Paul Hauner
7cba9f4126
Merge branch 'master' into paul-gossip-test 2019-03-26 16:09:47 +11:00
Paul Hauner
00b546e6b8
Update slot clock to use genesis slot 2019-03-26 15:44:28 +11:00
Paul Hauner
0768d24ffc
Add untested block processing from GRPC 2019-03-26 15:26:05 +11:00
Age Manning
6955330f6c
Merge branch 'libp2p-patch' 2019-03-26 15:14:29 +11:00
Age Manning
b2ae54043c
Fix libp2p version to specific commit 2019-03-26 15:06:41 +11:00
Paul Hauner
3756d8d681
Rename proto NodeInfo -> NodeInfoResponse 2019-03-26 15:04:39 +11:00
Age Manning
5b40152873
Update to latest libp2p and gossipsub 2019-03-26 15:01:05 +11:00
Kirk Baird
116d995960
Merge current master and fix ssz-fuzzing 2019-03-26 14:53:50 +11:00
Paul Hauner
e702896bee
Fix ssz decoding bug 2019-03-26 13:28:21 +11:00
Paul Hauner
56c9a29593
Add logging 2019-03-26 13:28:01 +11:00
Paul Hauner
d4fecd8a84
Set GRPC block to be just SSZ 2019-03-26 12:32:38 +11:00
Paul Hauner
ca1eaf0b53
Merge branch 'paul-gossip-test' of github.com:sigp/lighthouse into paul-gossip-test 2019-03-26 09:47:38 +11:00
Paul Hauner
a145824c51
Set BeaconChainHarness to return block
This is useful if you want to inspect the block.
2019-03-26 09:46:26 +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
Age Manning
214fb5b8ff
Merge RPC branch 2019-03-25 21:31:49 +11:00
Paul Hauner
098e63ac32
Move gossip structs into behaviour 2019-03-25 18:59:50 +11:00
Luke Anderson
c7ba3faae0
Merge branch 'validator_client' of github.com:sigp/lighthouse into validator_client 2019-03-25 18:32:42 +11:00
Luke Anderson
4cdeb6abe5
Progress towards validator signing attestations.
- Added a 'beacon_attester' RPC endpoint, so the BeaconNode can supply attestation data.
 - Renamed 'attestation_data' to just 'attestation' throughout (except where it is actually just the data structure).
2019-03-25 18:32:27 +11:00
Age Manning
02039be400
Fix merge conflicts 2019-03-25 17:46:08 +11:00
Luke Anderson
2f49289c28
Merged master and fixed merge conflicts with Config updates. 2019-03-25 17:03:17 +11:00
Age Manning
ca9af49d4e
Adds error handling to validator client service 2019-03-25 16:50:15 +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
Age Manning
17cd5bb991
Adds genesis time to node info. Closes #256 2019-03-22 23:01:10 +11:00
Age Manning
a1a5f29caa
Fix registering of node service 2019-03-22 16:56:54 +11:00
Age Manning
a4cfe68272
Thread beacon node RPC server 2019-03-22 16:46:52 +11:00
Paul Hauner
96ba1c8f77
Implement get_block_roots for syncing 2019-03-22 14:20:49 +11:00
Age Manning
858cf4f1f4
Add beacon_chain trait for gRPC server 2019-03-22 13:51:17 +11:00
Age Manning
ee6a0ccb92
Initial build of server-side BeaconNodeService RPC 2019-03-22 13:37:24 +11:00
Age Manning
844fdc0fb9
Rename network_id to chain_id 2019-03-22 12:39:45 +11:00
Paul Hauner
f96a3282b5
Pass first sync test 2019-03-22 11:39:16 +11:00
Paul Hauner
4fc6e435d2
Add type alias to test_harness 2019-03-22 11:38:57 +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
430702b38d
Clean println's out of state processing 2019-03-21 18:21:26 +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
84f0ad2ae7
Add Ping protocol to lighthouse 2019-03-21 13:42:02 +11:00
Age Manning
7f976124df
Add logging to libp2p behaviour 2019-03-21 13:34:37 +11:00
Age Manning
71dca8af36
Correct user agent string 2019-03-21 13:28:34 +11:00
Age Manning
13ac5b1d25
Tidy network poll and implement Identify 2019-03-21 13:15:14 +11:00
Age Manning
35815ce786
Cleans up swarm poll and adds identify behaviour 2019-03-21 12:57:41 +11:00
Age Manning
67a3dfe052
Remove node private key from config 2019-03-21 12:45:23 +11:00
Age Manning
7ec37939c8
Adds Identify protocol and cleans up network config 2019-03-21 12:41:05 +11:00
Age Manning
437a0505c9
Implement encodeable on all RPC methods 2019-03-21 11:25:22 +11:00
Age Manning
950186eca7
Implement BeaconChainState RPC method 2019-03-21 11:18:47 +11:00
Age Manning
3063d5eac9
Implement BeaconBlockBodies RPC method 2019-03-21 11:16:09 +11:00
Age Manning
56cd77ead8
Implement BeaconBlockHeaders RPC method 2019-03-21 11:05:26 +11:00
Age Manning
766a79adfa
Implement BeaconBlockRoots RPC method 2019-03-21 11:02:52 +11:00
Age Manning
a14426349a
Implement Goodbye RPC call 2019-03-21 10:53:29 +11:00
Age Manning
3aa2b376bb
Increase RPC read/write limit to 4M 2019-03-21 10:43:21 +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
4310f35b73
Merge branch 'master' into network-server 2019-03-20 14:31:35 +11:00
Age Manning
4105b869e1
Fix all matches relating to new RPC methods 2019-03-20 10:54:19 +11:00
Paul Hauner
84f373fcc2
Fix clippy lints 2019-03-20 10:51:53 +11:00
Age Manning
9db36f15bf
Tidy RPC Methods 2019-03-20 10:47:05 +11:00
Age Manning
ae1a7a2a25
Implement BeaconChainState RPC method 2019-03-20 10:43:40 +11:00
Age Manning
fd04431d54
Implement BeaconBlockBody RPC method 2019-03-20 10:36:37 +11:00
Age Manning
8fa70f64ec
Implement BeaconBlockHeaders RPC method 2019-03-20 10:28:05 +11:00
Age Manning
450b2cfb81
Rename RequestBeaconBlockRoots to BeaconBlockRoots for consistency 2019-03-20 10:19:45 +11:00
Age Manning
8acfb260d1
Implement RequestBeaconBlockRoots RPC method 2019-03-20 10:18:04 +11:00
Age Manning
0e8b174770
Implement Goodbye libp2p rpc request 2019-03-20 10:05:17 +11:00
Age Manning
d229bc9ccb
Stub possible fields in HandlerMessage 2019-03-20 10:02:26 +11:00
Age Manning
4be2eeb792
Correct cli rpc parameters 2019-03-20 09:58:31 +11:00
Age Manning
037c3b8307
Update config and cli for rpc 2019-03-20 00:01:31 +11:00
Age Manning
d2f12b7c18
Add standard RPC service 2019-03-19 23:47:58 +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
66f09e1b8e
Updates network branch to v0.5.0 2019-03-18 18:17:37 +11:00
Kirk Baird
9cef6a5814
Finish implementing Darrens migrate-ssz-little-endian and add wrapper to check for ssz underflow 2019-03-18 18:11:46 +11:00
Paul Hauner
71d95ee9db
Add new field to test_harness YAML, remove prints 2019-03-18 18:08:53 +11:00
Age Manning
2d52d2954d
Modify testnet spec to have few validators 2019-03-18 17:45:40 +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
Paul Hauner
edeace9e75
Fix issues with building on genesis block 2019-03-18 16:53:59 +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
Paul Hauner
816c2c651b
Modify genesis processing process.
- Removed BeaconStateBuilder
- Added genesis code to `state_processing`.
2019-03-17 23:11:07 +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
Paul Hauner
f71cab8ba2
Ensure project tests compile on v0.5.0 2019-03-17 19:28:29 +11:00
Paul Hauner
446ff0c27e
Ensure test_harness crate compiles under v0.5.0 2019-03-17 19:19:52 +11:00
Paul Hauner
6df5eee7f4
Update beacon_chain crate with v0.5.0 updates 2019-03-17 18:10:20 +11:00
Paul Hauner
8b08e9dd2e
Remove block and state readers from db crate 2019-03-17 17:54:43 +11:00
Age Manning
7370306366
Rename RPC reqeusts, correct RPC internals 2019-03-17 14:38:20 +11:00
Age Manning
2871ad5055
Correct listening addresses and associated log 2019-03-17 14:25:47 +11:00
Paul Hauner
f9964ebd8b
Update Fork struct to v0.5.0 2019-03-15 13:33:45 +11:00
Age Manning
7b6a653d05
Add RPC protocol to lh network behaviour. 2019-03-15 02:48:09 +11:00
Age Manning
24c7f180e2
Update rpc event handling. 2019-03-15 02:13:16 +11:00
Age Manning
c06e8ffa5b
Initial Libp2p RPC implementation. 2019-03-15 01:50:59 +11:00
Paul Hauner
8cc89b9820
Fix clippy warnings 2019-03-14 18:08:21 +11:00
Paul Hauner
2bfc8ed4da
Fix failing doc test 2019-03-14 18:08:09 +11:00
Paul Hauner
122916acdd
Merge branch 'master' into fix-test-harness 2019-03-14 18:01:57 +11:00
Paul Hauner
12214e7eed
Ignore long running DB test 2019-03-14 15:11:03 +11:00
Age Manning
23a8fbfc74
Add default topics and initial topic subscription 2019-03-13 15:39:32 +11:00
Age Manning
8ee3523abd
Transition to secp256k1 default peer id 2019-03-13 14:43:24 +11:00
Paul Hauner
6c4e457c8a
Fix test_harness tests
They were broken by changes to TestingBeaconStateBuilder and where the
keypairs file is stored.
2019-03-13 11:25:17 +11:00
Paul Hauner
2d2ba6576b
Remove old, superseded benches 2019-03-13 11:24:46 +11:00
Paul Hauner
f949919b9b
Add comments to epoch_processing 2019-03-12 18:02:53 +11:00
Paul Hauner
dc221f3220
Make attester/proposer slashing builders test-only
They didn't do anything useful or safe for production.
2019-03-12 17:30:00 +11:00
Age Manning
ae983a9347
Basic networking service with channel 2019-03-12 17:28:11 +11:00
Paul Hauner
efd56ebe37
Ignore file-exists error. 2019-03-12 14:42:31 +11:00
Paul Hauner
cce88c9923
Improve DX for loading validator keys from file 2019-03-12 14:39:16 +11:00
Paul Hauner
f34ae86cde
Add support for loading keypairs from file 2019-03-12 12:46:44 +11:00
Kirk Baird
25b08f0096
Run cargo fmt 2019-03-11 15:22:15 +11:00
Kirk Baird
191759dad0
Modify create_proof_of_possession, and verifying proof_of_possession in process_deposits 2019-03-11 15:18:45 +11:00
Kirk Baird
9c225936b6 Merge branch 'timing-report' of github.com:sigp/lighthouse into timing-report
Signed-off-by: Kirk Baird <baird.k@outlook.com>
2019-03-11 11:55:41 +11:00
Kirk Baird
df52669888
Add changes of create_proof_of_possession to pull 2019-03-11 11:55:09 +11:00
Paul Hauner
41844841c6
Update project tests to use new genesis structure 2019-03-11 11:52:16 +11:00
Paul Hauner
a77d1885a1
Refactor BeaconStateBuilder
Made it a production-only struct. All the testing stuff can be done with
BeaconStateBencher
2019-03-09 10:39:05 +11:00
Paul Hauner
ddac7540bc
Allow test_harness to load validators from file. 2019-03-08 16:10:21 +11:00
Paul Hauner
4b21252ce4
Refactor BeaconChain and BeaconState genesis
Now it more easily supports using pre-build validator registries.
2019-03-08 15:33:45 +11:00
Paul Hauner
6efe2ad3e3
Add debug logs to test_harness prepare 2019-03-08 15:09:33 +11:00
Paul Hauner
e76b5e1c3a
Re-work deposit generation for memory efficiency
Helps ensure that variables are dropped after they're finished being
used.
2019-03-08 15:06:13 +11:00
Paul Hauner
ec9e0bbddf
Allow test_harness to load validators from file
Also adds a command to test_harness binary to generate validators
2019-03-08 13:18:02 +11:00
Age Manning
21032334ac
Adds bootnodes to chainspec. Handles type correctly 2019-03-08 12:15:57 +11:00
Age Manning
c5a7c62d5d
Updates to latest master. 2019-03-08 11:15:38 +11:00
Age Manning
3c51769428
Node listens on default port and connects to bootnodes. 2019-03-08 11:07:30 +11:00
Paul Hauner
b98f514d68
Break BeaconChainHarness validator gen into fn
Prepares for allowing for loading from file
2019-03-08 10:50:43 +11:00
Paul Hauner
9a964be58b
Update test_harness clap args structure
Prepares it for adding a new subcommand
2019-03-08 10:50:12 +11:00
Paul Hauner
60098a051d
Fix/silence clippy lints 2019-03-08 09:23:57 +11:00
Paul Hauner
1ef2652cac
Add transfer processing to BeaconChain 2019-03-07 17:23:11 +11:00
Age Manning
9f13731d6d
Implements a basic libp2p tcp,secio,mplex,gossipsub swarm. 2019-03-07 16:17:06 +11:00
Paul Hauner
195cb16a41
Update test_harness for spec v0.4.0 2019-03-07 14:29:21 +11:00
Paul Hauner
db3b6cba6d
Introduce Fork struct to block_producer
It's a pretty crappy solution, IMO. It shouldn't really belong in
"duties" but this gets the job done for now.
2019-03-07 13:54:56 +11:00
Paul Hauner
5a21e19a31
Fix all compile errors from v0.4.0 update 2019-03-07 12:53:15 +11:00
Paul Hauner
a4e604a41e
Update BeaconChain to spec v0.4.0 2019-03-07 12:25:29 +11:00
Paul Hauner
93ce7b59e7
Merge branch 'master' into v0.4.0-types 2019-03-07 12:03:27 +11:00
Age Manning
e8e4c4ab9b
Adds basic structure for swarm behaviour and topology. 2019-03-07 11:43:55 +11:00
Age Manning
ac639c6427
Add libp2p transport - tcp/ws/secio and multiplexing. 2019-03-06 23:31:08 +11:00
Michael Sproul
6253167cac
Update ethereum-types to 0.5 2019-03-06 10:08:35 +11:00
Michael Sproul
d519bc1388
Use cfg(test) for test macros 2019-03-05 17:29:08 +11:00
Age Manning
b68adc1ae3
Implement skeleton network/sync framework. 2019-03-04 18:31:01 +11:00
Paul Hauner
663d39739f
Do project-wide s/epoch_length/slots_per_epoch/g 2019-03-04 17:51:54 +11:00
Age Manning
3b8f29a914
[Temp Commit] Implements more basic skeleton code. 2019-03-04 16:39:37 +11:00
Paul Hauner
ef006bfb2c
Add Exit support to test_harness 2019-03-04 12:21:24 +11:00
Paul Hauner
f4d8b41a09
Add Exit inclusion queue to BeaconChain 2019-03-04 12:20:59 +11:00
Paul Hauner
bc4acd9a5c
Re-work module structure in test_harness
Obeys the standard where structs live in files with the same name
2019-03-04 09:43:19 +11:00
Paul Hauner
3aaa3ea024
Use clearer types in test_harness::Config 2019-03-04 09:30:09 +11:00
Age Manning
2e020a3efa
Implement the basic structure of the beacon node. 2019-03-03 18:28:12 +11:00
Paul Hauner
9d77f2b1a8
Add README to test_harness 2019-03-03 16:38:25 +11:00
Paul Hauner
697d1ef626
Add CLI option for log-level to test_harness 2019-03-03 16:15:00 +11:00
Paul Hauner
58002f68e1
Move test_harness yaml file 2019-03-03 16:14:40 +11:00
Paul Hauner
a29eca57a1
Rename test_harness::manifest to test_case
I thing `TestCase` is better than manifest -- a manifest is more of a
list of items than a series of steps and checks. Plus it conflicts with
a Cargo manifest.
2019-03-03 15:12:19 +11:00
Paul Hauner
48fc709109
Fix failing test 2019-03-03 15:08:13 +11:00
Paul Hauner
7b72934943
Add comments to test_harness::Manifest 2019-03-03 15:07:54 +11:00
Paul Hauner
1703508385
Add comments to new BeaconChainHarness methods. 2019-03-03 12:02:58 +11:00
Paul Hauner
f5e4fe29d7
Add comments to new BeaconChain methods
- Adds comments
- Also drops a message from `warn` down to `debug`. It was giving
warnings even on an Ok result.
2019-03-03 11:54:51 +11:00
Paul Hauner
ede5685bc2
Fix warnings and clippy lints 2019-03-03 11:47:09 +11:00
Paul Hauner
87feeea1fd
Remove merkle_index from test_harness YAML
IMO, this is an implementation detail that shouldn't be covered in these
tests.
2019-03-03 11:31:08 +11:00
Paul Hauner
a8c3b5fdd8
Update test_harness yaml
- Checks for attester slashing, now it is included in the chain.
- Renames suite to be more specific, use normal Eth2.0 naming
2019-03-03 11:19:27 +11:00
Paul Hauner
9156aa2203
Add info log when building test_harness chain dump
It helps people know why they're waiting
2019-03-02 20:20:06 +11:00
Paul Hauner
4db2f082e1
Add state-checks to test_harness YAML
Runs tests against a state at some slot
2019-03-02 20:17:14 +11:00
Paul Hauner
f5614381e1
Re-organise test_harness binary
Moves manifest and components into separate files.
2019-03-02 18:59:47 +11:00
Paul Hauner
db28cc1b92
Fix warnings in test_harness/src/bin.rs 2019-03-02 18:43:27 +11:00
Paul Hauner
e59404f463
Change test_harness proposer_slashings YAML
Removes a lot of the detail from the `proposer_slashings` field -- IMO
this is not necessary in the test spec, the details of how a
proposer_slashing is created should be held in the program and the spec
should only define that one happens.
2019-03-02 18:37:21 +11:00
Paul Hauner
bb4d392a98
Add AttestationSlashingBuilder 2019-03-02 16:05:45 +11:00
Paul Hauner
ff2783a1cb
Add AttesterSlashing to test_harness
- Adds methods to BeaconChainHarness
- Adds YAML parsing
2019-03-02 15:35:02 +11:00
Paul Hauner
c885e36a93
Add fn to BeaconChainHarness validator signing
Signs some message using the priv key of some validator
2019-03-02 15:30:50 +11:00
Paul Hauner
ec5581ce1d
Shorten test_harness YAML to single test 2019-03-02 15:28:01 +11:00
Paul Hauner
7f1e40a8c6
Add proposer slashing support to test_harness
Test harness will now add signatures to a ProposerSlashing and submit it
to the BeaconChain
2019-03-02 11:25:55 +11:00
Paul Hauner
fd819fb7ca
Set BeaconChain block propose failure log to warn
It think it's more suitable to a warn
2019-03-02 11:24:41 +11:00
Paul Hauner
1de723b275
Add proposer/attester slash queues to BeaconChain
Allows for storing and including AttesterSlashing and ProposerSlashing
objects in blocks.
2019-03-02 11:23:37 +11:00
Paul Hauner
b0403707eb
Add support for deposits to test_harness 2019-03-01 16:59:55 +11:00
Paul Hauner
c278c08e34
Remove unnecessary clone. 2019-03-01 16:57:24 +11:00
Paul Hauner
eeeff9ef02
Ensure chain-dumps come with earliest block first
Previously dump.first() was the latest block. IMO, this is
counter-intuitive
2019-03-01 16:56:52 +11:00
Paul Hauner
1097c8089b
Add naive deposit-handling to BeaconChain 2019-03-01 16:56:27 +11:00
Paul Hauner
1479013bd0
Add skip_slots to test_harness yaml processor 2019-03-01 13:28:07 +11:00
Paul Hauner
8b06fa31da
Add basic YAML test_harness tests
Works, however ignores a lot of fields in the YAML.
2019-02-28 23:13:00 +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
Paul Hauner
af17fb1d03
Update BeaconStateBuilder API 2019-02-26 22:00:07 +13:00
Kirk Baird
4c3b0a6575
Formatting 2019-02-25 10:38:04 +11:00
Kirk Baird
f72b45147a
Merge conflicts from master 2019-02-25 10:36:54 +11:00
Paul Hauner
5ca7c9929a
Merge branch 'master' into beacon-state-caching 2019-02-24 19:14:05 +13:00
Paul Hauner
ab10cbbdb5
Fix clippy lints, small typos 2019-02-24 18:52:12 +13:00
Kirk Baird
9f9b466f95
Modify attestion_aggregation to use frok version in domain 2019-02-23 14:39:54 +11:00
Kirk Baird
a5cbda0b60 Merge branch 'master' into signature-scheme-update 2019-02-23 13:34:57 +11:00
Paul Hauner
a5de6a1915
Add caching to BeaconState.
Removes CachingBeaconState
2019-02-22 18:14:16 +13:00
Kirk Baird
673c8ea388
Merge current master 2019-02-20 13:59:11 +11:00
Age Manning
c7acde4fc2
Rename OptimisedLMDGhost to BitwiseLMDGhost. 2019-02-20 12:14:46 +11:00
Age Manning
b8411e7126
Merge branch 'master' into fork-choice-tests 2019-02-19 23:09:31 +11:00
Age Manning
846cbdd7f7
Generalise fork choice tests. 2019-02-19 14:37:17 +11:00
Feng94
7ed606eca1
Modify block_producer references in other crates where needed for compilation 2019-02-19 00:21:23 +11:00
Age Manning
4eddb47fd0
Updates all fork-choices to use ChainSpec for consts. 2019-02-18 17:49:05 +11:00
Kirk Baird
2c8aa17e0d Merge branch 'master' into signature-scheme-update 2019-02-18 10:54:26 +11:00
Kirk Baird
9c4a1f1d1f
Update to signature-scheme 0.5.2 2019-02-18 10:50:40 +11:00
Paul Hauner
dc0696754b
Raise log level on test_harness tests 2019-02-17 20:23:31 +11:00
Paul Hauner
b0513b1ec1
Add and update logs 2019-02-16 15:08:33 +11:00
Paul Hauner
3b92b69028
Apply CachedBeaconState to some functions
- Attestation aggregation
- Getting attestation duties
2019-02-16 11:04:12 +11:00
Paul Hauner
7c920cfb96
Add incomplete progress on fixing test harness 2019-02-15 19:23:22 +11:00
Paul Hauner
4ddbb3197c
Merge branch 'master' into tidy-beacon-state 2019-02-15 16:30:51 +11:00
Paul Hauner
ec4a658fe7
Add beacon state test builder, tidy errors 2019-02-15 16:12:24 +11:00
Age Manning
94c8784523
Remove Slow LMD Ghost from test harness. 2019-02-15 14:17:22 +11:00
Kirk Baird
977f3edfb6
Add domain to all signature funcitons, modify validate_proof_of_possession() 2019-02-15 13:58:14 +11:00
Paul Hauner
35c914baa6
Revert "Merge pull request #200 from sigp/new-structure"
This reverts commit d7a3545be1, reversing
changes made to 1da06c156c.
2019-02-14 12:09:18 +11:00
Paul Hauner
1d5ff4359a
Strip out old code
All of these files have been moved to either:

- https://github.com/sigp/lighthouse-beacon
- https://github.com/sigp/lighthouse-validator
- https://github.com/sigp/lighthouse-common

For rationale, see: https://github.com/sigp/lighthouse/issues/197
2019-02-13 14:15:53 +11:00
Paul Hauner
d2a1000520
Fix clippy lints in beacon_chain 2019-02-13 10:28:38 +11:00
Paul Hauner
61bbbab33d
Fix clippy lints in lmd_ghost 2019-02-13 09:27:09 +11:00
Paul Hauner
05ed778ccc
Remove unused var from block_producer
It was made redundant when `proposer_slots` was removed.
2019-02-13 07:39:00 +11:00
Paul Hauner
5c1d0dcea5
Fix various clippy lints 2019-02-13 07:32:31 +11:00
Paul Hauner
5039001eba
Rename file to resolve clippy lint
Lint was "module inception"
2019-02-12 17:20:58 +11:00
Paul Hauner
9b14742e36
Update beacon_node bin to spec v0.2.0 2019-02-12 16:58:31 +11:00
Paul Hauner
12076bce76
Update test_harness to spec v0.2.0 2019-02-12 16:57:47 +11:00
Paul Hauner
5fefc79521
Update BeaconChain for spec v0.2.0 2019-02-12 13:00:52 +11:00
Paul Hauner
36f441c968
Replace genesis crate with on-type defs
The methods in the `gensis` crate have been moved to `genesis` methods
on `BeaconState` and `BeaconBlock`.
2019-02-12 13:00:35 +11:00
Paul Hauner
85450ec254
Fix all compile errors from new Slot/Epoch types 2019-02-07 11:22:48 +11:00
Paul Hauner
9b1d8cd3c1
Update BeaconChain to use Slot newtype 2019-02-07 10:03:55 +11:00
Paul Hauner
e7e8c20fff
Update BeaconBlockStore to use Slot newtype 2019-02-07 09:54:26 +11:00
Paul Hauner
af50c28e0f
Improve naming consistency in test_harness
With respect to filenames. Especially removing Test.. prefixes
2019-02-05 16:22:07 +11:00
Paul Hauner
449312d95c
Set all test_harness tests to ignore
They were taking too long, we'll need to build a different build cycle
to cover these.
2019-02-05 12:29:08 +11:00
Paul Hauner
4008ec9b25
Re-org test_harness files for consistency 2019-02-05 05:49:53 +11:00
Paul Hauner
d83bafae10
Fix compiler errors from BeaconChain refactor.
I accidentally forgot to include this in the last commit, my bad!
2019-02-05 05:26:47 +11:00
Paul Hauner
c1ed5cd2d8
Refactor beacon_chain.
Moves all the `BeaconChain` impls into the same file that the struct is
defined in.
2019-02-05 05:08:40 +11:00
Paul Hauner
cb85fbcdb2
Tidy and add docstring to chain test harness. 2019-02-01 18:48:37 +11:00
Paul Hauner
4cc88c8cc7
Tidy benches 2019-02-01 18:22:43 +11:00
Paul Hauner
5ca53190b5
Add comments to beacon chain fork choice 2019-02-01 18:18:39 +11:00
Paul Hauner
865919e398
Improve attester errors, move info -> helpers
- Ensured one can distingush between a committee error and an invalid
validator index when using `validator_attesation_slot_and_shard`.
- Renamed the `info.rs` file to `getters.rs`, for clarity.
2019-02-01 17:56:49 +11:00
Paul Hauner
a71e1031ce
Add docstrings to finalized_head 2019-02-01 17:07:59 +11:00
Paul Hauner
b99e4ed9f4
Tidy slot_dump, remove SlotDump, use CheckPoint 2019-02-01 17:04:25 +11:00
Paul Hauner
4d062d77f9
Move CheckPoint into file, tidy canonical_head 2019-02-01 16:58:12 +11:00
Paul Hauner
942ef4b002
Move advance_slot to its own file. 2019-02-01 16:30:42 +11:00
Paul Hauner
db230475d7
Remove SlotClock error from block production, tidy. 2019-02-01 16:21:18 +11:00
Paul Hauner
9d1f98ba8f
Delete SlotClock errs from block_processing, tidy. 2019-02-01 16:07:59 +11:00
Paul Hauner
1e6f85a5eb
Tidy BlockGraph, use parking_lot, add doc comments 2019-02-01 15:59:12 +11:00
Paul Hauner
d4757f2e09
Drop test repetitions down to 100 2019-02-01 15:39:30 +11:00
Paul Hauner
d50a8b03f8
Set BeaconChain present_slot to read from state.
It used to read from the slot_clock, that has been replaced with
`read_slot_clock`.
2019-02-01 15:37:43 +11:00
Paul Hauner
92753fa24e
Tidy attestation_production and create docstrings 2019-02-01 15:26:36 +11:00
Paul Hauner
2ed5f69448
Tidy attestation_processing, add docstrings. 2019-02-01 15:19:50 +11:00
Paul Hauner
a86f7fa51b
Tidy AttestationAggregator, add docstrings. 2019-02-01 15:16:24 +11:00
Paul Hauner
20e45b3369
Refactor block_processing
- Add the rayon library for parallelization
- Move from std::sync::Rwlock to rayon::RwLock
- Add `state` field to BeaconChain
- Fix major bug in attestation validator where justified slot was
incorrectly looked up.
2019-02-01 14:48:09 +11:00
Paul Hauner
b6b738e83a
Improve test_harness efficiency for attesatations
Reduce the amount of attester.poll() calls by using a hashset
2019-01-31 20:27:15 +11:00
Paul Hauner
becb81d842
Fix memory blow-up with Arc<ChainSpec>
Previously it was cloning the ChainSpec, now it shares an Arc.
2019-01-31 20:24:37 +11:00
Paul Hauner
c1b3d1b63e
Tidy up and add some logs 2019-01-31 18:32:01 +11:00
Paul Hauner
d6adfc7655
Refactor justified_slot fn
Now it reads from the head state
2019-01-31 18:30:43 +11:00
Paul Hauner
3f13c25c05
Fix issues with per_epoch block_root calls
They were being called with the wrong slot.
2019-01-31 18:28:54 +11:00
Paul Hauner
5da955e3ce
Ensure harness produces block before attestations. 2019-01-31 16:41:17 +11:00
Paul Hauner
c5a0170a0a
Tidy out some verbose debugs 2019-01-31 16:40:44 +11:00
Paul Hauner
8073296f5d
Ensure per_epoch processing always runs.
Previously, it was running _after_ a state transition, not before it
with the slot processing.
2019-01-31 16:39:44 +11:00
Paul Hauner
ae39a24e71
Add committee_index to aggregator
Fixes a bug where the validator index bit was set on the bitfield,
instead of the committee index
2019-01-31 14:16:28 +11:00
Paul Hauner
2fc6dbb02a
Fix bug with inclusion_distance 2019-01-31 08:49:50 +11:00
Paul Hauner
7d94cfb0e4
Refine state transition to allow first transition 2019-01-31 00:39:34 +11:00
Paul Hauner
6a4252b8c6
Add state helpers from #148 2019-01-28 19:12:20 +11:00
Paul Hauner
2882110525
Add attesatation aggregation to test harness 2019-01-28 17:07:13 +11:00
Paul Hauner
be7e326c33
Add FreeAttesation type 2019-01-28 16:21:33 +11:00
Paul Hauner
5bbffcb053
Add attester to beacon chain test harness 2019-01-28 15:50:42 +11:00
Paul Hauner
e1698102e0
Add attestation aggregation to BeaconChain 2019-01-28 13:04:50 +11:00
Paul Hauner
e9abf06364
Add attestation production to BeaconChain 2019-01-28 13:00:45 +11:00
Paul Hauner
d1ac7c037d
Add chain.justified_head 2019-01-28 13:00:08 +11:00
Paul Hauner
b516fd472e
Rename chain.canonical_head to head 2019-01-28 12:58:20 +11:00
Paul Hauner
4f1aeb2c79
Run rustfmt --all 2019-01-27 17:57:38 +11:00
Paul Hauner
fd47f6c433
Move attestation validator to BeaconState fn 2019-01-27 17:54:26 +11:00
Paul Hauner
b487db68a1
Add signable_message() to Attestation 2019-01-27 17:28:16 +11:00
Paul Hauner
2bda7e3d14
Add BeaconChain benchmarking 2019-01-27 15:45:29 +11:00
Paul Hauner
8e9a139560
Make BeaconChain CheckPoint fields public 2019-01-27 15:39:34 +11:00
Paul Hauner
1082c8857a
Rename "TestRig" to "BeaconChainHarness" 2019-01-27 14:25:26 +11:00
Paul Hauner
e3115d2105
Move TestRig into its own crate 2019-01-27 14:22:51 +11:00
Paul Hauner
054be5b9b2
Add BenchingBeaconNode to chain tests 2019-01-27 13:59:04 +11:00
Paul Hauner
22a08e5160
Fix failing tests 2019-01-26 22:22:52 +11:00
Paul Hauner
7ee836d118
Implement the majority of per-epoch processing 2019-01-26 22:07:50 +11:00
Paul Hauner
eb77fb75b7
Dump chain to JSON file 2019-01-26 08:25:56 +11:00
Paul Hauner
dbd5e850fe
Add chain_dump fn to beacon_chain 2019-01-26 07:20:58 +11:00
Paul Hauner
4d3889d838
Remove old hash_tree_root stub from state trans 2019-01-25 17:47:33 +11:00
Paul Hauner
f9acc42aca
Rename canonical_hash to `hash 2019-01-25 17:40:22 +11:00
Paul Hauner
ad62e1e35c
Rust cargo fmt 2019-01-25 17:23:54 +11:00
Paul Hauner
78c00d3361
Move back to using proposer_slots 2019-01-25 16:54:19 +11:00
Paul Hauner
138fcd6275
Fix issues with old state information 2019-01-25 16:47:24 +11:00
Paul Hauner
ea523c8658
Merge spec crate into types 2019-01-25 13:52:21 +11:00
Paul Hauner
9c86c07eea
Fix unused deps warnings 2019-01-25 13:05:11 +11:00
Paul Hauner
f4f5b3a13c
Update beacon_chain as per test bugs 2019-01-25 11:30:06 +11:00
Paul Hauner
271a4cf8a7
Add get_deserialized fns to block & state stores. 2019-01-25 11:23:59 +11:00
Paul Hauner
6fd3a1a03e
Add progress on test rig 2019-01-25 08:18:47 +11:00
Paul Hauner
b29934aed4
Update state transition as per spec 2019-01-24 12:10:03 +11:00
Paul Hauner
a4ac5b0d3e
Begin impl block_producer in beacon chain tests 2019-01-24 11:51:48 +11:00
Paul Hauner
1256ba0d01
Implement very raw state transition logic 2019-01-23 19:25:05 +11:00
Paul Hauner
b555916808
Add slow LMD ghost implementation 2019-01-23 09:33:04 +11:00
Paul Hauner
1fabc7e0ab
Add Hash to beacon_block_store errors 2019-01-23 09:32:32 +11:00
Paul Hauner
bf2cd2331d
Fix dependencies after eth2 rename 2019-01-22 16:19:39 +11:00
Paul Hauner
eb4723fee5
Add sleep to beacon_node run loop 2019-01-22 15:18:02 +11:00
Paul Hauner
80e37f8d49
Merge branch 'master' into grpc-rs 2019-01-22 12:58:17 +11:00
Paul Hauner
992f2101c2
Add short ID to logging for BLS public keys 2019-01-22 09:05:34 +11:00
Paul Hauner
b8ba0cd698
Split out validator index gRPC call 2019-01-21 22:10:43 +11:00
Paul Hauner
24a27891b8 Run rustfmt on entire codebase
Signed-off-by: Paul Hauner <paul@paulhauner.com>
2019-01-21 18:42:21 +11:00
Paul Hauner
40cf650563
Add validator_node, restructure binaries, gRPC.
This is a massive commit which restructures the workspace, adds a very
basic, untested, validator client and some very basic, non-functioning
gRPC endpoints to the beacon-node.
2019-01-14 12:55:55 +11:00