Typed mutable SSZ views over cached and immutable binary merkle trees
Project description
Features
- Types:
- custom byte-vector and byte-list view for Python bytes-like behavior
- bitfields: bitlist, bitvector
- list, container, vector
- union
- 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
remerkleable-0.1.24.tar.gz
(37.9 kB
view hashes)
Built Distribution
Close
Hashes for remerkleable-0.1.24-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | e4e084c1920231d03e4c1ed542f0bd433e11ec85adff2219e6b3a03b61b0459d |
|
MD5 | 4cdf3064239233d960fa9e213bc31caa |
|
BLAKE2-256 | 8e255036fa91c58bd8e139db483d776a0f23779514877dd35620765427d38357 |