Commit Graph

417 Commits

Author SHA1 Message Date
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
26f8694161
Begin updating serde such that it can read the yaml test files 2019-03-19 18:05:05 +11:00
Kirk Baird
1bdd737a11
Add ssz test vectors 2019-03-19 11:34:31 +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
Kirk Baird
10efc9a934 Merge branch 'master' into kirk-migrate-ssz-to-little-endian
Signed-off-by: Kirk Baird <baird.k@outlook.com>
2019-03-18 11:40:39 +11:00
Kirk Baird
2c95d531ea Merge branch 'master' into 215-migrate-ssz-little-endian 2019-03-18 10:47:40 +11:00
Paul Hauner
01bfd38637
Add default attribute to TestRandom derive.
Allows for generating the item from default instead of randomizing it.
2019-03-16 14:30:21 +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
236b97476a
Marge fixes to test_harness, add serdehex crate 2019-03-15 13:31:30 +11:00
Paul Hauner
65e3b388a0
Update signature-scheme to v0.6.1 2019-03-14 18:17:32 +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
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
9057b436f3
Run rustfmt 2019-03-12 17:19:35 +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
f34ae86cde
Add support for loading keypairs from file 2019-03-12 12:46:44 +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
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
Kirk Baird
25b08f0096
Run cargo fmt 2019-03-11 15:22:15 +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
Kirk Baird
df52669888
Add changes of create_proof_of_possession to pull 2019-03-11 11:55:09 +11:00
mjkeating
d4f3bab68d Updated TreeHash logic as per revised spec 2019-03-08 15:24:07 -08:00
Paul Hauner
5c1458ba46
Add bls serde_vistors file 2019-03-08 13:19:37 +11:00
Paul Hauner
3b6431b4b4
Impl serde ser and deser for bls keypairs 2019-03-08 13:15:41 +11:00
Kirk Baird
08b803b6e7
Modifications to fuzz tests 2019-03-07 17:50:00 +11:00
Paul Hauner
15e4aabd8a
Add deposit processing, fix clippy lints 2019-03-07 16:15:38 +11:00
Paul Hauner
93ce7b59e7
Merge branch 'master' into v0.4.0-types 2019-03-07 12:03:27 +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
Michael Sproul
7bb5e1c151
Implement library for verifying Merkle proofs. 2019-03-06 16:59:36 +11:00
Michael Sproul
6253167cac
Update ethereum-types to 0.5 2019-03-06 10:08:35 +11:00
Paul Hauner
94122a7334
Add SignedRoot methods 2019-03-04 15:47:48 +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
ede5685bc2
Fix warnings and clippy lints 2019-03-03 11:47:09 +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
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
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
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
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
cd4346962a Merge branch 'master' into lighthouse-246 2019-02-25 09:24:47 +01:00
Kirk Baird
f72b45147a
Merge conflicts from master 2019-02-25 10:36:54 +11:00
Darren Langley
2961edcbb4 merged upstream changes 2019-02-23 14:24:23 +10: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
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
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
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
b6f3156b4e
Run rustfmt on ssz_derive 2019-02-19 18:04:29 +13: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
mjkeating
cd676d5621 fixed a bug in TreeHash.rs/list_to_blob 2019-02-18 11:55:44 -08: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
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
Darren Langley
c59bab58d2 big to little endian, some more tests 2019-02-15 20:46:06 +10:00
Kirk Baird
977f3edfb6
Add domain to all signature funcitons, modify validate_proof_of_possession() 2019-02-15 13:58:14 +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
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
Paul Hauner
c98a9fdf3e
Update test vectors, align to test vectors. 2019-02-14 23:55:48 +11: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
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
4824b43808
Fix various clippy lints 2019-02-13 07:46:59 +11:00
Paul Hauner
85450ec254
Fix all compile errors from new Slot/Epoch types 2019-02-07 11:22:48 +11:00
Paul Hauner
0120082f6b
Merge branch 'master' into add-chain-benchmarks 2019-02-05 05:49:45 +11:00
Paul Hauner
10fec4919b
Merge pull request #175 from sigp/tree_hash
Merkle hashing chunk size fix
2019-02-01 12:08:17 +11:00
Kirk Baird
73ba4d3cfc
Minor modification to merkle hashing 2019-01-29 09:27:40 +11:00
Grant Wuerker
0cbc2936ea
added version to signature-schemes dependency
using tag instead of branch

changed signature-schemes tag to 0.3.0
2019-01-27 21:12:00 -06:00
Paul Hauner
d5da84d967
Add BitAnd impl for BooleanBitfield 2019-01-28 11:23:01 +11:00
Paul Hauner
fd47f6c433
Move attestation validator to BeaconState fn 2019-01-27 17:54:26 +11:00
Paul Hauner
90ae2298ab
Impl serde::Serialize for all types 2019-01-26 08:25:31 +11:00
Paul Hauner
f9acc42aca
Rename canonical_hash to `hash 2019-01-25 17:40:22 +11:00
Paul Hauner
6b4c0fe1a3
Merge branch 'master' into lmd-ghost 2019-01-25 17:23:14 +11:00
Paul Hauner
138fcd6275
Fix issues with old state information 2019-01-25 16:47:24 +11:00
Paul Hauner
5ef02688d5
Remove pre-2018 extern crate uses 2019-01-25 16:46:16 +11:00
Kirk Baird
9f703765aa
Minor modification to tree_hash 2019-01-25 16:42:19 +11:00
Kirk Baird
10333cc99f
Minor modification to tree_hash 2019-01-25 16:18:48 +11:00
Paul Hauner
ea523c8658
Merge spec crate into types 2019-01-25 13:52:21 +11:00
Kirk Baird
5a2cf6219e
Modify tree_hash 2019-01-25 12:59:11 +11:00
Kirk Baird
eb3969af98 Merge branch 'master' into tree_hash 2019-01-25 12:33:31 +11:00
Kirk Baird
9c9b07c182
Add TreeHash trait to all types and structs 2019-01-25 12:22:56 +11:00
Paul Hauner
7454370084
Remove println from tests 2019-01-25 12:08:46 +11:00
mjkeating
4a2d5c9fbe Added TreeHash functionality 2019-01-24 16:32:58 -08:00
Paul Hauner
5f953f76d8
Make TestingSlotClock thread-safe 2019-01-25 11:25:09 +11:00
Kirk Baird
407bf5e06d
Minor updates to TreeHash 2019-01-24 15:47:28 +11:00
Kirk Baird
77d4405b7a
Merge mjkeating changes into local branch 2019-01-24 14:23:51 +11:00
Paul Hauner
eae904270b
Derive Clone for SystemTimeSlotClock 2019-01-24 11:51:25 +11:00
Paul Hauner
1256ba0d01
Implement very raw state transition logic 2019-01-23 19:25:05 +11:00
Paul Hauner
e16f9e0aec
Rename beacon_chain/ -> eth2/ 2019-01-22 16:16:02 +11:00