Commit 4143b5779d03c5527c674008885b39d94cfd76ec
added readme
wanderer committed on 8/4/2017, 10:27:09 PMParent: 0a2ff8de9be467a416ae023a6257e799a5db796f
Files changed
README.md | added |
README.md | |||
---|---|---|---|
@@ -1,0 +1,72 @@ | |||
1 … | +[![NPM Package](https://img.shields.io/npm/v/merkle-radix-tree.svg?style=flat-square)](https://www.npmjs.org/package/merkle-radix-tree) | ||
2 … | +[![Build Status](https://img.shields.io/travis/wanderer/merkle-radix-tree.svg?branch=master&style=flat-square)](https://travis-ci.org/wanderer/merkle-radix-tree) | ||
3 … | +[![Coverage Status](https://img.shields.io/coveralls/wanderer/merkle-radix-tree.svg?style=flat-square)](https://coveralls.io/wanderer/merkle-radix-tree) | ||
4 … | + | ||
5 … | +[![js-standard-style](https://cdn.rawgit.com/feross/standard/master/badge.svg)](https://github.com/feross/standard) | ||
6 … | + | ||
7 … | +# install | ||
8 … | +`npm install merkle-radix-tree` | ||
9 … | + | ||
10 … | +# SYNOPSIS | ||
11 … | +This implements a binary merkle radix tree. The point of using a binary radix | ||
12 … | +tree is that it generates smaller proof size then trees with larger radixes. | ||
13 … | +This tree is well suited for storing large dictonaries of fairly random key. If | ||
14 … | +the keys are not random better performance can be achived by hashing them first. | ||
15 … | + | ||
16 … | +# INSTALL | ||
17 … | +`npm install merkle-radix-tree` | ||
18 … | + | ||
19 … | +# USAGE | ||
20 … | + | ||
21 … | +```javascript | ||
22 … | +const IPFS = require('ipfs') | ||
23 … | +const RadixTree = require('merkle-radix-tree') | ||
24 … | + | ||
25 … | +// start ipfs | ||
26 … | +const node = new IPFS({ | ||
27 … | + start: false, | ||
28 … | + repo: './ipfs-repo' | ||
29 … | +}) | ||
30 … | + | ||
31 … | +node.on('ready', async () => { | ||
32 … | + const prover = new RadixTree({ | ||
33 … | + dag: node.dag | ||
34 … | + }) | ||
35 … | + | ||
36 … | + // set some values | ||
37 … | + await prover.set('test', 'value') | ||
38 … | + await prover.set('doge', 'coin') | ||
39 … | + await prover.set('cat', 'dog') | ||
40 … | + await prover.set('monkey', 'wrench') | ||
41 … | + | ||
42 … | + // create a merkle root and save the tree | ||
43 … | + const merkleRoot = await prover.flush() | ||
44 … | + | ||
45 … | + // start a new Instance with the root | ||
46 … | + const verifier = new RadixTree({ | ||
47 … | + dag: node.dag, | ||
48 … | + root: merkleRoot | ||
49 … | + }) | ||
50 … | + | ||
51 … | + // gets the merkle proof from ipfs-js and returns the result | ||
52 … | + const val = await verifier.get('monkey') | ||
53 … | + console.log(val) | ||
54 … | +}) | ||
55 … | +``` | ||
56 … | +# API | ||
57 … | +['./docs/'](./docs/index.md) | ||
58 … | + | ||
59 … | +# SPEC | ||
60 … | +['./docs/spec.md']('./docs/spec.md') | ||
61 … | + | ||
62 … | +# BENCHMARKS | ||
63 … | +The result of the benchmarks show that the binary radix tree produces proofs on | ||
64 … | +average %67 small then Ethereum Trie with 100000 keys stored. | ||
65 … | + | ||
66 … | +['./benchmarks/benchmarks.md']('./docs/spec.md') | ||
67 … | + | ||
68 … | +# TESTS | ||
69 … | +`npm run tests` | ||
70 … | + | ||
71 … | +# LICENSE | ||
72 … | +[MPL-2.0](https://tldrlegal.com/license/mozilla-public-license-2.0-(mpl-2)) |
Built with git-ssb-web