Commit Graph

1108 Commits

Author SHA1 Message Date
Paul Hauner
bf23a5b7b0
Merge pull request #369 from sigp/fixed-vec
Implement fixed-length lists for BeaconState
2019-05-13 15:16:03 +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
afa8fff31a
Remove old tree_hash_vector file 2019-05-13 14:14:40 +10:00
Paul Hauner
94ab2479fe
Add docs to SSZ 2019-05-13 14:13:15 +10:00
Paul Hauner
16a8cdb714
Add tests for excess bytes in SSZ 2019-05-13 13:51:58 +10:00
Paul Hauner
9ccaec5b91
Move SSZ macros into own file 2019-05-13 12:33:59 +10:00
Paul Hauner
9f62f261c4
Run cargofmt --all 2019-05-13 12:29:26 +10:00
Paul Hauner
03fee2fb97
Fix SSZ for bls fake_crypto features 2019-05-13 12:23:06 +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
f96a6268e5
Remove old dbg! statements from tests 2019-05-12 09:34:01 +10:00
Paul Hauner
349d33052b
Fix SSZ encode impl for fixed_len_vec 2019-05-12 09:33:47 +10:00
Paul Hauner
02afc6ef24
Tidy ssz decoding code 2019-05-11 22:52:24 +10:00
Paul Hauner
fc2a406edf
Fix bug in ssz decoding 2019-05-11 22:25:28 +10:00
Paul Hauner
96aeac333a
Add tests for fixed_len_vec ssz 2019-05-11 19:09:51 +10:00
Paul Hauner
1f7b7ec498
Add tests for SSZ offset attacks 2019-05-11 19:09:27 +10:00
Paul Hauner
2313de9b6e
Fix types ssz macro 2019-05-10 16:41:52 +10:00
Paul Hauner
1e2bf03d5e
Update ssz impl for fixed_len_vec 2019-05-10 16:37:56 +10:00
Paul Hauner
3cd112d42d
Encapsulate ssz vec decoding in public fn 2019-05-10 16:37:00 +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
Luke Anderson
93a4bef41c
Very small wording/typo fixes for docs. 2019-05-10 13:49:01 +10:00
Paul Hauner
3be80ba9a9
Marginally improve cached_tree_hash docs 2019-05-10 13:29:43 +10:00
Paul Hauner
75b310a078
Add convenience methods to BeaconStateTypes 2019-05-10 11:23:19 +10:00
Paul Hauner
59883603ac
Remove state_processing tests, update travis 2019-05-10 10:28:18 +10:00
Paul Hauner
3115bf7d36
Fix operation_pool release-only tests 2019-05-10 09:45:28 +10:00
Paul Hauner
be9f8aa0bf
Fix fork_choice release-only tests 2019-05-10 09:45:08 +10:00
Paul Hauner
77c4b6eafe
Add progress on op pool test fixes 2019-05-09 18:56:41 +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
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
9fd8af8428
Update operations_pool for new BeaconStateTypes 2019-05-08 17:07:26 +10:00
Paul Hauner
6ea538938b
Fix state_processing under new BeaconStateTypes 2019-05-08 16:35:22 +10:00
Paul Hauner
81c1dcceec
Add spec fn to BeaconStateTypes 2019-05-08 16:29:27 +10:00
Paul Hauner
8cefd20e9d
Add progress on state_processing fixed-len update 2019-05-08 15:36:02 +10:00
Paul Hauner
7a67d34293
Add FewValidatorsBeaconState for testing 2019-05-08 13:26:19 +10:00
Paul Hauner
5ba069c774
Implement new BeaconStateTypes trait in types 2019-05-08 13:08:37 +10:00
Luke Anderson
ce8a31f0ee
Igoring state_transition_tests_small and test_read_yaml because they are failing to download the correct files. 2019-05-08 01:34:15 +10:00
Paul Hauner
009d05cafd
Implement basic FixedLenVec 2019-05-07 18:42:41 +10:00
Michael Sproul
eda8ec8c55
spec: registry updates v0.6.1 2019-05-07 18:27:58 +10:00
Michael Sproul
5394726caf
spec: initiate_validator_exit v0.6.1
Added a new field `exit_cache` to the BeaconState, which caches
the number of validators exiting at each epoch.
2019-05-07 18:27:58 +10:00
Michael Sproul
5c03f7b06c
spec: update chain spec for v0.6.1 2019-05-07 18:27:43 +10:00
Michael Sproul
839ef0119b
spec: justification and finalization v0.6.1 2019-05-07 18:27:36 +10:00
Michael Sproul
ed00ad9d00
spec: get_crosslink_deltas to v0.6.1 2019-05-07 18:27:36 +10:00
Michael Sproul
caff553af9
spec: update reward processing to v0.6.1 + bugfix
Two bugs fixed by this commit:

* Reward proposers rather than attesters in `get_proposer_deltas`
* Prevent double-counting of validator balances towards the total when
  computing validator statuses
