Commit Graph

1286 Commits

Author SHA1 Message Date
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
Paul Hauner
4bf2490163 Re-organise types::test_utils dir 2019-03-09 18:59:32 +11:00
Paul Hauner
f8ec1e0cfa Add slashings and attestations to per block benching 2019-03-09 18:56:01 +11:00
Paul Hauner
73ebb4bc2e Add incomplete per-block processing benchmarks
Still needs to fill block with operations
2019-03-09 14:11:49 +11:00
Paul Hauner
ca5d9658ce Move epoch processing benches into separate file 2019-03-09 10:45:28 +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
63743a962c Add per-epoch benchmarks, optimise function. 2019-03-09 10:38:53 +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
5c1458ba46 Add bls serde_vistors file 2019-03-08 13:19:37 +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
Paul Hauner
2f484db82c Expose Signature in types crate 2019-03-08 13:16:33 +11:00
Paul Hauner
7ddbdc15bb Impl serde deser for types::Deposit 2019-03-08 13:16:18 +11:00
Paul Hauner
3b6431b4b4 Impl serde ser and deser for bls keypairs 2019-03-08 13:15:41 +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
f479beb87e Implement deposit merkle root verification.
It is currently disabled, but it's there for later.
2019-03-08 09:26:03 +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
Paul Hauner
15e4aabd8a Add deposit processing, fix clippy lints 2019-03-07 16:15:38 +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
20ac1bf1f0 Remove unused files
They were accidentally introduced by a merge
2019-03-07 13:53:17 +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
e448882102 Re-add canonical_root methods to block & state
Turns out they were pretty useful
2019-03-07 12:25:00 +11:00
Paul Hauner
dad140a338 Fix attester and proposer compile issues
- Updated to use new signed roots (`SignedRoot`, `TreeHash`)
- Added a temporary domain value

Note: these changes are not a fully v0.4.0 upgrade.
2019-03-07 12:11:17 +11:00
Paul Hauner
93ce7b59e7 Merge branch 'master' into v0.4.0-types 2019-03-07 12:03:27 +11:00
Paul Hauner
e6526c9895 Refactor winning root logic 2019-03-07 11:32:53 +11:00
Paul Hauner
c8417ae009 Merge pull request #284 from michaelsproul/merkle-proofs
Implement library for verifying Merkle proofs
2019-03-07 12:30:04 +13:00
Paul Hauner
5a225d2983 Update per-slot processing to v0.4.0 2019-03-07 08:37:13 +11:00
Paul Hauner
f4c4be7a37 Merge pull request #270 from thojest/lighthouse-252
ChainSpec selectable via CLI flag
2019-03-07 10:26:24 +13:00
Paul Hauner
8cb959478f Merge pull request #278 from michaelsproul/eth-types-0.5
Update ethereum-types to 0.5
2019-03-07 10:25:19 +13:00
Paul Hauner
8a25fd48cf Fix per_epoch_processing so it compiles again 2019-03-06 18:57:41 +11:00
Paul Hauner
17210faf3a Start reorg of per_epoch_processing 2019-03-06 17:14:54 +11:00
Paul Hauner
521d48d37c Break per-block-processing into smaller fns
Will enable benchmarking of each individual fn
2019-03-06 17:03:18 +11:00
Michael Sproul
7bb5e1c151 Implement library for verifying Merkle proofs. 2019-03-06 16:59:36 +11:00
Paul Hauner
599948b26b Add comments to block_processing code 2019-03-06 16:24:56 +11:00
Paul Hauner
40f74c9b26 First compiling version of per-block-proc refactor 2019-03-06 15:22:45 +11:00