Skip to main content
Hippiepug

hippiepug

PyPI version Build status Test coverage Documentation status License

Sublinear-lookup blockchains and efficient key-value Merkle trees.

Check out the documentation.


This library provides implementations of two cryptographic data structures:

  • Blockchains with log(n) sublinear traversal, implemented as high-integrity deterministic skip-lists (skipchains). In this kind of blockchain verifying that block b extends block a does not require to download and process all blocks between a and b, but only a logarithmic amount of them.

  • Verifiable dictionary, implemented as a key-value Merkle tree that guarantees unique resolution. A proof of inclusion of a key-value pair in such a tree also proves that there does not exist another value for a given key somewhere else in the tree.

Both are meant to be used with a content-addressable storage. Each data structure supports logarithmic queries, and logarithmic proofs of inclusion:

Retrievals per lookup

Inclusion proof size

Append

Skipchain

O(log(n))

O(log(n))

O(1)

Key-value Merkle tree

O(log(n))

O(log(n))

Immutable

with n being the size of the dictionary, or the number of blocks in the case of a chain.

The theoretical details are in the paper.

Getting started

You can install the library from PyPI:

pip install hippiepug

Then, the easiest way to run the tests is:

python setup.py test

Be sure to check out the usage guide.

Acknowledgements

  • The library is a reimplementation of G. Danezis’s hippiehug (hence the name).

  • This work is funded by the NEXTLEAP project within the European Union’s Horizon 2020 Framework Programme for Research and Innovation (H2020-ICT-2015, ICT-10-2015) under grant agreement 688722.

  • The hippie pug logo kindly donated by M. Naiem.

Metadata

Release files for hippiepug 0.5.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for hippiepug 0.5.0
File Size Uploaded
hippiepug-0.5.0.tar.gz 509.9 kB Details

Release files / hippiepug-0.5.0.tar.gz

Download URL hippiepug-0.5.0.tar.gz
Size 509.9 kB
Tags Source
SHA-256 checksum
How to use checksums
147173947fb0c98843fd3e02d694045dd0989ec6d02ce5dffd7b8b6bf5e8d7ae
BLAKE2b-256 checksum
How to use checksums
494d376be16bb117481b6e078959b5a828e3c0cac25937cf7edb7dee00058c3e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/1.11.0 pkginfo/1.4.2 requests/2.19.1 setuptools/40.4.2 requests-toolbelt/0.8.0 tqdm/4.26.0 CPython/3.6.5

Release history Release notifications | RSS feed

This release

0.5.0 This release

1 release file

0.4.2

1 release file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page