Commit Graph

475 Commits

Author SHA1 Message Date
Paul Hauner
57c4389f9c
Add further BeaconBlock v0.5.0 updates 2019-03-15 18:34:54 +11:00
Paul Hauner
dffc26a466
Add field idents support to ssz_derive.
- Adds idents to skip ser, deser and tree hashing
2019-03-15 18:33:32 +11:00
Paul Hauner
563304c8d7
Update "block" family types to 0.5.0
- Removes Proposal
- Removes "readers" as they aren't actually being used anywhere.
2019-03-15 16:30:05 +11:00
Paul Hauner
a51de99d40
Fast-forward unchanged exit to v0.5.0 2019-03-15 16:06:02 +11:00
Paul Hauner
a1ee1a4523
Update Transfer to v0.5.0 2019-03-15 16:05:53 +11:00
Paul Hauner
db26b8fde7
Update Deposit to v0.5.0 2019-03-15 16:02:47 +11:00
Paul Hauner
77db79900e
Fast-forward some unchanged types to v0.5.0 2019-03-15 16:02:23 +11:00
Paul Hauner
dc2755c4ea
Update ProposerSlashing to v0.5.0 2019-03-15 15:59:04 +11:00
Paul Hauner
15c3e5eab5
Add HistoricalBatch type 2019-03-15 15:52:17 +11:00
Paul Hauner
142aaae8ce
Fast-forward PendingAttestation to v0.5.0 2019-03-15 15:51:57 +11:00
Paul Hauner
4ffdfbc993
Update Validator to 0.5.0, add tests 2019-03-15 15:48:33 +11:00
Paul Hauner
d84850b892
Add BeaconBlockHeader type. 2019-03-15 15:40:28 +11:00
Paul Hauner
2295322e3c
Update DepositInput to spec v0.5.0
Also modifies the API for creating a proof of possession and adds a test
2019-03-15 15:40:19 +11:00
Paul Hauner
20a439101e
Update "attestation" family of structs in types
Also adds/splits up some testing builders.
2019-03-15 15:20:33 +11:00
Paul Hauner
8050ed7a26
Fast-forward unchanged 0.4.0 structs to 0.5.0 2019-03-15 14:33:40 +11:00
Paul Hauner
f9964ebd8b
Update Fork struct to v0.5.0 2019-03-15 13:33:45 +11:00
Paul Hauner
ef86948259
Add bones of YAML state test parsing.
Is incomplete, need to update all our types to v0.5.0 first
2019-03-15 13:32:23 +11:00
Paul Hauner
236b97476a
Marge fixes to test_harness, add serdehex crate 2019-03-15 13:31:30 +11:00
Paul Hauner
902b80a579
Optimise epoch building 2019-03-14 22:16:21 +11:00
Paul Hauner
8154397114
Set map initial cacacity in epoch cache builder
This should help reduce reallocations
2019-03-14 20:54:44 +11:00
Paul Hauner
96d96ba9ba
Remove assertion in benches 2019-03-14 20:54:30 +11:00
Paul Hauner
5337fce433
Merge branch 'sigs-v0.6.1' into sane-case 2019-03-14 18:18:59 +11:00
Paul Hauner
65e3b388a0
Update signature-scheme to v0.6.1 2019-03-14 18:17:32 +11:00
Paul Hauner
d99a92d147
Merge branch 'new-pubkey-format' into sane-case 2019-03-14 17:53:47 +11:00
Paul Hauner
3dfdfc95ac
Fix test_utils macro definition
It needed to be defined before it was used in an module.
2019-03-14 17:53:13 +11:00
Paul Hauner
4fd8551e8b
Update loglevel, comments in benches 2019-03-14 17:49:39 +11:00
Paul Hauner
9e7d495dca
Merge branch 'master' into new-pubkey-format 2019-03-14 19:02:10 +13:00
Age Manning
1134ce1d8b
Merge pull request #304 from sigp/faster-rewards
Improve rewards processing time
2019-03-14 17:01:58 +11:00
Paul Hauner
2535f47f13
Add builder for benches
Also adds a "sane" case for block processing
2019-03-14 16:44:56 +11:00
Paul Hauner
e44f2fca8c
Merge pull request #305 from sigp/fork-choice-correction
Correct all fork choice rules for children with no votes.
2019-03-14 18:29:03 +13:00
Paul Hauner
ed49023b87
Merge branch 'faster-rewards' into sane-case 2019-03-14 16:11:41 +11:00
Paul Hauner
fc0cdb8226
Start building non-worst case benches 2019-03-14 18:10:36 +13:00
Paul Hauner
31c276822d
Merge pull request #300 from sigp/dupl-ssz-tests
Re-re-apply removal of duplicated ssz_tests
2019-03-14 18:07:42 +13:00
Paul Hauner
1c1c15a122
Tidy per epoch processing
- Add comments to ValidatorStatuses
- Add some checks to guard against a bad statuses list
- Remove unused attester_sets.rs file.
2019-03-14 16:00:22 +11:00
Age Manning
086e9574d2
Correct all fork choice rules for children with no votes. 2019-03-14 15:22:45 +11:00
Paul Hauner
f4959fc03c
Add TestingBeaconStateBuilder fn for cloned kps
Allows for faster test setups.

