Commit Graph

535 Commits

Author SHA1 Message Date
Luke Anderson
177a351462
Added deterministic keypair generation.
- The Account Manager has a new subcommand, allowing generation of deterministic keys given a particular validator index.
 - Split functionality in generate_deterministic_keypair function
 - Fixed up READMEs to reflect new functionality & correct naming.
2019-04-08 15:02:11 +10:00
Paul Hauner
1913be0c6f
Fix clippy lints 2019-04-03 16:23:09 +11:00
Paul Hauner
3fe7dd80e2
Merge branch 'validator-enhancements' into testnet-client 2019-04-02 14:29:43 +11:00
Age Manning
3f160d3b99
Correct bootnodes cli parameter 2019-04-01 16:29:11 +11:00
Age Manning
c85da612f6
Remove debugging statements 2019-03-31 15:35:54 +11:00
Age Manning
33473892f2
Validator client fixes. Hack fix for genesis start time 2019-03-31 14:26:58 +11:00
Age Manning
ee693fb3e3
Add committe_len to gRPC parameters 2019-03-31 00:34:35 +11:00
Age Manning
9a6ecc4665
Add clippy suggestions 2019-03-30 19:58:19 +11:00
Age Manning
51ffbc07d2
Correct attestation error handling 2019-03-30 19:48:45 +11:00
Age Manning
fc5142c09a
Registers the attester service to the beacon node RPC client 2019-03-30 19:32:32 +11:00
Age Manning
e1befe9d3a
Adds attestation producer to the validation client 2019-03-30 18:46:06 +11:00
Age Manning
d12ddae247
Builds attestation grpc implemention 2019-03-30 18:14:04 +11:00
Age Manning
145cabc427
Build validator client AttestationProducer 2019-03-30 17:56:43 +11:00
Age Manning
a952acb86f
Add committee_len to attestation data 2019-03-30 17:20:33 +11:00
Age Manning
bb8938c564
Use AttestationDuty in epoch duties 2019-03-30 17:14:38 +11:00
Age Manning
c107ebf9aa
Initial implementation of AttestationProducer 2019-03-30 17:06:43 +11:00
Age Manning
25d1ddfbb0
Renames BeaconBlockNode to BeaconNodeBlock for future consistency 2019-03-30 16:34:43 +11:00
Age Manning
6e254551af
Implement produce beacon block on gRPC beacon node server 2019-03-30 15:58:31 +11:00
Age Manning
ba90901730
Referenced signer passed to block producer 2019-03-30 14:48:43 +11:00
Age Manning
deb0abd4a8
Restores display for validator keys 2019-03-30 14:28:42 +11:00
Age Manning
d3a6d73153
Implements Signer generic for validator client and epoch duties 2019-03-30 14:27:37 +11:00
Age Manning
ba771282fa
Merges in validator client branch 2019-03-30 13:17:24 +11:00
Age Manning
97bb61371c
Correct compiler issues, re-introduce validator library 2019-03-30 12:14:56 +11:00
Age Manning
e418cd1183
Refactor main validator service 2019-03-29 23:45:53 +11:00
Age Manning
9cdb7bb716
Restructure of validator client service and block producer 2019-03-29 17:28:07 +11:00
Age Manning
eea772de3e
Implement block producer for validator client 2019-03-29 16:33:27 +11:00
Age Manning
f8201edddd
Initial layout of beacon block production 2019-03-29 14:52:08 +11:00
Kirk Baird
023b4e8c92
Merge master and remove ssz length encoding from FakeBLS 2019-03-29 11:47:22 +11:00
Age Manning
aa29a66fac
Add node chain-id validation for validation client 2019-03-29 10:49:43 +11:00
Age Manning
68b33620c2
Implement Display and clean validator output 2019-03-29 02:23:03 +11:00
Age Manning
405ea619e2
Clean up validator output 2019-03-29 00:45:39 +11:00
Luke Anderson
6c8abd8990
Fixed merge conflict fail. 2019-03-29 00:02:41 +11:00
Luke Anderson
367fbbc1c5
Merging master, fixing conflicts. 2019-03-28 23:57:06 +11:00
Luke Anderson
87acaac8a0
Ran cargo fmt. 2019-03-28 21:01:47 +11:00
Luke Anderson
867af4bc6a
Made the 'signers' an Arc, so that things compile. 2019-03-28 21:00:38 +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
Luke Anderson
9f92026fe2
rustfmt fix. 2019-03-28 19:52:36 +11:00
Luke Anderson
18998f3dc8
Fixing merge conflict, having keys generated deterministically for testing. 2019-03-28 19:08:33 +11:00
Luke Anderson
6937da0994
Added deterministic key generation for testing purposes. 2019-03-28 18:58:00 +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
Luke Anderson
bda381a264
More progress towards getting the attester working. 2019-03-28 09:38:39 +11:00
Age Manning
d3af95d1eb
Returns attestation duty for validator client processing 2019-03-27 22:41:55 +11:00
Age Manning
75195bbbf4
Implement work finding logic in validator client 2019-03-27 22:22:51 +11:00
Age Manning
a315e9da49
Rename fields in validator client EpochDuties 2019-03-27 21:36:06 +11:00
Age Manning
cde049df1f
Adds RwLock to EpochDuty 2019-03-27 19:52:05 +11:00
Age Manning
46181408ba
Epoch duties update 2019-03-27 19:47:08 +11:00
Age Manning
bc8ec51fe5
Update EpochDuty RPC and core functionality 2019-03-27 15:41:51 +11:00
Luke Anderson
c9a7977d69
Renamed some functions, trying to get beaconnode attestation stuff to work. 2019-03-27 14:30:09 +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
7c31c052f3
Temp commit - Re-building validator RPC API 2019-03-26 15:59:00 +11:00
Paul Hauner
00b546e6b8
Update slot clock to use genesis slot 2019-03-26 15:44:28 +11:00
Kirk Baird
116d995960
Merge current master and fix ssz-fuzzing 2019-03-26 14:53:50 +11:00
Paul Hauner
d4fecd8a84
Set GRPC block to be just SSZ 2019-03-26 12:32:38 +11:00
Age Manning
ffb3d94355
Wrap the duty manager in a future for its own thread 2019-03-26 11:59:48 +11:00
Age Manning
33d0f29221
Remove old tests 2019-03-26 11:33:24 +11:00
Age Manning
a82a5311ee
Merge branch 'validator_client' of github.com:sigp/lighthouse into validator_client 2019-03-25 18:58:42 +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
a8a3f1c318
Removes duty manager service in favour of tokio timer 2019-03-25 18:03:23 +11:00
Age Manning
3ad18b4367
Adds manager duties to validator runtime 2019-03-25 17:47:23 +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
Age Manning
4fdb01e5f0
Correct slot duration interval timer 2019-03-25 15:10:26 +11:00
Age Manning
209614e373
Merge pull request #295 from sigp/validator-updates
Persisting (random) Validator Keys
2019-03-25 14:40:11 +11:00
Age Manning
18493a4df4
Adds microsecond duration to validator client 2019-03-24 09:24:50 +11:00
Luke Anderson
cc208670b2
Fixed formatting with rustfmt. 2019-03-23 15:52:17 +11:00
Luke Anderson
fba916a0d8
Updated validator config according to suggestions.
- Directory structure changed slightly
 - Uses a filter_map instead of a for loop.
 - All errors reading files does not prevent others from being read.
 - The accounts manager needs to generate files first, with the same structure.