2019-05-07 18:27:25 +10:00
Michael Sproul
1ad0024045
spec v0.6.0: update types 2019-05-07 18:27:24 +10:00
Michael Sproul
7dda85e87e
hashing: Keccak -> SHA256 2019-05-07 18:27:24 +10:00
Paul Hauner
e13bc5cd19
Merge pull request #346 from sigp/testnet-key-load
Added deterministic keypair generation
2019-05-07 16:10:26 +10:00
Paul Hauner
759d0250c5
Clean out some occurances of SszStream 2019-05-06 19:50:05 +10:00
Paul Hauner
5550d14d62
Upgrade BLS to new SSZ 2019-05-06 15:03:20 +10:00
Paul Hauner
ebbeb03349
Update boolean bitfield to new SSZ 2019-05-06 13:25:11 +10:00
Paul Hauner
1f098ecbde
Remove antiquated test vectors 2019-05-06 11:52:46 +10:00
Paul Hauner
c31ef5cf7f
Remove old code, fix bug with MAX_LENGTH_VALUE 2019-05-06 11:51:50 +10:00
Paul Hauner
9d27f67643
Tidy SSZ decode impls 2019-05-06 11:36:00 +10:00
Luke Anderson
934cb5af5f
Merge branch 'master' into testnet-key-load 2019-05-06 11:13:16 +10:00
Paul Hauner
96ef8e7073
Tidy SSZ encode impls 2019-05-06 10:26:49 +10:00
Paul Hauner
56fe63f78d
Improve allocations for SszEncoder 2019-05-06 09:58:31 +10:00
Paul Hauner
480c5ff160
Update SszEncoder 2019-05-06 09:26:58 +10:00
Paul Hauner
aeb17c73f6
Add SszEncoder 2019-05-06 09:01:28 +10:00
Paul Hauner
daf6912d18
Begin refactor for less allocation 2019-05-06 08:47:49 +10:00
Paul Hauner
acf854f558
Add profiling tools, examples 2019-05-05 15:32:09 +10:00
Paul Hauner
fd5f914c3c
Fix failing decode test 2019-05-05 12:47:57 +10:00
Paul Hauner
c5f00d1666
Update SSZ derive macro, create failing test 2019-05-05 12:11:25 +10:00
Paul Hauner
b5d9157722
Add tests for derived encoding 2019-05-04 18:06:01 +10:00
Paul Hauner
0bd5119f19
Replace ssz with ssz2, adapt ssz_derive 2019-05-04 14:11:48 +10:00
Paul Hauner
7096d56749
Add working decoder example 2019-05-03 17:50:29 +10:00
Paul Hauner
0c0edb0653
Add ssz examples, decoder struct 2019-05-03 17:39:51 +10:00
Paul Hauner
7865f0de89
Tidy encode impl tests 2019-05-03 16:21:18 +10:00
Paul Hauner
80ef379202
Improve docs, cover a bunch of invalid inputs 2019-05-03 15:43:10 +10:00
Paul Hauner
90d8afd64b
Simplify SOS vec decoding 2019-05-03 14:16:36 +10:00
Paul Hauner
6d721813f1
Fix failing SOS nested vec tests 2019-05-03 13:43:52 +10:00
Paul Hauner
9943e70cb9
Fix failing SOS tests, add new failing tests 2019-05-03 13:14:26 +10:00
Paul Hauner
3f9430ddff
Add partial progress on sos 2019-05-03 11:05:51 +10:00
Paul Hauner
c5acbd978f
Start works on SOS-SSZ 2019-05-01 17:51:07 +10:00
Johns Beharry
06362d32d3
chore(hashing/merkle_root): remove semi colon on returns
Signed-off-by: Johns Beharry <johns@peakshift.com>
2019-04-30 08:24:28 +03:00
Johns Beharry
725401d2e1
test(hashing/merkle_root): write test for empty vector and odd leaf count
Signed-off-by: Johns Beharry <johns@peakshift.com>
2019-04-30 08:24:27 +03:00
Johns Beharry
8429f3bff1
chore(hashing): update comments of fn merkle_root
Signed-off-by: Johns Beharry <johns@peakshift.com>
2019-04-30 08:24:27 +03:00
Johns Beharry
9fbacbf967
chore(merkle_root): move function into lib.rs
Signed-off-by: Johns Beharry <johns@peakshift.com>
2019-04-30 08:24:27 +03:00
Johns Beharry
5f9e93d338
chore(merkle_root): split function to it's own file
Signed-off-by: Johns Beharry <johns@peakshift.com>
2019-04-30 08:24:26 +03:00
Johns Beharry
80ac60cc0e
feat(merkle_root): calculate merkle root from leaves
Signed-off-by: Johns Beharry <johns@peakshift.com>
2019-04-30 08:24:26 +03:00
Johns Beharry
af87fbf203
feat(merkle_root): hash vector of leafs to get merkle_root
Signed-off-by: Johns Beharry <johns@peakshift.com>
2019-04-30 08:24:26 +03:00
Paul Hauner
84d72cfed6
Tidy and add docs for cached tree hash 2019-04-29 17:46:01 +10:00
Paul Hauner
f622aa0b65
Add doc comments to vec impl 2019-04-29 15:45:02 +10:00
Paul Hauner
f20314bd87
Fix clippy lints, impl treehash for slices 2019-04-29 15:32:41 +10:00
Paul Hauner
240d1e197a
Ignore clippy range_plus_one lints 2019-04-29 14:24:57 +10:00
Paul Hauner
a90bbbfd82
Address various clippy lints, improve comments 2019-04-29 14:04:52 +10:00
Paul Hauner
52695c29e8
Improve cached hash testing in types 2019-04-29 10:57:39 +10:00
Paul Hauner
fbf8fad4f1
Add counter-resets to reset_modifications 2019-04-29 10:57:19 +10:00
Paul Hauner
0599d3f1f8
Remove redundant type param fom CachedTreeHash 2019-04-29 07:48:48 +10:00
Paul Hauner
6258abfa9f
Tidy per_slot_processing fn 2019-04-29 07:34:01 +10:00
Paul Hauner
68b36787e2
Move leaf node creation into separate fn 2019-04-28 20:30:48 +10:00
Paul Hauner
58308e3dc5
Modify example execution counts 2019-04-28 19:10:59 +10:00
Paul Hauner
a4559e798d
Add benches, examples for cached hashing.
Ignore flamegraph files
2019-04-28 11:38:32 +10:00
Paul Hauner
4dd1239b24
Add caching to state transition 2019-04-28 11:33:48 +10:00
Paul Hauner
c58723350c
Improve cached hashing performance 2019-04-28 11:33:29 +10:00
Paul Hauner
89d64b007f
Run cargofmt --all 2019-04-27 19:04:26 +10:00
Paul Hauner
6c9be1a73c
Add tree hash cache as field to BeaconState. 2019-04-27 19:02:52 +10:00
Paul Hauner
b70ebd09ea
Increase detail of cached hashing testing 2019-04-27 16:33:31 +10:00
Paul Hauner
80fa5d08c5
Fix bug with cached tree hash, passes tests 2019-04-27 16:24:29 +10:00
Paul Hauner
b86e118062
Add specific failing cache test 2019-04-26 18:19:13 +10:00
Paul Hauner
0f3b74b20e
Update TestRandom to vary list length 2019-04-26 18:10:06 +10:00
Paul Hauner
a425beb42a
Fix chunk index bug with structs 2019-04-26 17:39:38 +10:00
Paul Hauner
d3309b9f7e
Fix bug with bitfield tree hash caching 2019-04-26 17:27:39 +10:00
Paul Hauner
dddcc91ef3
Fix bug with shrinking list. 2019-04-26 16:56:01 +10:00
Paul Hauner
f65e981f6f
Begin implementing cached hashing in types 2019-04-26 15:24:18 +10:00
Paul Hauner
ecff8f0007
Update CachedTreeHash trait to return schema 2019-04-26 12:27:04 +10:00
Paul Hauner
8976e652d2
Introduce BTreeSchema 2019-04-26 11:55:26 +10:00
Paul Hauner
794b48078c
Remove num_items from BTreeOverlay 2019-04-26 11:39:33 +10:00
Paul Hauner
15f81c0907
Implement CachedTreeHash for TreeHashVector 2019-04-26 11:15:17 +10:00
Paul Hauner
f1d8224d89
Further tidy tree_hash crate. 2019-04-26 10:37:50 +10:00
Paul Hauner
b213a5ade4
Create cached_tree_hash crate. 2019-04-26 09:55:03 +10:00
Paul Hauner
827e1c62d9
Add extra tests, all passing 2019-04-25 12:11:31 +10:00
Paul Hauner
58b69e9ba6
Add comma to readme 2019-04-24 18:30:59 +10:00
Paul Hauner
1f6a54c2ba
Update readme 2019-04-24 18:27:03 +10:00
Paul Hauner
cab5e59a6f
Rename CachedTreeHash trait, add readme 2019-04-24 18:23:58 +10:00
Paul Hauner
7563755b15
Fix mix-in-length issue 2019-04-24 18:14:00 +10:00
Paul Hauner
e12fa58e6e
Fix failing test, add hacky fix 2019-04-24 14:56:39 +10:00
Paul Hauner
e19abee7f9
Fix bug with num_nodes/num_chunks 2019-04-24 10:17:05 +10:00
Paul Hauner
a84a063c25
Update depth variable 2019-04-24 09:29:32 +10:00
Paul Hauner
ec43a4085c
Introduce failing test 2019-04-22 21:31:39 +10:00
Paul Hauner
2f69185ccb
Fix tree hash bug 2019-04-22 16:58:40 +10:00
Paul Hauner
7c64a5a21b
Add tests, fix bugs 2019-04-22 16:09:29 +10:00
Paul Hauner
2c12aabf04
Implement further cache tests and bug fixes 2019-04-22 09:20:13 +10:00
Paul Hauner
4aeadfa60f
Remove "old" item requirement from treehash 2019-04-21 12:12:47 +10:00
Darren Langley
f616c6cf61 Merge remote-tracking branch 'upstream/master' into block-processing-tests 2019-04-19 07:11:45 +10:00
Darren Langley
773227d627 removed printlns 2019-04-19 07:09:20 +10:00
Darren Langley
010d319fdf invalid randao signature test implemented 2019-04-18 07:00:40 +10:00
Paul Hauner
2527252248
Merge branch 'master' into 0.5.1-tests 2019-04-17 21:21:07 +10:00
Michael Sproul
b201c52140
state transition tests: use TreeHashVector 2019-04-17 18:07:28 +10:00
Michael Sproul
332795e8b7
Revert "questionable patch for TreeHashVector"
This reverts commit 701cc00d08.
2019-04-17 18:00:14 +10:00
Paul Hauner
745d360566
Store state roots during slot processing 2019-04-17 17:17:43 +10:00
Paul Hauner
343909ef31
Fix boolean-bitfield serialization 2019-04-17 17:17:07 +10:00
Paul Hauner
bf1a93f444
Allocate correctly for tree hash 2019-04-17 14:00:00 +10:00
Paul Hauner
c3779caede
Add extra info to block proc. error message 2019-04-17 13:59:40 +10:00
Michael Sproul
f592183aa9
Fix signed_root vs tree_hash_root in per_slot 2019-04-17 12:00:24 +10:00
Michael Sproul
701cc00d08
questionable patch for TreeHashVector 2019-04-17 12:00:23 +10:00
Michael Sproul
d95ae95ce8
spec: update tags to v0.5.1 2019-04-17 12:00:23 +10:00
Michael Sproul
2914d77cd3
spec: update to v0.5.1 2019-04-17 12:00:23 +10:00
Michael Sproul
4f63c89bb6
jenkins: run all state tests 2019-04-17 12:00:23 +10:00
Michael Sproul
a19f8580f5
travis: state transition tests 2019-04-17 12:00:23 +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
Michael Sproul
b801303374
spec: fix shuffle direction in get_crosslink_committees_at_slot 2019-04-17 12:00:22 +10:00
Michael Sproul
19fad1012f
state transitions tests: check more fields 2019-04-17 12:00:22 +10:00
Michael Sproul
b21cc64949
state transition tests: check expected state 2019-04-17 12:00:22 +10:00
Michael Sproul
71a0fed8eb
testing: add a fake_crypto feature 2019-04-17 12:00:22 +10:00
Michael Sproul
300fcd6ec3
state transition test progress 2019-04-17 12:00:22 +10:00
Michael Sproul
0a02567440
bitfield: fix bit ordering issue with YAML parsing 2019-04-17 12:00:22 +10:00
Michael Sproul
8da8730dca
spec: check ProposalSlashing epochs, not slots
As per v0.5.{0,1} of the spec, we only need to check that the epochs of two proposal slashings are
equal, not their slots.
2019-04-17 12:00:21 +10:00
Paul Hauner
10a5d2657c
Encode bitfield as list not vector 2019-04-17 11:57:57 +10:00
Paul Hauner
ea8d5a3db9
Ensure deposit uses correct list type 2019-04-17 11:57:34 +10:00
Paul Hauner
10eeced227
Remove SSZ dep from tree_hash 2019-04-17 11:18:00 +10:00
Paul Hauner
af39f096e7
Add vector type to tree hashing 2019-04-17 10:58:03 +10:00
Paul Hauner
49d066015b
Make genesis beacon state return a beacon state 2019-04-17 10:33:31 +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
3eaa06d758
Remove tree hashing from ssz crate 2019-04-16 12:29:39 +10:00
Age Manning
b71cc32311
Merge pull request #349 from sigp/faster-travis
Move some long-running tests to release-only
2019-04-16 11:25:40 +10:00
Paul Hauner
024b9e315a
Add signed_root to tree_hash crate 2019-04-16 11:14:28 +10:00
Paul Hauner
d840d6e2d4
Merge branch 'master' into simple-cached-tree-hash 2019-04-16 10:55:27 +10:00
Paul Hauner
8a1bde3e2f
Update naming for tree_hash fns/structs/traits 2019-04-16 10:48:33 +10:00
Paul Hauner
d311b48a9f
Unify tree hash methods 2019-04-16 09:34:23 +10:00
Paul Hauner
93f3fc858d
Add uncached tree hashing 2019-04-16 09:14:33 +10:00
Sean Yu
8cb6368fe6
Adding a #[signed_root(skip_hashing)] macro
Lets the user annotate fields of a struct to skip for signed root
hashing.

