Skip to main content

Modified Merkle Paticia Trie

MPT is the data structure used in Ethereum as a cryptographically authenticated key-value data storage.

This library is a Python implementation of Modified Merkle Patrica Trie with a very simple interface.

Example

storage = {}
trie = MerklePatriciaTrie(storage)

trie.update(b'do', b'verb')
trie.update(b'dog', b'puppy')
trie.update(b'doge', b'coin')
trie.update(b'horse', b'stallion')

old_root = trie.root()
old_root_hash = trie.root_hash()

print("Root hash is {}".format(old_root_hash.hex()))

trie.delete(b'doge')

print("New root hash is {}".format(trie.root_hash().hex()))

trie_from_old_hash = MerklePatriciaTrie(storage, root=old_root)

print(trie_from_old_hash.get(b'doge'))

try:
    print(trie.get(b'doge'))
except KeyError:
    print('Not accessible in a new trie.')

Installing

Install and update using pip:

pip install -U eth_mpt

Documentation

Documentation can be found on readthedocs.

Contributing

All the contributors are welcome. If you can make this library better, don't hesitate to :)

Testing

python -m unittest

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

eth_mpt-0.2.0.tar.gz (10.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

eth_mpt-0.2.0-py3-none-any.whl (12.4 kB view details)

Uploaded Python 3

File details

Details for the file eth_mpt-0.2.0.tar.gz.

File metadata

  • Download URL: eth_mpt-0.2.0.tar.gz
  • Upload date:
  • Size: 10.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.13.0 pkginfo/1.5.0.1 requests/2.21.0 setuptools/40.8.0 requests-toolbelt/0.9.1 tqdm/4.31.1 CPython/3.7.1

File hashes

Hashes for eth_mpt-0.2.0.tar.gz
Algorithm Hash digest
SHA256 387af0775cd9509cfe863b11dbe7115185fcddf2783d7a72fef0377f6def866e
MD5 b19c9878eac2ab4b7ff9c83d970423bf
BLAKE2b-256 093dd9b6056f84c67a0bd57702ef3e0d1b4946bd41ecb18672481dae286b5d8c

See more details on using hashes here.

File details

Details for the file eth_mpt-0.2.0-py3-none-any.whl.

File metadata

  • Download URL: eth_mpt-0.2.0-py3-none-any.whl
  • Upload date:
  • Size: 12.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.13.0 pkginfo/1.5.0.1 requests/2.21.0 setuptools/40.8.0 requests-toolbelt/0.9.1 tqdm/4.31.1 CPython/3.7.1

File hashes

Hashes for eth_mpt-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 2da48228d807ee4c86b4194ff9416d5b3db8da319027662334ddb091fb3a9de0
MD5 db10ec0887a93b0979e8bf14cb6171c3
BLAKE2b-256 7df19e81d43dd3d195e0ee091ecafbe086be6792dee0065925d20554727a7c34

See more details on using hashes here.

Release history Release notifications | RSS feed

This release

0.2.0 This release

2 files

0.1.0

2 files

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page