2019-03-23 15:46:51 +11:00
Age Manning
56d33d2e26
Basic tokio slot stream implementation 2019-03-23 11:48:36 +11:00
Age Manning
318d6a976e
Initial tokio timer interval 2019-03-23 00:36:48 +11:00
Age Manning
547a750d78
Setup basic structure before tokio runtime addition 2019-03-22 23:21:26 +11:00
Age Manning
17cd5bb991
Adds genesis time to node info. Closes #256 2019-03-22 23:01:10 +11:00
Age Manning
61fc946d54
Adds initial connection to beacon node with retries 2019-03-22 22:50:16 +11:00
Age Manning
c4454289d6
Initial implementation of validator service 2019-03-22 17:27:07 +11:00
Age Manning
b2cd771a42
Shift argument passing into config module 2019-03-22 17:04:55 +11:00
Age Manning
4990569f68
Add BeaconNodeInfo RPC to validator client 2019-03-22 16:48:25 +11:00
Age Manning
a4cfe68272
Thread beacon node RPC server 2019-03-22 16:46:52 +11:00
Age Manning
6d0ad99358
Merge @thojest validator client to branch. 2019-03-22 11:54:24 +11:00
Luke Anderson
9e47cb56e7
Fixed code appearance with rustfmt. 2019-03-20 16:27:58 +11:00
Luke Anderson
49f6e7ac65
Moved configuration around for validator client.
- Custom datadir/server argument logic moved into configuration, out of main.
 - Updated the validator config directory structure, as per issue #253 suggestions
 - Removed the 'generate 3 random keys' function
 - Updated the README to reflect new structure
 - Just exit if there are no keys, don't generate any (this is for accounts_manager, in a separate commit).
 - Created a lib.rs file, so that the validator client configuration can be included by external crates.
