Typed mutable SSZ views over cached and immutable binary merkle trees
Project description
remerkleable
Re-merkle-able: Typed mutable SSZ views over cached and immutable binary Merkle trees.
Features
- Types:
custom byte-vector and byte-list view for Python bytes-like behavior
bitfields: bitlist, bitvector
list, container, vector
basic types
- Functionality:
Serialize all types. Into output stream (returning the written count) and as bytes
Deserialize all types. From input stream (and scope) and from bytes
Hash-tree-root all types
- Merkle-based data-sharing:
every view can be initialized/backed by a binary Merkle tree
complex views have backings, and can share data.
complex views provide a nice mutable interface, and replace their backing. And this also works for child-views through view-hooks.
SSZ-Partials: if a partial proof is loaded as backing, a view can be overlaid, and the partial backing works as long as no excluded branches are accessed.
- Calculate byte lengths:
Type min/max byte length
Byte length for fixed-length types
Output byte length for a value, without serializing
Navigation: construct paths from types, and convert to generalized indices.
History: traverse a sequence of nodes, and get the changelog for a given subtree location.
Project Links
Also see
Contact
Author: @protolambda
License
MIT, see LICENSE file.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for remerkleable-0.1.16-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 6cdf63049d50d1136f3e6b8b96c9d1a3b0225a0205181f09872292ef9de5dd5b |
|
MD5 | 0bf8f05f137951c0767b0c11f6a218d1 |
|
BLAKE2b-256 | c976f766f042773ddafb16986a1bcba0b6c097e7f1ab01049215574fb6edb6b4 |