Justin
3459515c2c
Merkleise SSZ container elements ( #595 )
...
Reasons to use `merkle_hash` instead of `hash` for containers:
1) **Smaller witnesses**: `BeaconState` is a somewhat wide container (26 fields as of now, likely 30+ in phase 2). With concatenation and plain concatenation the size of the Merkle witnesses for the top level are ~32 bytes per field element.
2) **Faster incremental hashing**
3) **Consistency**: Consistent with `merkle_hash` for lists/vectors.
2019-02-12 21:57:54 +00:00
Justin
9a4f4d5344
Fix SSZ merkleisation bug ( #602 )
2019-02-12 11:12:29 +00:00
Justin
0069241b9c
Alias `bytes` to `List[bytes1]`
2019-02-11 14:49:11 +00:00
Jordan Andrews
afca1e2127
Add C# implementation
2019-02-11 22:01:05 +11:00
vbuterin
2ac420c5ea
Merge pull request #538 from ethereum/vbuterin-patch-1
...
SSZ list Merkle hashing change
2019-02-03 14:37:30 -06:00
vbuterin
197fa18893
Zpad is already in #543
2019-02-03 14:26:07 -06:00
Hsiao-Wei Wang
dd197e46a6
Fix `zpad`
2019-02-01 22:31:00 +08:00
vbuterin
8ffd9adcaf
Hash_tree_root -> hash_tree_root_internal
...
Clarifies the distinction between "internal" hash roots (may be < 32 bytes for trivial objects) and "external" ones (zpadded to 32).
2019-01-31 18:03:23 -06:00
Hsiao-Wei Wang
acb432ef3a
Update specs/simple-serialize.md
...
Co-Authored-By: vbuterin <v@buterin.com>
2019-01-31 17:49:51 -06:00
Hsiao-Wei Wang
9271e6e318
Update specs/simple-serialize.md
...
Co-Authored-By: vbuterin <v@buterin.com>
2019-01-31 17:47:09 -06:00
vbuterin
5488e7b6a4
SSZ list Merkle hashing change
...
The current spec is arguably inconsistent, in that if a set of N values gets chunked into M chunks where M is not an exact power of 2, the chunks between M and next_power_of_2(M) are filled with SSZ_CHUNK_SIZE zero bytes each, but the last chunk is not padded, and could be arbitrarily short (eg. if the values are 4 bytes and there are 257 of them, then that gets serialized into eight chunks chunks where the first four are 64 values each, the fifth is 4 bytes corresponding to the last value, and the last three chunks are SSZ_CHUNK_SIZE zero bytes). This PR fills every chunk up to exactly SSZ_CHUNK_SIZE bytes for consistency.
2019-01-31 10:12:43 -06:00
jannikluhn
4bedb16e21
Merge branch 'master' into ssz-var-length-list
2019-01-28 10:53:04 +01:00
Chih Cheng Liang
45c064a2d6
remove all unnecessary newline
2019-01-24 16:24:05 +08:00
Chih Cheng Liang
5dfa4e005b
rename byte_order to byteorder
2019-01-24 16:12:43 +08:00
Chih Cheng Liang
d41215aeec
rename Terminology to Variables and Functions
2019-01-24 16:11:45 +08:00
Chih Cheng Liang
14432e91a3
add code block to variable in the table
2019-01-24 16:11:04 +08:00
Chih Cheng Liang
88ffae6335
define deserialized_object and new_index
2019-01-24 16:08:56 +08:00
Chih Cheng Liang
c2112f0bfc
PR feedback: remove unnecessary newline
2019-01-24 15:58:34 +08:00
Hsiao-Wei Wang
5bb02a9d09
Update specs/simple-serialize.md
...
Co-Authored-By: ChihChengLiang <chihchengliang@gmail.com>
2019-01-24 15:53:52 +08:00
Chih Cheng Liang
6ac5608d0b
Explicit check bytes end
2019-01-23 20:14:25 +08:00
Jannik Luhn
f8670e8069
SSZ: Remove note on efficiency
2019-01-22 17:18:21 +01:00
Jannik Luhn
a5519a7d3b
SSZ: List serialization with variable element size
...
Fix #232
2019-01-22 17:14:25 +01:00
Hsiao-Wei Wang
13dc373224
Update specs/simple-serialize.md
...
Co-Authored-By: decanus <dean@tokenate.io>
2019-01-17 17:51:34 +01:00
Dean Eigenmann
f485259d74
Update simple-serialize.md
2019-01-17 17:48:07 +01:00
Dean Eigenmann
7603d1d5c9
Update simple-serialize.md
2019-01-17 17:47:07 +01:00
Jacek Sieka
a80f2717f3
ssz: switch integer encoding to little endian ( #139 )
2019-01-17 15:34:07 +00:00
Hsiao-Wei Wang
8d2f4a1705
SSZ: Add `bytesN`, remove `hashN` and `Address` ( #455 )
2019-01-17 11:02:57 +00:00
Danny Ryan
58bb609780
Merge pull request #400 from wemeetagain/ssz/fix-deserialize-container-variable-names
...
Fix minor variable name mismatch
2019-01-07 08:43:27 -07:00
Danny Ryan
92747579cd
Merge pull request #398 from wemeetagain/ssz/fix-deserialize-uint
...
Fix deserialize uint bounds logic
2019-01-07 08:13:56 -07:00
Danny Ryan
31d4ca594d
conform to standard
2019-01-07 08:13:26 -07:00
Hsiao-Wei Wang
6fc131433c
Update specs/simple-serialize.md
...
Co-Authored-By: wemeetagain <caymannava@gmail.com>
2019-01-07 00:54:40 -06:00
Cayman
140ee1ade9
Fix hash function link
2019-01-06 23:10:33 -06:00
Cayman
cebbe7b7c5
Fix minor variable name mismatch
2019-01-06 13:05:27 -06:00
Cayman
fb17be0e9b
Fix deserialize uint bounds logic
...
Array accesses should be relative to uint byte length, not bit length.
2019-01-04 11:14:27 -06:00
Alex Stokes
d49b6e5087
Fix typo with missing bracket ( #379 )
2018-12-31 23:35:09 +00:00
terence tsao
f21da324ef
updated SSZ implementation list
2018-12-22 15:13:54 -08:00
Vitalik Buterin
a9328157a8
Don't lexicographically sort
2018-12-19 13:48:04 -05:00
Terence Tsao
e0e2fed1b5
rename hash tree roots as root
2018-12-11 09:53:56 -08:00
Danny Ryan
49f3cfebdf
add link to appendix A
2018-12-10 16:22:42 -06:00
Alex Stokes
ed3611904d
update reference to hash function
2018-12-10 13:32:16 -08:00
Nishant Das
88ef7b8186
typo ( #270 )
2018-12-10 08:28:11 +00:00
Chris Leishman
eefaaf5ac3
Clarify TreeHash treatment of integers > 256bit
...
Also clarify treatment of hashes < 32bytes
2018-12-07 16:39:52 -08:00
Antoine Toulme
ff2551e754
Add Java implementation of SSZ
2018-12-02 21:22:51 -08:00
vbuterin
05be2f05e3
tree_hash -> SSZTreeHash
2018-11-27 18:54:43 -05:00
Hsiao-Wei Wang
b59dda3409
`CHUNK_SIZE` -> `SSZ_CHUNK_SIZE`
2018-11-28 00:12:28 +08:00
Hsiao-Wei Wang
4c991bf3ca
ssz proofread
2018-11-27 15:45:04 +08:00
Hsiao-Wei Wang
f1b78cf01e
ss: Add CC0 copyright declaration ( #155 )
2018-11-22 17:28:24 +09:00
Hsiao-Wei Wang
a217e9b32c
tree_ssz: fix extra parens
...
Co-Authored-By: arnetheduck <arnetheduck@gmail.com>
2018-11-20 08:12:56 -06:00
Jacek Sieka
ea7ad28298
simplify merkle tree chunking
...
* pack small items tightly to fit more items in single chunk, decreasing
the number of hash operations needed
* remove chunk padding - hash algorithm will pad to its own block size
anyway
* express data length in number of items instead of binary bytes at leaf
level (equivalent)
2018-11-17 07:59:11 -06:00
vbuterin
707adddc92
Added tree hashing algorithm ( #120 )
...
* Added tree hashing algorithm
* Update simple-serialize.md
* add one more ref to tree_hash
* Add the zero-item special case
* list_to_glob to handle empty list
2018-11-15 13:12:34 +00:00