Implemented method for fork choice tests.
2019-03-14 15:10:20 +11:00
Paul Hauner
10aee6214c
Tidy per_epoch_processing
Mainly renaming variables and files for readability.
2019-03-14 14:59:30 +11:00
Age Manning
ac6dc81ebf
Merge pull request #302 from pawanjay176/lmd_ghost_tests
Adds additional tests for lmd ghost fork choice rules
2019-03-14 14:09:31 +11:00
Age Manning
8435a5b2ca
Merge pull request #297 from pawanjay176/optimized_ghost
[WIP] Add OptimizedLMDGhost fork choice rule and tests
2019-03-14 14:08:16 +11:00
Paul Hauner
95599ddc66
Update Attesters struct
- Renames variables
- Moves total balance calculation into struct
2019-03-14 12:49:48 +11:00
Paul Hauner
a319144835
Improve crosslink reward processing 2019-03-14 12:17:43 +11:00
Paul Hauner
6f919e6f7d
Add first iteration on faster rewards processing. 2019-03-14 11:53:50 +11:00
pawanjay176
804da3c3ff Adds additional tests for lmd ghost fork choice rules 2019-03-14 00:58:15 +05:30
pawanjay176
4c45b90df5 Formatted changes using rustfmt 2019-03-13 14:34:00 +05:30
pawanjay176
181aeb3d71 Refactored to use max_by 2019-03-13 14:31:40 +05:30
Paul Hauner
b2fb2afb28
Revert "Move PublicKey to store uncomp. bytes."
This reverts commit bfa2e71b46.
2019-03-13 16:51:37 +11:00
Paul Hauner
587be831b5
Add method for dropping pubkey cache. Add bench. 2019-03-13 16:49:32 +11:00
Paul Hauner
6cd3c4bd1a
Add a cache for public keys to BeaconState
This allows for a fast lookup of "is this public key already in the
validator registry".
2019-03-13 16:40:28 +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
bfa2e71b46
Move PublicKey to store uncompressed bytes.
This is an optimisation that allows for faster hashing of a public key,
however it adds a penalty to SSZ encoding because we need to go
decompressed -> PublicKey -> compressed.

