Commit Graph

318 Commits

Author SHA1 Message Date
Michael Sproul
b801303374
spec: fix shuffle direction in get_crosslink_committees_at_slot 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
0a02567440
bitfield: fix bit ordering issue with YAML parsing 2019-04-17 12:00:22 +10:00
Paul Hauner
10a5d2657c
Encode bitfield as list not vector 2019-04-17 11:57:57 +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
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
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
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
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
Paul Hauner
19465268ec
Merge branch 'master' into simple-cached-tree-hash 2019-04-08 19:50:55 +10: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
3fe7dd80e2
Merge branch 'validator-enhancements' into testnet-client 2019-04-02 14:29:43 +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
a952acb86f
Add committee_len to attestation data 2019-03-30 17:20:33 +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
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
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
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
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
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
49639c40ee
Implement failing cache hash test 2019-03-28 19:01:31 +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
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
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
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
b006586d19
Add slot timer to beacon node 2019-03-27 10:36:20 +11:00
Kirk Baird
fd2f9d0d15
Remove ssz encoding of length from; Signature, AggregateSiganture, PublicKey, SecretKey 2019-03-26 16:45:25 +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
116d995960
Merge current master and fix ssz-fuzzing 2019-03-26 14:53:50 +11:00
Age Manning
214fb5b8ff
Merge RPC branch 2019-03-25 21:31:49 +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
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
0bf8cb953e
BLS: wrap AggregateSignature::add_aggregate 2019-03-25 12:44:30 +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
c2e5d3c45a
BLS: fix description of AggregatePublicKey 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
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
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