SecureTrie

src/secure.js:10-15

Extends Trie 扩展前缀树

You can create a secure Trie where the keys are automatically hashed using SHA3 by using require('merkle-patricia-tree/secure'). It has the same methods and constructor as Trie.

你可以通过使用require('merkle-patricia-tree/secure')创建一个keys会自动使用SHA3进行hash的安全前缀树。它有着与Trie相同的方法和构造函数

Trie

src/baseTrie.js:27-55

Use require('merkel-patricia-tree') for the base interface. In Ethereum applications stick with the Secure Trie Overlay require('merkel-patricia-tree/secure'). The API for the raw and the secure interface are about the same

使用require('merkel-patricia-tree')获取基本接口。在Ethereum应用程序坚持使用安全的Trie,即require('merkel-patricia-tree/secure')。对于原始的和安全的Trie的接口的API是相同的。

Parameters参数

  • db Object? An instance of levelup or a compatible API. If the db is null or left undefined, then the trie will be stored in memory via memdown   levelup实例或一个兼容API。如果db为null或undefined,那么trie将通过memdown存储到内存中
  • root (Buffer | String)? A hex String or Buffer for the root of a previously stored trie  以前存储的trie的根,为一个十六进制字符串或buffer

Properties属性

  • root Buffer The current root of the trie 当前trie的根
  • isCheckpoint Boolean determines if you are saving to a checkpoint or directly to the db 决定是保存到检查点还是直接保存到数据库
  • EMPTY_TRIE_ROOT Buffer the Root for an empty trie 空trie的根

get

src/baseTrie.js:64-77

Gets a value given a key

得到给定key的value

Parameters参数

  • key (Buffer | String) the key to search for 搜索的key
  • cb Function A callback Function which is given the arguments err - for errors that may have occured and value- the found value in a Buffer or if no value was found null 有给定参数err-可能发生的错误和value-在Buffer中发现的value,如果没有则为null的回调函数

put

src/baseTrie.js:87-113

Stores a given value at the given key

在给定的key上存储给定的value

Parameters参数

  • key (Buffer | String)
  • Value (Buffer | String)
  • cb Function A callback Function which is given the argument err - for errors that may have occured  有给定参数err-可能发生的错误的回调函数

del

src/baseTrie.js:122-140

deletes a value given a key

删除给定key的value

Parameters

getRaw

src/baseTrie.js:149-165

Retrieves a raw value in the underlying db

检索底层数据库中的原始value

Parameters

  • key Buffer
  • callback Function A callback Function, which is given the arguments err - for errors that may have occured and value - the found value in a Buffer or if no value was found null.有给定参数err-可能发生的错误和value-在Buffer中发现的value,如果没有则为null的回调函数

putRaw

src/baseTrie.js:205-205

Writes a value directly to the underlining db

直接将value写入底层数据库

Parameters

  • key (Buffer | String) The key as a Buffer or String Buffer或String类型的key
  • value Buffer The value to be stored 存储的value
  • callback Function A callback Function, which is given the argument err - for errors that may have occured 有给定参数err-可能发生的错误的回调函数

delRaw

src/baseTrie.js:214-221

Removes a raw value in the underlying db

移除在底层数据库中的原始数据

Parameters

  • key (Buffer | String)
  • callback Function A callback Function, which is given the argument err - for errors that may have occured有给定参数err-可能发生的错误的回调函数

findPath

src/baseTrie.js:256-304

Trys to find a path to the node for the given key It returns a stack of nodes to the closet node

根据给定key尝试找到node的path。其返回到最近节点node的nodes的堆栈

Parameters参数

  • null-null (String | Buffer) key - the search key  搜索key
  • null-null Function cb - the callback function. Its is given the following arguments回调函数,给定以下参数
    • err - any errors  encontered  遇见的错误
    • node - the last node found  最后找到的节点node
    • keyRemainder - the remaining key nibbles not accounted for   剩余的没有找到半个字节的key
    • stack - an array of nodes that forms the path to node we are searching for  一个节点数组,它构成我们正在搜索的节点的路径

