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
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
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
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
mjkeating
7db2b51876
ran cargo fmt
2019-03-08 16:37:01 -08:00
Paul Hauner
ca5d9658ce
Move epoch processing benches into separate file
2019-03-09 10:45:28 +11:00
Paul Hauner
63743a962c
Add per-epoch benchmarks, optimise function.
2019-03-09 10:38:53 +11:00
mjkeating
d4f3bab68d
Updated TreeHash logic as per revised spec
2019-03-08 15:24:07 -08: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
5c1458ba46
Add bls serde_vistors file
2019-03-08 13:19:37 +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
Age Manning
21032334ac
Adds bootnodes to chainspec. Handles type correctly
2019-03-08 12:15:57 +11:00
Age Manning
c5a7c62d5d
Updates to latest master.
2019-03-08 11:15:38 +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
Kirk Baird
08b803b6e7
Modifications to fuzz tests
2019-03-07 17:50:00 +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
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
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
Paul Hauner
a15ed0acd3
Start new Error structure in state_processing
2019-03-06 10:22:19 +11:00
Paul Hauner
0be8e57fd3
Further v0.4.0 updates to types
crate
2019-03-06 10:21:55 +11:00
Michael Sproul
6253167cac
Update ethereum-types to 0.5
2019-03-06 10:08:35 +11:00
Paul Hauner
96ec53c6a8
Update beacon_state.rs to spec v0.4.0
2019-03-05 18:22:37 +11:00
Paul Hauner
38a1b94f61
Fix compile issues in types
crate
2019-03-05 17:38:17 +11:00
Paul Hauner
e0ccde1ce3
Remove unused function from @agemanning
2019-03-05 17:37:09 +11:00
Michael Sproul
33a3161905
Remove SSZ round-trip test duplication
...
Closes #244
2019-03-05 17:29:08 +11:00
Michael Sproul
d519bc1388
Use cfg(test) for test macros
2019-03-05 17:29:08 +11:00
Paul Hauner
0f7d2c168c
Fix compile errors in beacon_state.rs
2019-03-05 17:19:36 +11:00
Paul Hauner
262e9cf0bc
Additional spec updates
2019-03-05 09:51:29 +11:00
Paul Hauner
663d39739f
Do project-wide s/epoch_length/slots_per_epoch/g
2019-03-04 17:51:54 +11:00
Paul Hauner
a1af65ce1a
Update ChainSpec to v0.4.0
2019-03-04 17:48:19 +11:00
Paul Hauner
7f10d41121
Remove old spec types
...
They have been made obsolete
2019-03-04 17:17:07 +11:00
Paul Hauner
9769ca4665
Update all struct definitions
...
Does not compile
2019-03-04 17:13:50 +11:00
Paul Hauner
94122a7334
Add SignedRoot methods
2019-03-04 15:47:48 +11:00
Paul Hauner
4a57aec472
Unfinished progress
2019-03-04 14:24:29 +11:00
Paul Hauner
5073ac7a98
Merge branch 'master' into test_harness_exits
2019-03-04 14:01:03 +11:00
Age Manning
0e1a14a628
Merge pull request #264 from sigp/yaml-chain-tests
...
YAML-defined test_harness routines
2019-03-04 13:19:25 +11:00
Paul Hauner
ef006bfb2c
Add Exit support to test_harness
2019-03-04 12:21:24 +11:00
Paul Hauner
ef549aa38b
Merge pull request #273 from mjkeating/tree_hash_container_fix
...
Brought algorithm in TreeHash macro up to spec
2019-03-03 20:01:47 +13:00
Paul Hauner
ec0e13b764
Add comments to new functions
2019-03-03 15:32:44 +11:00
Age Manning
60cfdf6e55
Convert bitwise ghost to use u64 block heights.
2019-03-03 13:35:15 +11:00
Paul Hauner
ede5685bc2
Fix warnings and clippy lints
2019-03-03 11:47:09 +11:00
Paul Hauner
76a0ba2d6c
Add attester slashing support to block processing
...
At spec v0.2.0
2019-03-03 11:18:12 +11:00
Paul Hauner
59128f842a
Add verify_slashable_attestation
spec method
...
As per v0.2.0 spec
2019-03-03 11:16:59 +11:00
Paul Hauner
3561d44cbe
Update per-block processing for new AggPub wrapper
...
AggregatePublicKey newtype was introduced in previous commit
2019-03-03 11:12:18 +11:00
Paul Hauner
35ae1b6745
Add agg_pub to bls, add agg_sig.verify_multiple
...
- Adds a new-type wrapper for `AggregatePublicKey`, just like all the
other types.
- Adds the `verify_multiple` method to the `AggregateSignature` newtype,
as was introduced in a recent version of signature-schemes.
2019-03-03 11:10:38 +11:00
mjkeating
8a768819b0
brought algorithm in TreeHash macro to spec
2019-03-02 09:59:01 -08:00
Paul Hauner
e2dd753f05
Merge branch 'master' into yaml-chain-tests
2019-03-02 20:18:09 +11:00
Paul Hauner
4db2f082e1
Add state-checks to test_harness YAML
...
Runs tests against a state at some slot
2019-03-02 20:17:14 +11:00
Paul Hauner
c975d49ead
Copy SlashableVote.. tests to SlashableAttestation
...
SlashableVoteData tests were just copied directly across
2019-03-02 18:39:52 +11:00
Paul Hauner
8e1380d7c4
Add ProposerSlashingBuilder
...
It is capable of producing double votes
2019-03-02 18:36:44 +11:00
Paul Hauner
bb4d392a98
Add AttestationSlashingBuilder
2019-03-02 16:05:45 +11:00
Michael Sproul
6795aa42b2
Fix log_int implementation, removing floats
...
The cast from f32::MAX to u32 was undefined behaviour, and the use of floating
point logarithms would yield incorrect results due to rounding and truncation,
e.g. for the integer 16777206
2019-03-02 15:52:33 +11:00
Paul Hauner
f3a3cfcc45
Add surround/dbl vote fns to SlashableAttestation
...
Copied from `SlashableVoteData`
2019-03-02 15:33:52 +11:00
Paul Hauner
22d59a70cc
Add debug message when validator is penalized
2019-03-02 11:27:12 +11:00
Paul Hauner
867dce34cd
Remove domain constants from block_processable
...
The information is gather from the `spec` object, not the constants.
2019-03-02 11:26:39 +11:00
Paul Hauner
1097c8089b
Add naive deposit-handling to BeaconChain
2019-03-01 16:56:27 +11:00
Paul Hauner
8671c5790c
Merge pull request #268 from sigp/fork-choice-corrections
...
Correct bitwise fork-choice rule.
2019-03-01 18:34:44 +13:00
Age Manning
c1f8ebeca1
Merge pull request #266 from sigp/faster-swap-or-not
...
Faster swap-or-not for full list shuffles.
2019-03-01 15:45:20 +11:00
Age Manning
13c957bef7
Correct bitwise fork-choice rule.
2019-03-01 14:38:07 +11:00
Paul Hauner
fe7c475207
Merge pull request #265 from sigp/more-readmes
...
Readme updates
2019-03-01 16:36:34 +13:00
Luke Anderson
3753782c40
Just some small gramatical improvements on READMEs
2019-03-01 13:10:50 +11:00
Paul Hauner
c3b2f802a7
Add fast full-list shuffle for swap-or-not
...
- Passes test vectors
- Implemented in beacon state
- Added more docs
2019-03-01 12:19:05 +11:00
Paul Hauner
8aa7f25bbc
Introduce faster swap-or-not whole-list shuffle
2019-03-01 01:47:40 +11:00
Paul Hauner
8842adb53b
Fix typos in READMEs
2019-03-01 00:25:11 +11:00
Paul Hauner
6fac35a7c5
Update main readme, add eth2/ readme
2019-03-01 00:18:53 +11:00
Paul Hauner
e0926dcd8d
Change log msgs in BeaconState
...
Make it louder when shuffling happens, also when deposits are being
processed.
2019-02-28 23:10:40 +11:00
Paul Hauner
7108d057fb
Set BeaconState
to process deposits in parallel
...
Provides a large speed improvement.
2019-02-28 23:09:21 +11:00
Paul Hauner
073be906da
Remove cache operations from epoch processing.
...
- Don't build the next cache at all.
- Call `advance_caches()` in per-slot processing.
2019-02-28 16:37:12 +11:00
Age Manning
19a64f906e
Initial beacon node setup.
...
- Add network crate.
- Add sync crate.
- Add version crate.
- Add lighthouse configuration.
- Add network configuration.
2019-02-28 10:29:28 +11:00
Age Manning
ed032dddea
Merge pull request #261 from sigp/epoch-benches
...
Move epoch benches to 16k validators
2019-02-27 12:39:31 +11:00
Age Manning
274458d41e
Merge pull request #260 from sigp/shuffle-bench
...
Add benchmarks to shuffling crates
2019-02-27 12:37:30 +11:00
Paul Hauner
04f179243e
Fix type in BeaconStateBuilder
comments
2019-02-26 22:35:51 +13:00
Paul Hauner
c2fb095759
Add docstrings to BeaconStateBuilder
2019-02-26 22:34:41 +13:00
Paul Hauner
3ff8f6ebb3
Update epoch trans. tests to us 16,384 validators
2019-02-26 22:25:29 +13:00
Paul Hauner
af17fb1d03
Update BeaconStateBuilder
API
2019-02-26 22:00:07 +13:00
Paul Hauner
5cfc9cb21d
Test state processing with and w/o caches
2019-02-26 20:18:59 +13:00
Paul Hauner
931da13545
Add drop_cache
fn to BeaconState
...
Permits clearing an epoch cache.
2019-02-26 20:18:20 +13:00
Paul Hauner
f82c4268e2
Split BeaconState::genesis
into two functions
...
This allows us to build a genesis state without inducting all the
validators. This will be a signigicant speed up for tests as we can
avoid generating keypairs and checking proof-of-possessions.
2019-02-26 20:16:14 +13:00
Paul Hauner
a8ebc0e19c
Add benchmarks for fisher_yates_shuffle
2019-02-26 19:32:32 +13:00
Paul Hauner
0fe3a81c9e
Add benches to swap_or_not_shuffle
2019-02-26 19:30:51 +13:00
Age Manning
d140563545
Merge pull request #259 from sigp/bench-epoch-trans
...
Add benching and test for epoch processing
2019-02-26 16:43:24 +11:00
Paul Hauner
65d303c500
Fix failing tests
2019-02-26 17:20:43 +13:00
Paul Hauner
e97b554485
Run rustfmt
2019-02-26 16:50:04 +13:00
Paul Hauner
9f846eda26
Fix clippy lint
2019-02-26 16:49:17 +13:00
Paul Hauner
906131f882
Add tests and benches for epoch processing
2019-02-26 16:27:42 +13:00
Paul Hauner
53663e54b5
Fix error with get_permutated_index.
...
Error types were modified. Error involved shuffling with the _value_of
active validator indicies, not an _index_.
2019-02-26 16:26:06 +13:00
Paul Hauner
59d6b1fdd0
Move BeaconStateBuilder
out of test mods
...
This allows it to be accessed by other crates/tests.
2019-02-26 16:25:08 +13:00
thojest
6e8fc1b6d0
resolved merge conflicts due to Treehash macro implementation (lighthouse-246)
2019-02-25 23:20:24 +01:00
mjkeating
c688e37693
merged master
2019-02-25 09:46:49 -08:00
mjkeating
d7184345b8
renamed the macro Hashtree to TreeHash
2019-02-25 09:17:17 -08:00
thojest
9a892bbdfd
removed TestRandom import in beacon_state (lighthouse-246)
2019-02-25 09:26:43 +01:00
thojest
cd4346962a
Merge branch 'master' into lighthouse-246
2019-02-25 09:24:47 +01:00
mjkeating
2ce316235f
merged master and resolved beacon_state conflict
2019-02-24 16:54:26 -08:00
Kirk Baird
3ae7d24d17
Merge branch 'master' into ssz-fuzzing
2019-02-25 10:49:51 +11:00
Kirk Baird
4c3b0a6575
Formatting
2019-02-25 10:38:04 +11:00
Kirk Baird
f72b45147a
Merge conflicts from master
2019-02-25 10:36:54 +11:00
Age Manning
27e7bbd72f
Fix typo in BeaconState
...
Co-Authored-By: paulhauner <paul@paulhauner.com>
2019-02-25 08:35:21 +13:00
Paul Hauner
5ca7c9929a
Merge branch 'master' into beacon-state-caching
2019-02-24 19:14:05 +13:00
Paul Hauner
ab10cbbdb5
Fix clippy lints, small typos
2019-02-24 18:52:12 +13:00
Paul Hauner
c49f425fe8
Tidy, add comments to BeaconState
2019-02-24 18:25:17 +13:00
Paul Hauner
779b6266a5
Ensure shuffling is cached between slot calcs
...
Previously it was being re-built for every slot, now it is being
generated once-per-epoch.
2019-02-23 18:45:32 +13:00
Darren Langley
2961edcbb4
merged upstream changes
2019-02-23 14:24:23 +10:00
Kirk Baird
a5cbda0b60
Merge branch 'master' into signature-scheme-update
2019-02-23 13:34:57 +11:00
mjkeating
f95a0134e6
now using the Hashtree macro for most struct types
2019-02-22 13:07:04 -08:00
thojest
66b5accdc2
replaced manual TestRandom implementation with macro when possible; fixed typo in TestRandom macro (lighthouse-246)
2019-02-22 17:10:26 +01:00
thojest
278b41c8ef
decided against moving test_utils (lighthouse-246)
2019-02-22 16:05:52 +01:00
thojest
7a382043e1
added test_random_derive implementation (lighthouse-246)
2019-02-22 15:54:18 +01:00
thojest
5f3ba42b97
added first draft for lib-crates for test_random and test_random_derive (lighthouse-246)
2019-02-22 12:16:11 +01:00
Kirk Baird
ab1dc7bfce
Add simple fuzz tests for hashing and boolean-bitfield
2019-02-22 16:50:14 +11:00
Paul Hauner
7a28893bab
Fix bug in Epoch.slot_iter()
...
It wasn't running the whole range, plus it could get into a loop when
used near the u64::max_value
2019-02-22 18:48:35 +13:00
Paul Hauner
89ab0f683e
Change "few_validators" spec to be 8 shards.
...
A bug arises when the number of shards is less than the slots in an
epoch.
2019-02-22 18:19:47 +13:00
Paul Hauner
a5de6a1915
Add caching to BeaconState.
...
Removes CachingBeaconState
2019-02-22 18:14:16 +13:00
Paul Hauner
cdc03f1749
Remove FastBeaconState
2019-02-22 17:55:36 +13:00
Kirk Baird
fdbd9d4410
Merge branch 'master' into ssz-fuzzing
2019-02-22 15:26:28 +11:00
Paul Hauner
c040ed7b11
Merge pull request #243 from sigp/fork-choice-tests
...
Fork choice tests
2019-02-22 13:34:58 +13:00
Paul Hauner
b211e39331
Add progress on FastBeaconState
2019-02-21 19:00:55 +13:00
Kirk Baird
68017b66fd
Fuzzing for Vec<u8>
2019-02-21 14:23:21 +11:00
Kirk Baird
274bdd491d
Fuzz for address and Hash256
2019-02-21 13:43:09 +11:00
Kirk Baird
00e5b57166
Fuzz test ssz_encode and ssz_decode for usize
2019-02-20 16:43:30 +11:00
Kirk Baird
b98db3773e
Fuzz test ssz_encode for u8 to u64
2019-02-20 16:15:30 +11:00
Kirk Baird
d5c4771f0a
Fuzz test decodes from u8 to u64
2019-02-20 15:34:15 +11:00
Kirk Baird
38abcc4a24
Fuzz test for u8 fails
2019-02-20 15:03:32 +11:00
Kirk Baird
52347d8e6d
Write a fuzz test
2019-02-20 14:46:25 +11:00
Kirk Baird
3517ef6513
Initialise fuzzing for ssz
2019-02-20 14:16:07 +11:00
Kirk Baird
673c8ea388
Merge current master
2019-02-20 13:59:11 +11:00
Age Manning
efa8aa19e7
Corrects small comments.
2019-02-20 12:52:03 +11:00
Age Manning
0f7167992b
Removes topic from logs.
2019-02-20 12:39:00 +11:00
Age Manning
2fbdc53147
Add asserts to ensure block heights are not too large.
2019-02-20 12:36:54 +11:00
Age Manning
d8584cbed2
Update to rust 2018 importing macros.
2019-02-20 12:15:41 +11:00
Age Manning
c7acde4fc2
Rename OptimisedLMDGhost to BitwiseLMDGhost.
2019-02-20 12:14:46 +11:00
Paul Hauner
59fd716286
Add extra comment to ssz_derive
2019-02-20 11:23:35 +13:00
Paul Hauner
586bb09e02
Set ssz_derive to import from ssz::
...
Previously it was expecting `Encodable`, `Decodable`, etc to be in
scope, now it uses `ssz::Encodable`.
2019-02-20 11:06:03 +13:00
Paul Hauner
abef6698b1
Fix failing doc examples in ssz_derive
2019-02-20 10:12:18 +13:00
Age Manning
6f74ffc7e6
Correct minor comment.
2019-02-19 23:20:45 +11:00
Age Manning
b8411e7126
Merge branch 'master' into fork-choice-tests
2019-02-19 23:09:31 +11:00
Age Manning
fd1edaf805
Add fork choice bug fixes.
...
- Further bug fixes from testing.
- Simplify the testing framework.
- Add tests for longest chain and GHOST vs bitwise GHOST.
2019-02-19 23:06:35 +11:00
Paul Hauner
a78256c778
Merge branch 'master' into ssz-derive
2019-02-19 20:46:47 +13:00
Paul Hauner
5e67ddd498
Add docs to ssz_derive
2019-02-19 20:43:09 +13:00
Paul Hauner
a1118e13ae
Merge pull request #238 from mjkeating/tree_hash_add_padding2
...
Updated TreeHash to spec - added padding
2019-02-19 16:54:36 +11:00
Paul Hauner
b6f3156b4e
Run rustfmt on ssz_derive
2019-02-19 18:04:29 +13:00
Paul Hauner
089127b347
Merge pull request #226 from thojest/lighthouse-150
...
add is_double_vote and is_surround_vote
2019-02-19 16:02:29 +11:00
Age Manning
2394f64329
Add longest chain tests and test vectors.
2019-02-19 15:22:35 +11:00
Age Manning
bd66a02cb3
Add slow LMD Ghost working tests.
2019-02-19 15:08:55 +11:00
Age Manning
846cbdd7f7
Generalise fork choice tests.
2019-02-19 14:37:17 +11:00
Paul Hauner
fc0bf578f8
Use SSZ enc/dec proc macros on most types
...
Some types were skipped as they have non-standard serialization.
2019-02-19 14:32:00 +11:00
Paul Hauner
345c527d33
Add SSZ encode/decode for bool
2019-02-19 14:31:09 +11:00
Paul Hauner
fdfaf18dbd
Add ssz_derive
crate.
...
It appears to be fully functional at this stage.
2019-02-19 13:54:39 +11:00
Age Manning
8baae0e02e
Updates optimised fork choice.
...
- Bug fixes in optimised fork choice.
- YAML tests functioning.
- Implement Clippy suggestions.
- Remove Copywrite notices.
2019-02-19 11:58:17 +11:00
mjkeating
cd676d5621
fixed a bug in TreeHash.rs/list_to_blob
2019-02-18 11:55:44 -08:00
mjkeating
0148abaa0b
Merge branch 'master' into tree_hash_add_padding2
2019-02-18 09:04:53 -08:00
Feng94
1bdce182a9
Rename block_producer crate to block_proposer and change references inside it to block_proposer
2019-02-19 00:03:35 +11:00
thojest
f88155625c
added comment to indicate highest spec version of implemented functions; added realistic test scenario for is_surround_vote (lighthouse-150)
2019-02-18 12:12:01 +01:00
thojest
ee13c6ee40
Merge branch 'master' into lighthouse-150
2019-02-18 11:49:37 +01:00
Age Manning
4eddb47fd0
Updates all fork-choices to use ChainSpec for consts.
2019-02-18 17:49:05 +11:00
Age Manning
6e6d451978
Updates optimised ghost to use chainspec for consts.
2019-02-18 17:42:07 +11:00
Age Manning
8b34bc490b
Add fork-choice yaml tests.
2019-02-18 17:32:13 +11:00
Kirk Baird
21d75f1853
Use verify_proof_of_possession
2019-02-18 12:06:47 +11:00
Kirk Baird
2c8aa17e0d
Merge branch 'master' into signature-scheme-update
2019-02-18 10:54:26 +11:00
Kirk Baird
9c4a1f1d1f
Update to signature-scheme 0.5.2
2019-02-18 10:50:40 +11:00
mjkeating
6fa141181b
Updated TreeHash to spec - added padding
2019-02-17 09:30:18 -08:00
Paul Hauner
c4bedc03a8
Fix file org. inconsistency in types
2019-02-17 20:21:13 +11:00
Paul Hauner
b2173c1a16
Merge branch 'master' into test-harness-fix
2019-02-16 15:10:48 +11:00
Paul Hauner
f83d02b394
Update previous epoch function
2019-02-16 15:09:43 +11:00
Paul Hauner
b79f0cdf68
Fix bug with reward quotient in epoch processing
2019-02-16 15:09:14 +11:00
Paul Hauner
c5158e2974
Fix bug with total_balance in epoch processing
2019-02-16 15:08:57 +11:00
Paul Hauner
b0513b1ec1
Add and update logs
2019-02-16 15:08:33 +11:00
Paul Hauner
5e6acb8f39
Break BeaconState
tests into separate file
2019-02-16 11:19:47 +11:00
Darren Langley
0da268ad5f
cargo fmt fixes
2019-02-16 06:52:10 +10:00
Darren Langley
d7a9fac6b5
fixed tests in broader project
2019-02-15 21:32:17 +10:00
thojest
203f3b37f2
adapted import due to renaming of crate slot_epoch_height -> slot_epoch (lighthouse-150)
2019-02-15 12:25:59 +01:00
thojest
94cb6a2a43
Merge branch 'master' into lighthouse-150
2019-02-15 12:16:39 +01:00
Darren Langley
c59bab58d2
big to little endian, some more tests
2019-02-15 20:46:06 +10:00
Paul Hauner
7c920cfb96
Add incomplete progress on fixing test harness
2019-02-15 19:23:22 +11:00
Paul Hauner
2affd305d9
Merge branch 'master' into implement-shuffle
2019-02-15 18:21:54 +11:00
Age Manning
0800091a43
Merge pull request #232 from sigp/tidy-beacon-state
...
Add beacon state test builder, tidy errors
2019-02-15 18:06:42 +11:00
Paul Hauner
b05f12cf6f
Merge branch 'tidy-beacon-state' into test-harness-fix
2019-02-15 17:10:11 +11:00
Paul Hauner
1c57eb47f9
Move BeaconStateTestBuilder
into test mod
2019-02-15 17:07:52 +11:00
Paul Hauner
054c1f9047
Swap over to v0.2.0 shuffling algo
2019-02-15 16:55:52 +11:00
Paul Hauner
2f8c4536a0
Merge branch 'int_to_bytes' into implement-shuffle
2019-02-15 16:40:32 +11:00
Paul Hauner
4ddbb3197c
Merge branch 'master' into tidy-beacon-state
2019-02-15 16:30:51 +11:00
Paul Hauner
ae5072d0f5
Merge branch 'master' into int_to_bytes
2019-02-15 16:13:40 +11:00
Paul Hauner
ec4a658fe7
Add beacon state test builder, tidy errors
2019-02-15 16:12:24 +11:00
Paul Hauner
b15ee17fed
Merge pull request #225 from sigp/permutated-index
...
Add get_permutated_index
2019-02-15 15:32:28 +11:00
Age Manning
e06c4796e4
Import Slot directly from types in fork-choice.
2019-02-15 14:21:33 +11:00
Age Manning
b16ac40fd5
Add tests to SlotHeight.
2019-02-15 14:16:45 +11:00
Kirk Baird
977f3edfb6
Add domain to all signature funcitons, modify validate_proof_of_possession()
2019-02-15 13:58:14 +11:00
Age Manning
5031ee5505
Remove comments from fork choice.
2019-02-15 13:32:37 +11:00
Age Manning
2cab2952a8
Removes duplication of macros in types.
2019-02-15 13:29:09 +11:00
Paul Hauner
af1d44e8b0
Add shuffling to fuzzer, fixing a bug
...
We were being to strict on list length, it can be 2**24 as all index's
will need to be less than that.
2019-02-15 12:58:14 +11:00
Paul Hauner
210ec89b0b
Replace ssz_encode
with int_to_bytes32
...
Only in the relevant places I can think of.. I might have missed some.
2019-02-15 12:21:19 +11:00
Paul Hauner
fc04286ae6
Use int_to_bytes
in swap or not.
...
I also fixed an error I found through strict typing.
2019-02-15 12:13:57 +11:00
Paul Hauner
73484f04a1
Rename eth2_bytes
to int_to_bytes
2019-02-15 11:19:25 +11:00
Paul Hauner
46673238b6
Add eth2_bytes
crate
...
Is passing test vectors
2019-02-15 11:13:56 +11:00
Paul Hauner
8c54e55d99
Updates to permutated_index
...
- Add comments.
- Add more `None` conditions.
- Add more tests.
2019-02-15 00:28:24 +11:00
Age Manning
91ba26a351
Add test dependencies for fork-choice.
2019-02-15 00:21:26 +11:00
Paul Hauner
c98a9fdf3e
Update test vectors, align to test vectors.
2019-02-14 23:55:48 +11:00
thojest
7434ff47ba
added is_double_vote and is_surround_vote (lighthouse-150)
2019-02-14 13:28:42 +01:00
Paul Hauner
18e85a3cf8
Add swap_or_not_shuffle and tests.
...
The implementation is not matching the EF implementation at this point.
2019-02-14 18:22:55 +11:00
Age Manning
fe13d98469
Updates longest chain to match new fork-choice structure.
2019-02-14 18:09:09 +11:00
Age Manning
7b39dad232
Removes protolambda as an option of fork-choice.
2019-02-14 16:56:12 +11:00
Age Manning
7a03ee79aa
Update SlowLMDGhost to use SlotHeight.
2019-02-14 16:53:53 +11:00
Age Manning
066f0090dd
Add slot_height type.
2019-02-14 16:46:33 +11:00
Paul Hauner
c41b743d2d
Rename vec_shuffle
to fisher_yates_shuffle
...
We're adding another shuffler so it's nice to be specific
2019-02-14 14:57:29 +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
492d4749d7
Fix clippy lint
2019-02-13 10:32:56 +11:00
Paul Hauner
683147035b
Fix clippy lints in block and epoch processing
2019-02-13 10:28:57 +11:00
Paul Hauner
4824b43808
Fix various clippy lints
2019-02-13 07:46:59 +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
fef22c31be
Update block_producer to spec v0.2.0
2019-02-12 17:00:10 +11:00
Paul Hauner
5fefc79521
Update BeaconChain
for spec v0.2.0
2019-02-12 13:00:52 +11:00
Paul Hauner
36f441c968
Replace genesis
crate with on-type defs
...
The methods in the `gensis` crate have been moved to `genesis` methods
on `BeaconState` and `BeaconBlock`.
2019-02-12 13:00:35 +11:00
Paul Hauner
cb97870c15
Add genesis()
function to BeaconBlock
2019-02-12 11:57:34 +11:00
Paul Hauner
f27308e377
Tidy old comments
2019-02-12 11:57:20 +11:00
Paul Hauner
3b75e93122
Add genesis()
to BeaconState
2019-02-12 11:54:02 +11:00
Paul Hauner
f3e556bca3
Remove validator_induction crate
2019-02-12 09:02:26 +11:00
Paul Hauner
ff2025ec5c
Update epoch processing to v0.2.0
2019-02-12 08:58:20 +11:00
Paul Hauner
c1f8c85ce9
Add un-finished, uncompiling state_processing
2019-02-11 17:25:23 +11:00
Paul Hauner
03e84a63ec
Tidy BeaconState
2019-02-11 17:24:56 +11:00
Paul Hauner
75a9e0f3de
Add verify_signature()
to Attestation
2019-02-11 17:24:32 +11:00
Paul Hauner
25ae0f64c2
Tidy, fix & extend BeaconState
impls.
2019-02-11 16:32:55 +11:00
Paul Hauner
d7f8c60f93
Fix un-annotated test in types crate
2019-02-11 16:31:33 +11:00
Paul Hauner
a13dd0d871
Update types
defs, move processing out.
...
- Update `types` to v0.2.0 spec (not all functions upgraded too).
- Move slot/block/epoch processing out to a separate crate (not included
yet, it doesn't compile)
2019-02-11 14:02:59 +11:00
Paul Hauner
ba7137697c
Add impl_common
to slot_epoch.rs
2019-02-07 13:53:30 +11:00
Paul Hauner
7583599e65
Add tests for Slot/Epoch types
2019-02-07 13:44:48 +11:00
Paul Hauner
85450ec254
Fix all compile errors from new Slot/Epoch types
2019-02-07 11:22:48 +11:00
Paul Hauner
b865768d3b
Update validator_inductor to use Slot newtype
2019-02-07 09:54:45 +11:00
Paul Hauner
a98c221447
Add new
fn to Slot and Epoch
2019-02-07 09:53:53 +11:00
Paul Hauner
bd71304d73
Convert beacon_state
to Slot/Epoch newtypes
2019-02-06 13:17:10 +11:00
Paul Hauner
2aa7d80a5f
Update types
to use Slot
newtype
...
All dependant functions haven't yet been updated.
2019-02-05 19:27:12 +11:00
Paul Hauner
dbe9112848
Add first impl of Slot and Epoch newtypes
...
Not tested yet.
2019-02-05 19:15:26 +11:00
Paul Hauner
6c6ee4320d
Fix block_producer
naming to match attester
2019-02-05 16:47:59 +11:00