2019-03-20 16:23:33 +11:00
thojest
d8099ae00c started implementing BeaconNode for AttestationGrpcClient; included correct epoch_map for instantiation of Attester (lighthouse-255) 2019-03-18 21:19:44 +01: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
919a15de22
Ensure validator client compiles under v0.5.0 2019-03-17 19:21:19 +11:00
thojest
2215aa4b46 added protos specification for Attester and created first draft for attestation_grpc_client (lighthouse-255) 2019-03-15 11:44:39 +01:00
Paul Hauner
f9964ebd8b
Update Fork struct to v0.5.0 2019-03-15 13:33:45 +11:00
Luke Anderson
b000a0972e
Minor updates to Paul's comments.
- Bubbled up home_dir not found error
 - Made comment show up in docs
2019-03-13 13:38:28 +11:00
Luke Anderson
e942d7533b
A first go at persisting validator keys and handling configuration. Addresses issue #253.
- Creates a keystore directory in the config
 - Fetches serialized keys from the keystore directory
 - If no keys, generates keys randomly, saves serialized keys to keystore dir.
2019-03-12 21:56:45 +11:00
thojest
8f3530f60c created attester_service and started to create an attester_thread in main of validator_client (lighthouse-255) 2019-03-08 13:48:33 +01: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
93ce7b59e7
Merge branch 'master' into v0.4.0-types 2019-03-07 12:03:27 +11:00
Paul Hauner
663d39739f
Do project-wide s/epoch_length/slots_per_epoch/g 2019-03-04 17:51:54 +11:00
thojest
c28c07c17d validator_client: added default_value for spec; used unreachable macro for custom spec (lighthouse-252) 2019-03-03 14:15:00 +01:00
thojest
ed7a081008 slightly adapted impossible error for validator_client (lighthouse-252) 2019-03-01 18:27:47 +01:00
thojest
f0ea691208 now possible to select ChainSpec by using CLI flag (lighthouse-252) 2019-03-01 18:19:08 +01:00
Feng94
7ed606eca1
Modify block_producer references in other crates where needed for compilation 2019-02-19 00:21:23 +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
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
606d927a84
Update validator_client for spec v0.2.0 2019-02-12 17:00:51 +11:00
Paul Hauner
5e37e8a33a
Update validator_client for spec v0.2.0 2019-02-12 12:57:17 +11:00
Paul Hauner
85450ec254
Fix all compile errors from new Slot/Epoch types 2019-02-07 11:22:48 +11:00
Paul Hauner
36ee4aa81f
Fix file naming inconsistencies.
File names should be the same as the struct that they contain.
2019-02-05 16:53:44 +11:00
Paul Hauner
6c6ee4320d
Fix block_producer naming to match attester 2019-02-05 16:47:59 +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
19417efa63
Fix compile errors from block_producer upgrades 2019-01-25 13:03:17 +11:00
Paul Hauner
298f9acd6a
Merge branch 'master' into lmd-ghost 2019-01-24 12:06:23 +11:00
Paul Hauner
8c0e634aa4
Add Signer to validator client 2019-01-24 11:50:34 +11:00
Paul Hauner
188434aaa0
Move block_propser -> eth/, impl for val client 2019-01-23 21:41:47 +11:00
Paul Hauner
403eefb7b4
Move block_proposer into separate crate 2019-01-23 21:21:18 +11:00
Paul Hauner
8e935f93bc
Replace EpochDutiesMap with trait in BlockProducer 2019-01-23 21:01:46 +11:00
Paul Hauner
af6437eb13
Update validator client for types change 2019-01-23 20:59:59 +11:00
Kirk Baird
e047fbe914
More updates base upon the specs 2019-01-23 18:06:25 +11:00
Kirk Baird
560dbe4ae1
Update constants / types to match specs as of 23.1.19 2019-01-23 15:04:40 +11:00
Paul Hauner
bf2cd2331d
Fix dependencies after eth2 rename 2019-01-22 16:19:39 +11:00
Paul Hauner
df3c450723
Update validator client for block body update 2019-01-22 14:54:51 +11:00
Paul Hauner
14dfc3223a
Add doc comments for validator service. 2019-01-22 12:38:11 +11:00
Paul Hauner
3d06bf9d2d
Add validator client readme 2019-01-22 09:38:31 +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
158ffd7d1c
Separate validator fns into new proto service 2019-01-21 19:38:28 +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
ab502de8ec Add validator duties gRPC service to val. client 2019-01-21 18:29:50 +11:00
Paul Hauner
ebba4977a8
Introduce threading to validator client 2019-01-16 21:44:44 +11:00
Paul Hauner
27bfec6692
Add duties service to validator 2019-01-16 20:38:53 +11:00
Paul Hauner
3891a6017a
Impl more validator client 2019-01-15 17:42:55 +11:00
Paul Hauner
b87ff828ef
Impl more validator logic 2019-01-15 15:52:25 +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