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
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