diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..55e8076 --- /dev/null +++ b/LICENSE @@ -0,0 +1,21 @@ +Copyright (c) 2018, Respective Authors all rights reserved. + +The MIT License + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. diff --git a/README.md b/README.md new file mode 100644 index 0000000..eb4020c --- /dev/null +++ b/README.md @@ -0,0 +1,23 @@ +# asmt + +asmt is a GoLang sparse merkle tree. + +A forked of [Aergo SMT](https://github.com/aergoio/aergo/tree/develop/pkg/trie) 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 +