createReadStream

src/baseTrie.js:723-725

The data event is given an Object hat has two properties; the key and the value. Both should be Buffers.

data事件给了带有两个属性的对象:keyvalue,都为Buffer类型

Returns stream.Readable Returns a stream of the contents of the trie

返回类型是stream.Readable ,返回trie内容的流

batch

src/baseTrie.js:749-761

The given hash of operations (key additions or deletions) are executed on the DB

给定的要执行在数据库上的操作(key添加或删除)的hash

Parameters

Examples

var ops = [
{ type: 'del', key: 'father' }
, { type: 'put', key: 'name', value: 'Yuri Irsenovich Kim' }
, { type: 'put', key: 'dob', value: '16 February 1941' }
, { type: 'put', key: 'spouse', value: 'Kim Young-sook' }
, { type: 'put', key: 'occupation', value: 'Clown' }
]
trie.batch(ops)

checkRoot

src/baseTrie.js:770-775

Checks if a given root exists

检查给定的root是否存在

Parameters

Merkle Proof  Merkle证明

Static functions for creating/verifying a merkle proof.

创建/验证Merkle证明的静态函数

prove

src/proof.js:12-29

Returns a merkle proof for a given key

根据给定key返回merkle证明

Parameters

  • trie Trie
  • key String
  • cb Function A callback Function (arguments {Error} err, {Array.} proof) 回调函数fun(err,proof)

verifyProof

src/proof.js:39-100

Verifies a merkle proof for a given key

根据给定key验证merkle证明

Parameters

  • rootHash Buffer
  • key String
  • proof Array<TrieNode>
  • cb Function A callback Function (arguments {Error} err, {String} val)  回调函数fun(err,val)

Internal Util Functions 内部Util函数

These are not exposed.这些函数是不暴露给外部用户的

addHexPrefix

src/trieNode.js:164-179

Parameters

  • key
  • terminator
  • dataArr Array

Returns Buffer returns buffer of encoded data hexPrefix *

返回类型为Buffer,返回添加了十六进制前缀的编码数据的buffer

asyncFirstSeries

src/util.js:63-79

Take a collection of async fns, call the cb on the first to return a truthy value. If all run without a truthy result, return undefined

异步函数的收集,调用第一个参数上的回调返回可信value。如果所有运行没有可信结果,返回undefined

Parameters

  • array
  • iterator
  • cb

callTogether

src/util.js:37-57

Take two or more functions and returns a function that will execute all of the given functions

调用两个或更多函数,然后返回一个执行所有给定函数的函数

doKeysMatch

src/util.js:28-31

Compare two 'nibble array' keys

比较两个半字节数组keys

Parameters

  • keyA
  • keyB
 