The spec presently uses compressed bytes to store public keys, however
I'm hoping it will change.
2019-03-13 14:41:43 +11:00
Age Manning
af7128062a
Merge pull request #298 from sigp/optimise-slasher-builder
Optimize TestingAttesterSlashingBuilder
2019-03-13 13:18:06 +11:00
Paul Hauner
f68f52e206
Fix issues with previous cherry pick 2019-03-13 12:22:15 +11:00
Michael Sproul
6101036c8e
Re-apply removal of duplicated ssz_tests
Also, re-apply: "use cfg(test) for test macros"
2019-03-13 12:18:27 +11:00
Paul Hauner
243ef2db80
Merge pull request #258 from sigp/ssz-fuzzing
Basic Fuzz Tests
2019-03-13 14:05:41 +13:00
Paul Hauner
123650efbb
Merge pull request #290 from mjkeating/tree_hash_spec_update
Updated TreeHash logic as per revised spec
2019-03-13 14:04:42 +13:00
Paul Hauner
6f5593ef2b
Optimize TestingAttesterSlashingBuilder 2019-03-13 10:24:02 +11:00
pawanjay176
2b7aa269c3 Add OptimizedLMDGhost fork choice rule and tests 2019-03-13 00:22:15 +05:30
Paul Hauner
2be0373f01
Add comments to new functions/structs. 2019-03-12 18:26:41 +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
Paul Hauner
9057b436f3
Run rustfmt 2019-03-12 17:19:35 +11:00
Paul Hauner
fbfa233d36
Add debug messages to TestingBeaconStateBuilder 2019-03-12 17:16:12 +11:00
Paul Hauner
1b252c3f82
Implement new uncompressed bytes for PublicKey 2019-03-12 17:15:45 +11:00
Kirk Baird
c92f867cd8
Upgrade to signature scheme 0.6.0 2019-03-12 16:01:09 +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
Paul Hauner
9de6a0c733
Rename benching files 2019-03-12 09:57:00 +11:00
Paul Hauner
e81f1c31c9
Fix proof-of-possession issues.
These were introduced in an earlier commit
2019-03-11 19:47:33 +11:00
Paul Hauner
292991810d
Move state processing benches around 2019-03-11 19:46:22 +11:00
Paul Hauner
85e7dd8b5a
Merge branch 'timing-report' of github.com:sigp/lighthouse into timing-report 2019-03-11 19:03:22 +11:00
Paul Hauner
7e79a2b3d3
Improve PublicKey Hash impl efficiency
Instead of SSZ-encoding, we just use the AMCL tobytes method.
2019-03-11 19:01:44 +11:00
Paul Hauner
5e5cfb782e
Add concurrency to TestBeaconStateBuilder
Specifically to generating the initial validator objects.
2019-03-11 18:58:49 +11:00
Kirk Baird
25b08f0096
Run cargo fmt 2019-03-11 15:22:15 +11:00
Kirk Baird
2b991854ab Merge branch 'timing-report' of github.com:sigp/lighthouse into timing-report
Signed-off-by: Kirk Baird <baird.k@outlook.com>
2019-03-11 15:19:09 +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
Paul Hauner
36085f63e9
Rename state trans benches 2019-03-11 14:52:21 +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
827365cfb0
Update fork_choice tests to use new state builder. 2019-03-11 11:33:35 +11:00
Paul Hauner
0b7082e2b9
Move benching_utils structs into types 2019-03-11 11:17:27 +11:00
Paul Hauner
6ae99a1462
Ensure drop times aren't included in benchmarks
Also moves to the new `iter_batched` method on criterion (instead of
`iter_with_setup`.
2019-03-11 10:56:31 +11:00
Paul Hauner
a44d80006a
Improve allocation in get_attestation_participants 2019-03-10 21:07:09 +11:00
Paul Hauner
53456a6c79
Remove last inclusion_slot(..) call 2019-03-10 21:06:40 +11:00
Paul Hauner
21d75ef0bd
Add tree hash benches 2019-03-10 18:31:14 +11:00
Paul Hauner
f27b62d410
Add optimisation for epoch processing 2019-03-10 17:49:06 +11:00
Paul Hauner
9cc8e2598f
Organise epoch benching file 2019-03-10 17:48:26 +11:00
Paul Hauner
89fc386264
Add extra checks for epoch benches finalization 2019-03-10 13:38:57 +11:00
Paul Hauner
e99da31da8
Tidy BeaconStateBuilder struct 2019-03-10 12:56:57 +11:00
Paul Hauner
c33e299176
Ensure epoch processing benches get new eth1 data 2019-03-10 12:56:37 +11:00
Paul Hauner
3f98849362
Optimise attester slashing processing. 2019-03-10 08:55:45 +11:00
Paul Hauner
e7fba3a473
Process transfers in parallel. 2019-03-10 08:36:49 +11:00
Paul Hauner
1ca99b8c4c
Optimise deposits processing. 2019-03-10 08:33:17 +11:00
Paul Hauner
5f3da0732f
Fix attestations bug in block builder.
It was previously producing too many attestations in some scenarios.
2019-03-10 08:31:40 +11:00
Paul Hauner
90d00773cb
Add slashings back into per-block processing.
I thought they would invalidate the attestations but I was wrong.
2019-03-10 08:30:36 +11:00
Paul Hauner
c1e386a0b1
Add deposits, transfers and exits to benches 2019-03-09 22:10:47 +11:00
Paul Hauner
6250c81bb9
Fix bug in attestation verification
We were ensuring that a validator was present on the aggregation
bitfield before adding their signature to the agg pub
2019-03-09 20:09:17 +11:00
Paul Hauner
62ab782ee2
Add TestingAttestationBuilder 2019-03-09 20:09:02 +11:00