Also added tests in a `eth2/utils/tests` crate, so that we can test
whether these derived macros work as intended.
2019-04-15 09:40:45 -07:00
Paul Hauner
2be05a466f
Add tree_hash_derive crate 2019-04-15 15:45:05 +10:00
Paul Hauner
354f823c16
Tidy tree hash cache, add new trait 2019-04-15 15:13:02 +10:00
Paul Hauner
8e5b79452a
Further tidy cached tree hash 2019-04-15 12:01:12 +10:00
Paul Hauner
c18cdf2abf
Remove num_bytes method 2019-04-15 11:55:56 +10:00
Paul Hauner
cb9b59b93d
Remove panics from packed_encoding 2019-04-15 11:49:50 +10:00
Paul Hauner
e6c33e1b60
Remove child_nodes method from CachedTreeHash 2019-04-15 11:44:44 +10:00
Paul Hauner
c87a0fc588
Tidy CachedTreeHash trait 2019-04-15 11:37:29 +10:00
Paul Hauner
0b5c10212d
Move tree_hash from ssz into own crate 2019-04-15 11:14:30 +10:00
Darren Langley
d76246e600 invalid block signature test 2019-04-15 10:38:13 +10:00
Paul Hauner
89bc15f77e
Move some long-running tests to release-only 2019-04-15 09:59:35 +10:00
Paul Hauner
7132ee59c0
Rename OffsetHandler -> BTreeOverlay 2019-04-15 09:06:19 +10:00
Paul Hauner
ab78a15313
Add mix-in-len to cached tree hash 2019-04-14 21:39:36 +10:00
Paul Hauner
0632a00a48
Fix failing test for shrinking vec of structs 2019-04-14 18:50:12 +10:00
Paul Hauner
da74c4ce74
Add tree shrinking for u64 vec 2019-04-14 16:50:00 +10:00
Paul Hauner
9bc0519092
Add tree shrink fn 2019-04-14 16:31:47 +10:00
Paul Hauner
582f465ffd
Add test for growing vec of structs 2019-04-14 14:20:33 +10:00
Paul Hauner
737e6b9a86
Fix failing tree hash test 2019-04-14 13:54:04 +10:00
Paul Hauner
e038bd18b5
Add failing test for grow merkle tree 2019-04-14 10:34:54 +10:00
Paul Hauner
1ce1fce03c
Fix failing grow tree test 2019-04-13 17:28:27 +10:00
Paul Hauner
42d6a39832
Refactor TreeHashCache splice method 2019-04-13 13:18:18 +10:00
Paul Hauner
0420607ff1
Tidy, remove debug prints 2019-04-13 13:02:41 +10:00
Paul Hauner
0b186f772f
Refactor resize functions for clarity 2019-04-13 12:12:56 +10:00
Paul Hauner
75177837d0
Add first pass of grow cache algo 2019-04-13 09:42:43 +10:00
Paul Hauner
a124042e30
Start implementing grow merkle fn 2019-04-13 09:11:19 +10:00
Paul Hauner
d79616fee6
Fix failing struct vec vectors 2019-04-12 16:52:11 +10:00
Paul Hauner
48cf75e394
Add failing test for extending struct list 2019-04-12 15:05:26 +10:00
Paul Hauner
55ee8e20ae
Add more passing tests for vec hash caching 2019-04-11 17:40:11 +10:00
Paul Hauner
0bdd61e564
Fix failing vec hashing test 2019-04-11 17:21:57 +10:00
Paul Hauner
0c0eebd774
Add progress on variable list hashing 2019-04-11 12:57:36 +10:00
Darren Langley
bb0500f11d process_block_header tests 2019-04-10 21:58:27 +10:00
Darren Langley
f9c1800c00 process_block_header tests 2019-04-10 21:56:31 +10:00
Darren Langley
8366352aaa mapped out invalid states... 59 2019-04-10 21:07:56 +10:00
Darren Langley
e1c08b1d02 mapped out invalid states... 59 2019-04-10 21:06:25 +10:00
Paul Hauner
e5783d43a9
First passing vec modified cache test 2019-04-10 16:59:14 +10:00
Paul Hauner
56fe15625b
Allow for building cached vec 2019-04-10 15:47:42 +10:00
Darren Langley
3e030c78a8 copied builder and setup tests 2019-04-10 14:42:31 +10:00
Paul Hauner
19465268ec
Merge branch 'master' into simple-cached-tree-hash 2019-04-08 19:50:55 +10:00
Luke Anderson
3ad40dac9b
Fixed *all* cargo fmt 2019-04-08 15:39:26 +10:00
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
914e0cf1fc
Skip long-running tests in debug 2019-04-03 17:27:32 +11:00
Paul Hauner
1913be0c6f
Fix clippy lints 2019-04-03 16:23:09 +11:00
Paul Hauner
1d34e2b2a5
Fix bug in bitfield. 2019-04-02 15:34:18 +11:00
Paul Hauner
f61db9cac8
Fix merge conflict in bls
Issue came about from Michael and Kirk doing simultaneous work.
2019-04-02 15:33:38 +11:00
Paul Hauner
3a42d7fa6e
Disable some blop pool tests during debug 2019-04-02 15:33:18 +11:00
Paul Hauner
38f2cb9555
Run rustfmt 2019-04-02 14:30:32 +11:00
Paul Hauner
3fe7dd80e2
Merge branch 'validator-enhancements' into testnet-client 2019-04-02 14:29:43 +11:00
Paul Hauner
e53e23175a
Merge pull request #330 from sigp/state-transition-tests
[WIP] State transition tests
2019-04-02 14:01:23 +11:00
Paul Hauner
206f651895
Merge pull request #293 from michaelsproul/operation-pool
Implement Operation Pool
2019-04-02 13:53:22 +11:00
Age Manning
3f160d3b99
Correct bootnodes cli parameter 2019-04-01 16:29:11 +11:00
Michael Sproul
ddd9654f70
op-pool: fix bug in attestation_score
The attestation scoring function was looking only at the previous epoch, but
should really look at whichever epoch is appropriate for a given attestation.

