Paul Hauner
88c6d15c32
Padding efficent merkle root algo ( #436 )
...
* Add initial work on padding efficent merkle roots
* Improve merklize_padded
* Improve tree_hash crate -- fix bugs, docs
* Update codebase for tree_hash API change
* Remove dbg statements, fix import error
* Fix clippy lints, doc error
* Tidy tree hash comments
* Increase tree_hash max tree height
* Fix PR review comments
* Fix typos
* Fix cache access off-by-one in tree hash
* Set max tree depth to 48 (from 64)
2019-07-16 14:40:56 +10:00
Paul Hauner
fcd3da81bf
Merge pull request #426 from sigp/ssz-types
...
Add ssz_types crate
2019-07-11 16:53:32 +10:00
Paul Hauner
561cec0bf6
Move many bitfield Options to Results
2019-07-11 13:19:38 +10:00
Paul Hauner
61406b34bc
Resolve issues raised from @michaelsproul review
2019-07-11 12:45:34 +10:00
Paul Hauner
2c1afcc2d6
Rename marker structs for Bitfield
2019-07-11 12:40:37 +10:00
Paul Hauner
08868a6e7a
Merge pull request #425 from sigp/ssz-v0.8
...
Changes for publishing ssz to crates.io
2019-07-11 09:22:07 +10:00
Paul Hauner
5e1a2ebf25
Uncomment broken tree hash impl for variable list
2019-07-09 20:30:29 +10:00
Paul Hauner
bb3b3fd8b9
Fix bug around single-byte for 0-bits
2019-07-09 20:29:10 +10:00
Paul Hauner
daa8916e6b
Add comments after self-review
2019-07-09 20:28:19 +10:00
Paul Hauner
090133b088
Add more comments to bitfield
2019-07-09 17:31:34 +10:00
Paul Hauner
734aa3b8bd
Satisfy clippy lint in SSZ
2019-07-09 17:01:37 +10:00
Paul Hauner
7283fdff15
Fix clippy lints in ssz_types
2019-07-09 16:58:53 +10:00
Paul Hauner
57cc946018
Add bitvector tests
2019-07-09 16:37:09 +10:00
Paul Hauner
000d941e2e
Add tests for BitList
2019-07-09 16:03:02 +10:00
Paul Hauner
e4ef0fc9d4
Add crate-level docs to ssz_types
2019-07-09 11:00:40 +10:00
Paul Hauner
94265272b4
Tidy bitfield docs
2019-07-09 09:28:22 +10:00
Paul Hauner
5a7c44ed37
Add failing doc tests
2019-07-08 18:53:25 +10:00
Paul Hauner
1484773cd1
Refactor to use Bitfield struct with type variants
2019-07-08 18:41:43 +10:00
Paul Hauner
93cd38da55
Progress further on Bitfield struct
2019-07-08 16:27:08 +10:00
Paul Hauner
bbcc58dca3
Start building new bitfield struct
2019-07-08 16:07:40 +10:00
Paul Hauner
636ebb0d4e
Add progress on bitfields
2019-07-08 11:54:47 +10:00
Paul Hauner
ecb0bf11c7
Move bitlist and bitvector into own files
2019-07-08 09:36:52 +10:00
Paul Hauner
c8c5c8ff16
Collect errors into a single error
2019-07-06 15:57:11 +10:00
Paul Hauner
2b7d5560ad
Refactor SSZ types bitfield
...
Removes superfulous `Bitfield` struct
2019-07-06 15:51:15 +10:00
Paul Hauner
5943e176cf
Add ssz_types crate
2019-07-05 17:33:20 +10:00
Age Manning
af28d5e20c
Add persistent network identification
2019-07-04 14:14:27 +10:00
Paul Hauner
4dc274858e
Update SSZ for publishing to crates.io
2019-07-04 13:34:54 +10:00
Paul Hauner
54bda210e2
Update ssz_derive for publishing to crates.io
2019-07-04 13:22:33 +10:00
Paul Hauner
027f0a539d
Prepare ssz for publishing on crates.io
2019-07-03 16:06:20 +10:00
Michael Sproul
44ed3228b9
ssz: implement Encode and Decode for tuples
2019-07-01 14:54:34 +10:00
Michael Sproul
38d2d03e3a
op_pool: use max cover algorithm, refactor
2019-07-01 10:55:54 +10:00
Paul Hauner
9a356a00c2
Merge pull request #405 from c-o-l-o-r/wasm-ssz
...
Make SSZ compatible with `wasm32` targets
2019-06-27 13:31:18 +10:00
Matt Garnett
e93fb94e7a
calculate MAX_LENGTH_VALUE for 32-bit and 64-bit targets
2019-06-25 10:12:49 -04:00
Matt Garnett
db9dd3dffe
fix encoding impl for usize on 32-bit architectures
2019-06-25 09:59:50 -04:00
Paul Hauner
8fb6ffffe2
Add new beacon chain test harness
2019-06-24 09:34:52 +10:00
Paul Hauner
e6747094c8
Merge pull request #386 from vlopes11/ssz-ambiguous
...
`ssz` is ambiguous (name vs any other name during import resolution)
2019-06-24 07:56:50 +10:00
Matt Garnett
87e681c617
make ssz
crate wasm compatible
2019-06-22 14:37:07 -04:00
Matt Garnett
2a50550b87
make hashing
crate wasm compatible
2019-06-22 14:36:59 -04:00
Paul Hauner
a71f05066b
Merge branch 'docker-env' into v0.6.1
2019-06-13 10:37:35 -04:00
Michael Sproul
4686542e10
bls: fix unused import warning
2019-06-12 16:56:57 +10:00
Michael Sproul
0da63a0e65
shuffling: delete old yaml test
2019-06-12 16:56:33 +10:00
Michael Sproul
9e51a04139
Delete unused fished_yates_shuffle crate
2019-06-12 16:55:01 +10:00
Michael Sproul
88790e6abe
bls: debugging utils and fake sig fix
...
There was a discrepancy between the is_empty fields of fake signatures during testing, so I've added
a small hack to set the is_empty field of a fake signature based on the byte content.
Alternatively, we could just make it so that any fake signature is defined to be equal to any other.
2019-06-12 15:44:23 +10:00
Michael Sproul
6bf6ba337d
bls: as_hex_string for aggregate signatures/pubkeys
2019-06-11 18:00:05 +10:00
Michael Sproul
0eea6fd367
bls: fix imports for fake_crypto
2019-06-11 17:58:03 +10:00
Paul Hauner
e550c0218f
Add various fixes to clippy lints
...
Thou shalt appease clippy
2019-06-10 11:01:25 -04:00
Paul Hauner
ab12787610
Update account manager config parsing
2019-06-09 04:34:56 -04:00
Paul Hauner
3487b16ce5
Add eth2_config
crate, integrate into val client
2019-06-08 20:21:50 -04:00
Paul Hauner
39ec96ad82
Run rustfmt
2019-06-07 02:55:43 -04:00
Paul Hauner
45fb11b208
Impl ssz enc/dec for NonZeroUsize
2019-06-04 12:24:13 +10:00
Paul Hauner
7a2ab2e9aa
Add support for SSZ union type via Option
2019-06-04 12:03:54 +10:00
Paul Hauner
39cb63e01e
Merge branch 'v0.6.1' into docker-env
2019-06-04 09:25:00 +10:00
Michael Sproul
a3a941efdf
Merge remote-tracking branch 'origin/master' into v0.6.1
2019-06-03 16:31:34 +10:00
Paul Hauner
10a7936c37
Update BLS library
2019-06-03 13:26:22 +10:00
Paul Hauner
e310bdd904
Merge branch 'master' into v0.6.1
2019-06-02 13:49:24 +10:00
Victor Lopez
f5bf4a861e
Fmt fix
...
Signed-off-by: Victor Lopez <vhrlopes@gmail.com>
2019-05-28 01:58:16 +00:00
Paul Hauner
21ecaddac1
Fix various clippy lints
2019-05-28 10:56:05 +10:00
Paul Hauner
76602a65fc
Add new
fns to ForkChoice
and SlotClock
2019-05-27 17:58:15 +10:00
Paul Hauner
f9d48dee68
Use hex encoding for Debug
fmt of PublicKey
2019-05-24 14:08:20 +10:00
Paul Hauner
e43d27f3e4
Add extra level of comparisons to CompareFields
2019-05-24 14:08:19 +10:00
Paul Hauner
31a7a0614e
Remove bytes
dependency from shuffling
2019-05-24 14:08:19 +10:00
Kirk Baird
514ac23724
Update signature schemes release
2019-05-24 11:01:56 +10:00
Paul Hauner
ffcd1e6409
Clarify order-of-operations in shuffling
2019-05-23 23:22:11 +10:00
Paul Hauner
7bf83a97cf
Update shuffling to use new(ish) to_le_bytes fn
2019-05-23 23:21:53 +10:00
Victor Lopez
ce106caa88
ssz
is ambiguous (name vs any other name during import resolution)
2019-05-22 14:23:19 -03:00
Paul Hauner
e760afbc1a
Tidy presentation of errors for ef_tests
2019-05-22 18:55:00 +10:00
Paul Hauner
7a99654f89
Add new CompareFields
trait and derive
2019-05-22 17:22:12 +10:00
Paul Hauner
1eeaaaa92b
Merge branch 'ef-tests' into v0.6.1
2019-05-22 14:46:10 +10:00
Michael Sproul
9a21e41017
fixed_len_vec: Deref to slice
2019-05-21 16:43:54 +10:00
Kirk Baird
7a96ad130e
Finalise bls spec tests
2019-05-21 12:46:22 +10:00
Kirk Baird
6bab62e629
Modifly bls library to reflect recent changes
2019-05-21 10:35:06 +10:00
Kirk Baird
4f6447a62b
Begin working on bls test
2019-05-21 10:32:14 +10:00
Kirk Baird
c991f4631d
Update to bls version 0.7.0
2019-05-20 15:38:14 +10:00
Paul Hauner
089febb944
Fix epoch cache, add tests
2019-05-17 16:40:33 +10:00
Darren Langley
b9ab3b2523
fake sig back, merge, and fixed up yml checkin issue
2019-05-16 23:06:41 +10:00
Paul Hauner
519ee81c68
Merge branch '368' into ef-tests
2019-05-15 12:33:40 +10:00
Michael Sproul
3a0f00215d
spec: ensure types up to date with v0.6.1
2019-05-15 11:48:09 +10:00
Michael Sproul
9f6b7eb757
Merge remote-tracking branch 'origin/sos' into spec-0.6
2019-05-15 11:09:00 +10:00
Paul Hauner
4b753015d8
Remove commented-out code
2019-05-15 10:40:30 +10:00
Paul Hauner
b6d8db3f72
Add serde transparent flag to fixed_len_vec
2019-05-15 07:55:03 +10:00
Paul Hauner
d73e068686
Add additional fake_crypto objects
2019-05-14 22:09:57 +10:00
Paul Hauner
f4ec8b3e84
Merge branch '368' into ef-tests
2019-05-14 17:18:55 +10:00
Michael Sproul
e80264b8c8
Merge remote-tracking branch 'origin/master' into spec-0.6
2019-05-14 12:09:59 +10:00
Paul Hauner
cf509bea9b
Improve ef_tests crate
2019-05-13 22:10:23 +10:00
Paul Hauner
8222ac17cf
Merge branch 'master' into sos
2019-05-13 15:17:56 +10:00
Paul Hauner
bf23a5b7b0
Merge pull request #369 from sigp/fixed-vec
...
Implement fixed-length lists for BeaconState
2019-05-13 15:16:03 +10:00
Paul Hauner
a0148b5aae
Rename SSZ traits (Encodable -> Encode)
2019-05-13 15:12:19 +10:00
Paul Hauner
94ab2479fe
Add docs to SSZ
2019-05-13 14:13:15 +10:00
Paul Hauner
16a8cdb714
Add tests for excess bytes in SSZ
2019-05-13 13:51:58 +10:00
Paul Hauner
9ccaec5b91
Move SSZ macros into own file
2019-05-13 12:33:59 +10:00
Paul Hauner
9f62f261c4
Run cargofmt --all
2019-05-13 12:29:26 +10:00
Paul Hauner
03fee2fb97
Fix SSZ for bls fake_crypto features
2019-05-13 12:23:06 +10:00
Paul Hauner
eb62b5842d
Update beacon node crates for new SSZ
2019-05-13 12:07:32 +10:00
Paul Hauner
d9bfbc2657
Add macros for easy SSZ impl via From trait
2019-05-13 09:25:37 +10:00
Paul Hauner
f96a6268e5
Remove old dbg! statements from tests
2019-05-12 09:34:01 +10:00
Paul Hauner
349d33052b
Fix SSZ encode impl for fixed_len_vec
2019-05-12 09:33:47 +10:00
Paul Hauner
02afc6ef24
Tidy ssz decoding code
2019-05-11 22:52:24 +10:00
Paul Hauner
fc2a406edf
Fix bug in ssz decoding
2019-05-11 22:25:28 +10:00
Paul Hauner
96aeac333a
Add tests for fixed_len_vec ssz
2019-05-11 19:09:51 +10:00
Paul Hauner
1f7b7ec498
Add tests for SSZ offset attacks
2019-05-11 19:09:27 +10:00
Paul Hauner
1e2bf03d5e
Update ssz impl for fixed_len_vec
2019-05-10 16:37:56 +10:00
Paul Hauner
3cd112d42d
Encapsulate ssz
vec decoding in public fn
2019-05-10 16:37:00 +10:00
Paul Hauner
3ef46c03d1
Merge branch 'fixed-vec' into sos
2019-05-10 15:27:21 +10:00
Luke Anderson
93a4bef41c
Very small wording/typo fixes for docs.
2019-05-10 13:49:01 +10:00
Paul Hauner
3be80ba9a9
Marginally improve cached_tree_hash
docs
2019-05-10 13:29:43 +10:00
Paul Hauner
2a938f2fd5
Fix clippy lints
2019-05-09 13:35:00 +10:00
Paul Hauner
4c0c93f0c9
Update beacon_node
to work w/ BeaconStateTypes
2019-05-09 09:40:32 +10:00
Paul Hauner
8cefd20e9d
Add progress on state_processing fixed-len update
2019-05-08 15:36:02 +10:00
Paul Hauner
5ba069c774
Implement new BeaconStateTypes
trait in types
2019-05-08 13:08:37 +10:00
Michael Sproul
7dda85e87e
hashing: Keccak -> SHA256
2019-05-07 18:27:24 +10:00
Paul Hauner
759d0250c5
Clean out some occurances of SszStream
2019-05-06 19:50:05 +10:00
Paul Hauner
5550d14d62
Upgrade BLS to new SSZ
2019-05-06 15:03:20 +10:00
Paul Hauner
ebbeb03349
Update boolean bitfield to new SSZ
2019-05-06 13:25:11 +10:00
Paul Hauner
1f098ecbde
Remove antiquated test vectors
2019-05-06 11:52:46 +10:00
Paul Hauner
c31ef5cf7f
Remove old code, fix bug with MAX_LENGTH_VALUE
2019-05-06 11:51:50 +10:00
Paul Hauner
9d27f67643
Tidy SSZ decode impls
2019-05-06 11:36:00 +10:00
Paul Hauner
96ef8e7073
Tidy SSZ encode impls
2019-05-06 10:26:49 +10:00
Paul Hauner
56fe63f78d
Improve allocations for SszEncoder
2019-05-06 09:58:31 +10:00
Paul Hauner
480c5ff160
Update SszEncoder
2019-05-06 09:26:58 +10:00
Paul Hauner
aeb17c73f6
Add SszEncoder
2019-05-06 09:01:28 +10:00
Paul Hauner
daf6912d18
Begin refactor for less allocation
2019-05-06 08:47:49 +10:00
Paul Hauner
acf854f558
Add profiling tools, examples
2019-05-05 15:32:09 +10:00
Paul Hauner
fd5f914c3c
Fix failing decode test
2019-05-05 12:47:57 +10:00
Paul Hauner
c5f00d1666
Update SSZ derive macro, create failing test
2019-05-05 12:11:25 +10:00
Paul Hauner
b5d9157722
Add tests for derived encoding
2019-05-04 18:06:01 +10:00
Paul Hauner
0bd5119f19
Replace ssz
with ssz2
, adapt ssz_derive
2019-05-04 14:11:48 +10:00
Paul Hauner
7096d56749
Add working decoder example
2019-05-03 17:50:29 +10:00
Paul Hauner
0c0edb0653
Add ssz examples, decoder struct
2019-05-03 17:39:51 +10:00
Paul Hauner
7865f0de89
Tidy encode impl tests
2019-05-03 16:21:18 +10:00
Paul Hauner
80ef379202
Improve docs, cover a bunch of invalid inputs
2019-05-03 15:43:10 +10:00
Paul Hauner
90d8afd64b
Simplify SOS vec decoding
2019-05-03 14:16:36 +10:00
Paul Hauner
6d721813f1
Fix failing SOS nested vec tests
2019-05-03 13:43:52 +10:00
Paul Hauner
9943e70cb9
Fix failing SOS tests, add new failing tests
2019-05-03 13:14:26 +10:00
Paul Hauner
3f9430ddff
Add partial progress on sos
2019-05-03 11:05:51 +10:00
Paul Hauner
c5acbd978f
Start works on SOS-SSZ
2019-05-01 17:51:07 +10:00
Johns Beharry
06362d32d3
chore(hashing/merkle_root): remove semi colon on returns
...
Signed-off-by: Johns Beharry <johns@peakshift.com>
2019-04-30 08:24:28 +03:00
Johns Beharry
725401d2e1
test(hashing/merkle_root): write test for empty vector and odd leaf count
...
Signed-off-by: Johns Beharry <johns@peakshift.com>
2019-04-30 08:24:27 +03:00
Johns Beharry
8429f3bff1
chore(hashing): update comments of fn merkle_root
...
Signed-off-by: Johns Beharry <johns@peakshift.com>
2019-04-30 08:24:27 +03:00
Johns Beharry
9fbacbf967
chore(merkle_root): move function into lib.rs
...
Signed-off-by: Johns Beharry <johns@peakshift.com>
2019-04-30 08:24:27 +03:00
Johns Beharry
5f9e93d338
chore(merkle_root): split function to it's own file
...
Signed-off-by: Johns Beharry <johns@peakshift.com>
2019-04-30 08:24:26 +03:00
Johns Beharry
80ac60cc0e
feat(merkle_root): calculate merkle root from leaves
...
Signed-off-by: Johns Beharry <johns@peakshift.com>
2019-04-30 08:24:26 +03:00
Johns Beharry
af87fbf203
feat(merkle_root): hash vector of leafs to get merkle_root
...
Signed-off-by: Johns Beharry <johns@peakshift.com>
2019-04-30 08:24:26 +03:00
Paul Hauner
84d72cfed6
Tidy and add docs for cached tree hash
2019-04-29 17:46:01 +10:00
Paul Hauner
f622aa0b65
Add doc comments to vec impl
2019-04-29 15:45:02 +10:00
Paul Hauner
f20314bd87
Fix clippy lints, impl treehash for slices
2019-04-29 15:32:41 +10:00
Paul Hauner
240d1e197a
Ignore clippy range_plus_one
lints
2019-04-29 14:24:57 +10:00
Paul Hauner
a90bbbfd82
Address various clippy lints, improve comments
2019-04-29 14:04:52 +10:00
Paul Hauner
fbf8fad4f1
Add counter-resets to reset_modifications
2019-04-29 10:57:19 +10:00
Paul Hauner
0599d3f1f8
Remove redundant type param fom CachedTreeHash
2019-04-29 07:48:48 +10:00
Paul Hauner
68b36787e2
Move leaf node creation into separate fn
2019-04-28 20:30:48 +10:00