ethereumjs/merkle-patricia-tree-2-API的更多相关文章

  1. 014-数据结构-树形结构-基数树、Patricia树、默克尔树、梅克尔帕特里夏树( Merkle Patricia Tree, MPT)

    一.基数树 Radix树,即基数树,也称压缩前缀树,是一种提供key-value存储查找的数据结构.与Trie不同的是,它对Trie树进行了空间优化,只有一个子节点的中间节点将被压缩.同样的,Radi ...

  2. Merkle Patricia Tree (MPT) 树详解

    1.    介绍 Merkle Patricia Tree(简称MPT树,实际上是一种trie前缀树)是以太坊中的一种加密认证的数据结构,可以用来存储所有的(key,value)对.以太坊区块的头部包 ...

  3. Merkle Patricia Tree (MPT) 以太坊中的默克尔树

    本篇博文是自己学习mpt的过程,边学边记录,很多原理性内容非自己原创,好的博文将会以链接形式进行共享. 一.什么是mpt MPT是以太坊中的merkle改进树,基于基数树,即前缀树改进而来,大大提高了 ...

  4. 使用 Jackson 树模型(tree model) API 处理 JSON

    http://blog.csdn.net/gao1440156051/article/details/54091702 http://blog.csdn.net/u010003835/article/ ...

  5. Merkle Tree学习

    /*最近在看Ethereum,其中一个重要的概念是Merkle Tree,以前从来没有听说过,所以查了些资料,学习了Merkle Tree的知识,因为接触时间不长,对Merkle Tree的理解也不是 ...

  6. Merkle Tree 概念

    Merkle Tree 概念 来源 https://www.cnblogs.com/fengzhiwu/p/5524324.html /*最近在看Ethereum,其中一个重要的概念是Merkle T ...

  7. Merkle Tree(默克尔树)算法解析

    Merkle Tree概念 Merkle Tree,通常也被称作Hash Tree,顾名思义,就是存储hash值的一棵树.Merkle树的叶子是数据块(例如,文件或者文件的集合)的hash值.非叶节点 ...

  8. 转 Merkle Tree(默克尔树)算法解析

    Merkle Tree概念  Merkle Tree,通常也被称作Hash Tree,顾名思义,就是存储hash值的一棵树.Merkle树的叶子是数据块(例如,文件或者文件的集合)的hash值.非叶节 ...

  9. 区块链~Merkle Tree(默克尔树)算法解析~转载

    转载~Merkle Tree(默克尔树)算法解析 /*最近在看Ethereum,其中一个重要的概念是Merkle Tree,以前从来没有听说过,所以查了些资料,学习了Merkle Tree的知识,因为 ...

  10. ethereumjs/merkle-patricia-tree-1-简介

    https://github.com/ethereumjs/merkle-patricia-tree SYNOPSIS概要 This is an implementation of the modif ...

随机推荐

  1. MySQL建表语句的一些特殊字段

    这里的字段会不断更新 unsigned 这个字段一般在建表的时候写在Id上,用来表示不分正负号 tinyint 这个字段如果设置为UNSIGNED类型,只能存储从0到255的整数,不能用来储存负数. ...

  2. 撩课-Java每天10道面试题第7天

    撩课Java+系统架构 视频 点击开始学习 61.什么是并发修改异常? 什么是并发修改异常: 当我们在遍历实现了collection接口 与iterator接口的集合时(List.Set.Map), ...

  3. linux下elasticsearch集成mongodb详细教程

    由于公司业务需要,要用elasticsearch做索引库实现搜索功能,历尽千辛万苦,最后总算把mongodb和elasticsearch集成成功 1.搭建mongodb集群 参考https://www ...

  4. Jenkins2.138配置slave节点时,启动方法只有两个选项

    Jenkins2.138配置slave节点时,启动方法只有两个选项,并没有通过javaweb代理启动这个选项 解决办法 全局安全配置->代理->选择随机选取

  5. MySQL之单表查询练习

    一.emp表 二.练习 1. 查询出部门编号为30的所有员工2. 所有销售员的姓名.编号和部门编号.3. 找出奖金高于工资的员工.4. 找出奖金高于工资60%的员工.5. 找出部门编号为10中所有经理 ...

  6. Java 集合:List(ArrayList,LinkedList)

  7. [POI2005]AUT-The Bus

    树状数组维护前缀最大值+扫描线DP #include"cstdio" #include"cstring" #include"iostream" ...

  8. Maven学习总结(三):修改从Maven中心仓库下载到本地的jar包的默认存储位置

    一:修改从Maven中心仓库下载到本地的jar包的默认存储位置 从Maven中心仓库下载到本地的jar包的默认存放在”${user.home}/.m2/repository”中,${user.home ...

  9. 01.css选择器-->类选择器

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  10. 使用WICleanup清理Windows Installer 冗余文件

    使用WICleanup清理Windows Installer 冗余文件 | 浏览:816 | 更新:2015-11-02 10:43 | 标签:Win7 Win10 1 2 3 4 5 6 7 分步阅 ...