Commit Graph

556 Commits

Author SHA1 Message Date
Paul Hauner
b28fa3d20b
Save the BeaconChain to store on state update 2019-05-27 17:58:15 +10:00
Paul Hauner
faa682a9b5
Implement saving BeaconChain on client drop 2019-05-27 17:58:15 +10:00
Paul Hauner
9ed8a4d380
Implement basic BeaconChain persistence. 2019-05-27 17:58:15 +10:00
Paul Hauner
76602a65fc
Add new fns to ForkChoice and SlotClock 2019-05-27 17:58:15 +10:00
Paul Hauner
9922ed2239
Merge pull request #391 from sigp/http
Add iron HTTP server
2019-05-27 17:36:58 +10:00
Paul Hauner
ed4d7aa44a
Replace http_server unwrap with 500 error 2019-05-27 17:09:16 +10:00
Paul Hauner
3a65f84b12
Improve comments for http_server 2019-05-27 12:56:09 +10:00
Paul Hauner
255590ef3b
Add node/fork endpoint to HTTP API, tidy 2019-05-27 11:34:22 +10:00
Paul Hauner
705edf0e45
Remove commented-out code 2019-05-27 09:01:50 +10:00
Paul Hauner
855222fa28
Rename prom HTTP endpoint 2019-05-26 15:59:52 +10:00
Paul Hauner
ee8d13573f
Create BeaconChainTypes, thread through runtime 2019-05-26 15:59:29 +10:00
Paul Hauner
45e3a1759c
Add slot to prometheus endpoint 2019-05-25 17:57:07 +10:00
Paul Hauner
85211ebccd
Add basic prometheus endpoint 2019-05-25 17:25:21 +10:00
Paul Hauner
596ff5178b
Add http server shutdown, tidy 2019-05-25 16:17:48 +10:00
Paul Hauner
8dd07dd7d2
Add http server to beacon node w/ hello world 2019-05-25 14:31:13 +10:00
Matthew Slipper
95c218355e Support multiple bootnodes 2019-05-23 18:27:35 -07:00
Paul Hauner
b41f91db1d
Rename disk db dir 2019-05-21 19:32:07 +10:00
Paul Hauner
c840b76cac
Tidy store crate, add comments 2019-05-21 18:49:24 +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
058829b64d
Update beacon_chain to latest DB 2019-05-21 17:27:06 +10:00
Paul Hauner
78368cc2cd
Make LevelDB key type concrete (not generic) 2019-05-21 16:49:56 +10:00
Paul Hauner
54f28df5b1
Improve testing for Store impls 2019-05-21 16:37:15 +10:00
Paul Hauner
b3a94de086
Remove unnecessary RwLock from LevelDB 2019-05-21 16:36:06 +10:00
Paul Hauner
7d067926dd
Replace RocksDB with LevelDB 2019-05-21 16:29:34 +10:00
Paul Hauner
f1584dada4
Update BeaconChain struct to use new store 2019-05-21 13:36:14 +10:00
Paul Hauner
f8c425d6b4
Fix and add tests for db get block at slot 2019-05-21 12:58:11 +10:00
Paul Hauner
182135b832
Remove old DB crates, start fixing fork_choice 2019-05-20 18:01:51 +10:00
Paul Hauner
658b425cce
Merge branch 'master' into disk-db 2019-05-20 16:56:04 +10:00
Paul Hauner
6660311b2b
Rename EpochCache to CommitteeCache 2019-05-20 14:36:54 +10:00
Paul Hauner
8222ac17cf
Merge branch 'master' into sos 2019-05-13 15:17:56 +10:00
Paul Hauner
a0148b5aae
Rename SSZ traits (Encodable -> Encode) 2019-05-13 15:12:19 +10:00
Paul Hauner
fcabef91da
Use E for EthSpec trait, instead of B 2019-05-13 14:44:43 +10:00
Paul Hauner
40c6be294b
Fix warnings in rpc 2019-05-13 12:33:46 +10:00
Paul Hauner
eb62b5842d
Update beacon node crates for new SSZ 2019-05-13 12:07:32 +10:00
Paul Hauner
d9bfbc2657
Add macros for easy SSZ impl via From trait 2019-05-13 09:25:37 +10:00
Paul Hauner
8d3ef273a7
Fix db crate so it compiles under new ssz 2019-05-10 16:53:53 +10:00
Paul Hauner
3ef46c03d1
Merge branch 'fixed-vec' into sos 2019-05-10 15:27:21 +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
0ac278f44d
Update validator_client for BeaconStateTypes 2019-05-09 12:19:52 +10:00
Paul Hauner
49c92ef167
Remove attester, block_producer & test_harness 2019-05-09 11:48:14 +10:00
Paul Hauner
4c0c93f0c9
Update beacon_node to work w/ BeaconStateTypes 2019-05-09 09:40:32 +10:00
Paul Hauner
42b7aa89d4
Update network and rpc to BeaconStateTypes 2019-05-08 19:38:18 +10:00
Paul Hauner
51dc97ee42
Allow fork_choice and beacon_chain to compile 2019-05-08 18:18:17 +10:00
Paul Hauner
ae09a00090
Update db crate for new BeaconStateTypes 2019-05-08 17:06:39 +10:00
Paul Hauner
759d0250c5
Clean out some occurances of SszStream 2019-05-06 19:50:05 +10:00
Paul Hauner
cf8a24c2bd
Add enc/decode traits to store 2019-05-01 14:29:03 +10:00
Paul Hauner
157d4900aa
Rename DB traits 2019-05-01 11:59:18 +10:00
Paul Hauner
85266f8db0
Trim db2 down to basic new parts 2019-05-01 11:42:18 +10:00
Paul Hauner
05df7702d3
Merge branch 'master' into disk-db 2019-04-30 16:02:23 +10:00
Paul Hauner
a76b24e274
Disable running docs example for test harness 2019-04-25 12:25:01 +10:00
Paul Hauner
2527252248
Merge branch 'master' into 0.5.1-tests 2019-04-17 21:21:07 +10:00
Michael Sproul
32547373e5
spec: simplify cache_state
The `latest_block_root` input argument was unnecessary as we were always setting it to something
almost equivalent to `state.latest_block_root` anyway, and more importantly, it was messing up the
caching of the state root. Previously it was possible for the function to update the state's latest
block root, and then hash the outdated block root that was passed in as an argument.
2019-04-17 12:00:23 +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
89bc15f77e
Move some long-running tests to release-only 2019-04-15 09:59:35 +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
Paul Hauner
206f651895
Merge pull request #293 from michaelsproul/operation-pool
Implement Operation Pool
2019-04-02 13:53:22 +11:00
Paul Hauner
d6664cb4ac
Implement all methods on Store 2019-04-02 13:41:04 +11:00
Age Manning
3f160d3b99
Correct bootnodes cli parameter 2019-04-01 16:29:11 +11:00
Age Manning
8e5829c0ba
Merge remote-tracking branch 'origin/paul-gossip-test' into validator-enhancements 2019-04-01 15:53:51 +11:00
Paul Hauner
5e80b90301
Extend queue stale time, queue more blocks 2019-04-01 15:51:48 +11:00
Age Manning
4fec387047
Merge remote-tracking branch 'origin/paul-gossip-test' into validator-enhancements 2019-04-01 15:40:33 +11:00
Paul Hauner
a7df4f1800
Add log when block not processed in queue 2019-04-01 15:38:22 +11:00
Age Manning
d84f95fe8a
Merge remote-tracking branch 'origin/paul-gossip-test' into validator-enhancements 2019-04-01 15:33:42 +11:00
Paul Hauner
a3ca3ec50d
Break block proc. loop if we get a bad block 2019-04-01 15:32:04 +11:00
Age Manning
c117659b2d
Merge remote-tracking branch 'origin/paul-gossip-test' into validator-enhancements 2019-04-01 15:25:49 +11:00
Paul Hauner
111c81f428
Add ParentUnknown block processing to SimpleSync 2019-04-01 15:23:38 +11:00
Paul Hauner
ebe47a5b34
Add Store and db_encode_derive.
Implementation is not complete, but what is here works.
2019-04-01 14:56:32 +11:00
Age Manning
9f8850d0a1
Adds bootnode CLI parameter 2019-04-01 12:14:44 +11:00
Age Manning
170f993032
Clean up warnings 2019-04-01 12:14:23 +11:00
Paul Hauner
b03dfdce59
Fix genesis time issue, add logs 2019-04-01 08:59:59 +11:00
Paul Hauner
f4bd46fe66
Fix rocks db startup issues 2019-03-31 19:16:45 +11:00
Paul Hauner
08b1808745
Modify runtime to allow memory or disk db
DiskDB is not working yet, but we'll get there!
2019-03-31 18:57:48 +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
Paul Hauner
c596e3f7d7
Change log levels of gossipsub events 2019-03-31 17:26:28 +11:00
Age Manning
e0b5e74e7c
Removes further unneccessary debug output 2019-03-31 15:48:11 +11:00
Age Manning
f03259991d
Merge remote-tracking branch 'origin/paul-gossip-test' into validator-enhancements 2019-03-31 15:37:23 +11:00
Age Manning
c85da612f6
Remove debugging statements 2019-03-31 15:35:54 +11:00
Paul Hauner
c6fc4f0769
Fix bug in attestation production 2019-03-31 15:35:27 +11:00
Age Manning
33473892f2
Validator client fixes. Hack fix for genesis start time 2019-03-31 14:26:58 +11:00
Age Manning
b4c21ccca3
Merge remote-tracking branch 'origin/paul-gossip-test' into validator-enhancements 2019-03-31 13:58:38 +11:00
Paul Hauner
b26f1f8e1c
Add build_all_caches method to BeaconState
Also adds a few more cache builds in BeaconChain.
2019-03-31 13:42:49 +11:00
Age Manning
ae8e470d21
Add patch for attestation crosslinks 2019-03-31 13:06:01 +11:00
Paul Hauner
4e71ed6972
Fix produce_attestation bug.
It was referencing the wrong crosslink.
2019-03-31 12:54:42 +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
Age Manning
e0680f9771
Correct compile error 2019-03-31 11:04:50 +11:00
Age Manning
77fb738c78
Merge latest gossip branch 2019-03-31 11:02:57 +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
Age Manning
ee693fb3e3
Add committe_len to gRPC parameters 2019-03-31 00:34:35 +11:00
Age Manning
4fb95d06d1
Correct cache race condition 2019-03-31 00:08:55 +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
Paul Hauner
65ae8fda47
Remove old attestation aggregator 2019-03-30 19:15:15 +11:00
Paul Hauner
935c64deef
Adds attestation validation to SimpleSync 2019-03-30 19:11:52 +11:00
Age Manning
d8fd7c8803
Implement beacon node side of attestation production gRPC 2019-03-30 18:36:38 +11:00
Paul Hauner
c2b6f949c0
Restrict blop pool from re-including attestations 2019-03-30 18:25:32 +11:00
Paul Hauner
64507950dd
Use committe_len in test_harness 2019-03-30 17:31:58 +11:00
Age Manning
a952acb86f
Add committee_len to attestation data 2019-03-30 17:20:33 +11:00
Paul Hauner
dbcc88ad67
Ensure BitVec is initialized using a multiple of 8
I found it was panic-ing when supplied a non-power-of-zero len.
2019-03-30 17:13:23 +11:00
Paul Hauner
7b3f317abf
Fix bug with attestation production
It was being produced with the wrong source root. I will raise an issue
on the spec as it's a tricky one.
2019-03-30 17:12:43 +11:00
Age Manning
bc305cacc2
Merge branch 'blop-pool' into validator-enhancements 2019-03-30 16:16:30 +11:00
Paul Hauner
397e104f9b
Implement Attestation building in test harness 2019-03-30 16:02:09 +11:00
Age Manning
6e254551af
Implement produce beacon block on gRPC beacon node server 2019-03-30 15:58:31 +11:00
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