p4u / asmt

Aergo Sparse Merkle Trie

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

asmt

asmt is a GoLang sparse merkle tree.

A forked of Aergo SMT with minor style code modifications and some new methods: Walk() WalkWithRoot() and GetWithRoot().

This module includes an abstraction layer to make the SMT more developer friendly with a very easy to use API:

  • Init(name, dataDir string) error
  • LastAccess() (timestamp int64)
  • Add(key, value []byte) error
  • AddBatch(keys, values [][]byte) (failedIndexes []int, err error)
  • GenProof(key, value []byte) (mproof []byte, err error)
  • CheckProof(key, value, root, mproof []byte) (included bool, err error)
  • Root() []byte
  • HashExists(hash []byte) (bool, error)
  • Dump(root []byte) (data []byte, err error) // Dump must return a format compatible with ImportDump
  • DumpPlain(root []byte) (keys [][]byte, values [][]byte, err error)
  • ImportDump(data []byte) error
  • Size(root []byte) (int64, error)
  • Snapshot(root []byte) (Tree, error) // Snapshot is a frozen trie on a specific Root hash that cannot be modified

About

Aergo Sparse Merkle Trie

License:MIT License


Languages

Language:Go 100.0%