We also avoid including attestations that don't pay us any reward, as they
simply bloat the chain.
2019-04-01 13:50:09 +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
Age Manning
b5ae39dda0
Merge remote-tracking branch 'origin/paul-gossip-test' into validator-enhancements 2019-03-31 15:36:39 +11:00
Paul Hauner
bd860eb3e1
Fixes bug in epoch processing.
- Was using the wrong slot to determine relative epoch.
- Added a non-related test I build during the search
2019-03-31 15:30:09 +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
77fb738c78
Merge latest gossip branch 2019-03-31 11:02:57 +11:00
Paul Hauner
d2b5cf5a32
Improve queueing in SimpleSync 2019-03-31 09:44:58 +11:00
Age Manning
4fb95d06d1
Correct cache race condition 2019-03-31 00:08:55 +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
c2b6f949c0
Restrict blop pool from re-including attestations 2019-03-30 18:25:32 +11:00
Age Manning
a952acb86f
Add committee_len to attestation data 2019-03-30 17:20:33 +11:00
Paul Hauner
ed6d0b46d0
Add committee len to AttesterDuties 2019-03-30 17:16:04 +11:00
Age Manning
bb8938c564
Use AttestationDuty in epoch duties 2019-03-30 17:14:38 +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
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
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
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
46a978a5a9
Implement op pool for all ops execpt attestations 2019-03-29 18:30:03 +11:00
Paul Hauner
dd2351020c
Impl add_aggregate for FakeAggSig 2019-03-29 17:58:02 +11:00
Paul Hauner
b5f176a152
Merge branch 'master' into blop-pool 2019-03-29 17:49:33 +11:00
Paul Hauner
fc17d5fea4
Fix failing tree hash tests 2019-03-29 14:37:27 +11:00
Paul Hauner
e0104e6199
Move offset_handler construction into self 2019-03-29 13:04:01 +11:00
Kirk Baird
c1d7e26cac
Merge branch 'yaml-test-downloads' into state-transition-tests 2019-03-29 11:48:26 +11:00
Kirk Baird
023b4e8c92
Merge master and remove ssz length encoding from FakeBLS 2019-03-29 11:47:22 +11:00
Paul Hauner
267c978abb
Tidy cache hash API 2019-03-29 02:36:34 +11:00
Age Manning
68b33620c2
Implement Display and clean validator output 2019-03-29 02:23:03 +11:00
Paul Hauner
7b05c506df
Add new build method for cached hashes 2019-03-29 00:47:42 +11:00
Age Manning
1e760d6719
Add Display for PublicKey 2019-03-29 00:43:53 +11:00
Paul Hauner
40bfd5a6c7
Add offset manager method to cache hash trait 2019-03-28 23:58:27 +11:00
Paul Hauner
2dcf1c857c
Fix failing cache hashing test 2019-03-28 23:21:24 +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
Paul Hauner
ca0849edc5
Fix cargo fmt error
It's a rookie mistake and you hate to see it
2019-03-28 19:02:33 +11:00
Paul Hauner
49639c40ee
Implement failing cache hash test 2019-03-28 19:01:31 +11:00
Age Manning
2a2660ce62
Cleanup debug issues, corrects RPC server logic 2019-03-28 17:24:49 +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
Paul Hauner
f21409fee1
Build breaking recursion tests for cache hashing 2019-03-28 14:44:10 +11:00
Age Manning
6f0c0e47c3
Update Validator RPC and cache building 2019-03-28 14:32:02 +11:00
Paul Hauner
0d8d3385be
Pass tree hash caching tests 2019-03-28 14:17:25 +11:00
Paul Hauner
224a967cce
Implement basic vec tree hash cache 2019-03-28 13:05:24 +11:00
Paul Hauner
7af6eecb44
Merge branch 'yaml-test-downloads' into cached-tree-hash 2019-03-28 11:24:15 +11:00
Paul Hauner
31e9853463
Merge branch 'little-endian-ssz' into cached-tree-hash 2019-03-28 11:13:11 +11:00
Paul Hauner
1285f1e9f8
Restructure cached tree hash files, breaks tests 2019-03-28 11:11:20 +11:00
Paul Hauner
3c7e18bdf3
Sanitize for odd leaf count 2019-03-28 10:56:20 +11:00
Luke Anderson
bda381a264
More progress towards getting the attester working. 2019-03-28 09:38:39 +11:00
Paul Hauner
b05787207f
Refactor CachedTreeHash into owned bytes
Instead of slices
2019-03-28 09:33:44 +11:00
Paul Hauner
acb1dd47cd
Make tree hash pass tests 2019-03-27 19:31:02 +11:00
Luke Anderson
16706d322f
Merge remote-tracking branch 'origin/master' into validator_client-luke_wip 2019-03-27 19:10:36 +11:00
Paul Hauner
e33d1d0ebb
First passing tree hash test 2019-03-27 18:55:39 +11:00
Paul Hauner
839ff3ea3b
Implement (failing) cached tree hash tests 2019-03-27 18:34:10 +11:00
Paul Hauner
ad4000cbdf
Remove unused code 2019-03-27 17:46:12 +11:00
Paul Hauner
35ceb92f2e
Refactor with TreeHashCache struct 2019-03-27 17:45:27 +11:00
Paul Hauner
e28e97d3c7
Add initial work on tree hash caching 2019-03-27 15:59:27 +11:00
Paul Hauner
0c4306cd18
Move genesis time forward 2019-03-27 11:57:38 +11:00
Paul Hauner
c52da489cb
Merge branch 'master' into paul-gossip-test 2019-03-27 11:26:06 +11:00
Paul Hauner
8733740f8b
Move genesis time closer to now 2019-03-27 10:36:37 +11:00
Paul Hauner
b006586d19
Add slot timer to beacon node 2019-03-27 10:36:20 +11:00
Paul Hauner
b887509607
Fix double advance-cache calls bug 2019-03-27 10:35:46 +11:00
Michael Sproul
e5a3b3dd06
op-pool: attestation tests 2019-03-26 18:29:02 +11:00
Kirk Baird
033ae1b747
WIP begin testing 2019-03-26 18:28:29 +11:00
Michael Sproul
99dbed86f1
types: PendingAttestation::from_attestation 2019-03-26 18:20:01 +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
Kirk Baird
fd2f9d0d15
Remove ssz encoding of length from; Signature, AggregateSiganture, PublicKey, SecretKey 2019-03-26 16:45:25 +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
9224558e06
Set genesis time for testing state builder 2019-03-26 15:53:49 +11:00
Kirk Baird
336b3a8a59
Consolidate branches 2019-03-26 15:47:16 +11:00
Paul Hauner
00b546e6b8
Update slot clock to use genesis slot 2019-03-26 15:44:28 +11:00
Kirk Baird
864ef137ef
Merge ssz little endian branch 2019-03-26 15:44:01 +11:00
Kirk Baird
299dfe43aa
Add .gitignore to make .../yaml_utils/specs a valid directory again 2019-03-26 15:16:55 +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
Kirk Baird
116d995960
Merge current master and fix ssz-fuzzing 2019-03-26 14:53:50 +11:00
Age Manning
52b31b2009
Implement initial pubsub message handling 2019-03-25 23:02:51 +11:00
Age Manning
214fb5b8ff
Merge RPC branch 2019-03-25 21:31:49 +11:00
Kirk Baird
9d65ee130d
Include yaml-utils/specs folder 2019-03-25 18:42:41 +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
Kirk Baird
2f11b0ff71
Merge branch 'master' into v0.5.0-state-transition-tests
Signed-off-by: Kirk Baird <baird.k@outlook.com>
2019-03-25 18:21:12 +11:00
Kirk Baird
df7c04fe16
Merge branch 'master' into v0.5.0-state-transition-tests
Signed-off-by: Kirk Baird <baird.k@outlook.com>
2019-03-25 18:04:35 +11:00
Kirk Baird
d76baa1cc1
Allow downloading of large tests from EF github and fix issues with serde 2019-03-25 18:02:37 +11:00
Luke Anderson
2f49289c28
Merged master and fixed merge conflicts with Config updates. 2019-03-25 17:03:17 +11:00
Michael Sproul
518359e898
op-pool: implement attester slashings 2019-03-25 16:58:20 +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
Michael Sproul
bde7ab79c8
types: aggregate signatures in attestations 2019-03-25 13:53:24 +11:00
Michael Sproul
0bf8cb953e
BLS: wrap AggregateSignature::add_aggregate 2019-03-25 12:44:30 +11:00
Michael Sproul
22a90a0224
op-pool: check previous epoch in get_attestations 2019-03-25 11:56:30 +11:00
Michael Sproul
e512f7c0e1
op-pool: validate_attestation_time_independent_only 2019-03-25 11:29:03 +11:00
Michael Sproul
3396f2f08e
op-pool: propagate errors, sort by transfer fee 2019-03-25 11:29:03 +11:00
Michael Sproul
95ed402228
op-pool: rename to verify_*_time_independent_only 2019-03-25 11:29:03 +11:00
Michael Sproul
b2fe14e12c
Operation pool: refactor verify_deposit/exit 2019-03-25 11:29:03 +11:00
Michael Sproul
03c01c8a8d
Operation pool: HashMap instead of BTreeMap 2019-03-25 11:29:03 +11:00
Michael Sproul
05dd936a97
Operation pool: deposit pruning tests 2019-03-25 11:29:03 +11:00
Michael Sproul
9c2dfba843
Operation pool: prune attestations 2019-03-25 11:29:03 +11:00
Michael Sproul
a8224aa4ec
Operation pool: add prune_all 2019-03-25 11:29:03 +11:00
Michael Sproul
8a7c51271e
Bitfield: use BitOr instead of BitAnd for union
Closes #314
2019-03-25 11:29:03 +11:00
Michael Sproul
18a7bd243c
Bitfield: implement union/intersection/difference 2019-03-25 11:29:03 +11:00
Michael Sproul
1fca8a063c
Operation pool: add attestation support 2019-03-25 11:29:03 +11:00
Michael Sproul
c2e5d3c45a
BLS: fix description of AggregatePublicKey 2019-03-25 11:29:03 +11:00
Michael Sproul
8f4a2fbde1
Implement transaction pool basics 2019-03-25 11:29:03 +11:00
Paul Hauner
f918f42b28
Merge branch 'master' into paul-sync 2019-03-24 16:36:18 +11:00
Paul Hauner
a57a7c2394
Implement block imports for sync 2019-03-23 18:48:09 +11:00
Kirk Baird
8fd2e47e99
Modifications to serde 2019-03-22 16:10:43 +11:00
Kirk Baird
5204fc81ff
cargo fmt 2019-03-22 14:52:37 +11:00
Kirk Baird
4324097904
Allow for conversion to/from empty_signature 2019-03-22 14:51:49 +11:00
Age Manning
844fdc0fb9
Rename network_id to chain_id 2019-03-22 12:39:45 +11:00
Paul Hauner
dba972c748
Merge branch 'debug-no-crypto' into paul-sync 2019-03-22 10:20:41 +11:00
Paul Hauner
7cbee46227
Add FakeSignature and FakeAggregateSignature
They replace Signature and FakeAggregateSignature when compling with
debug. Compiling with release uses the real structs.
2019-03-22 10:08:40 +11:00
Kirk Baird
192a49a23d Merge branch 'master' of github.com:sigp/lighthouse into v0.5.0-state-transition-tests 2019-03-22 09:23:56 +11:00
Paul Hauner
7a75ee3d19
Merge branch 'master' into paul-sync 2019-03-22 07:11:04 +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
4310f35b73
Merge branch 'master' into network-server 2019-03-20 14:31:35 +11:00
Paul Hauner
84f373fcc2
Fix clippy lints 2019-03-20 10:51:53 +11:00
Age Manning
4b57d32b60
Apply clippy suggestions 2019-03-19 23:20:39 +11:00
Paul Hauner
8f23aefb29
Adds comments to new epoch cache fns. 2019-03-19 19:55:17 +11:00
Paul Hauner
baca2c90ab
Add last of 0.5.0 upgrades. Woo! 2019-03-19 19:43:31 +11:00
Paul Hauner
35b90728c7
Push more epoch processing fns to 0.5.0 2019-03-19 19:27:10 +11:00
Kirk Baird
26f8694161
Begin updating serde such that it can read the yaml test files 2019-03-19 18:05:05 +11:00
Paul Hauner
61f6fe25e7
Tidy reward processing 2019-03-19 17:26:20 +11:00
Paul Hauner
d20fb93f0c
Update rewards processing to v0.5.0 2019-03-19 17:16:51 +11:00
Kirk Baird
1bdd737a11
Add ssz test vectors 2019-03-19 11:34:31 +11:00
Paul Hauner
37b8e9f39a
Move get_active_validator_indices to state 2019-03-19 09:09:57 +11:00
Age Manning
be712f5b05
Add network id to chainspec 2019-03-18 23:04:17 +11:00
Paul Hauner
1028acf3f1
Move state trans fns into state_processing 2019-03-18 21:34:42 +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
7503f31ddc
Fix bug with per-block processing 2019-03-18 18:09:31 +11:00