文档章节

11个默克尔树开源项目

区块链教程
 区块链教程
发布于 02/27 08:54
字数 1109
阅读 172
收藏 0

Merkle树是一种可以有效验证部分数据存在于指定数据集并且未被篡改的高效的哈希树结构,作为一种底层技术广泛应用在各种区块链的实现当中,对于商品溯源、知识产权确认、区块链公证等区块链应用起着重要的作用。本文介绍11个主流的merkle树开源实现,你可以在自己的项目中应用。

区块链开发教程链接:以太坊 | 比特币 | EOS | Tendermint | Hyperledger Fabric | Omni/USDT | Ripple

1、ethereumjs/merkle-patricia-tree - 以太坊官方merkle树实现

merkle-patricia-tree是以太坊黄皮书中的改进merkle patricia树的实现。目前仅支持leveldb作为存储后端。

2、google/Trillian - 大规模可验证数据存储

Trillian是google提供的一个透明的、高度可伸缩的密码学可验证数据存储库,它采用MySQL或MariaDB作为后端存储层,可以支持非常大规模的merkle树。Trillian通过gRPC提供服务接口。

3、greglook/merkle-db - 用于分析数据集的merkle存储

merkle-db是一个高度可伸缩的基于不可变merkle树的分析数据库,主要用于存储和访问采用混合列结构的大规模数据集。merkle-db采用Clojure开发。

4、nomic-io/merk - Rust高性能键/值库

merk是一个采用Rust开发的高性能键/值库,采用RocksDB作为存储后端,采用Merkle+AVL作为算法基础数据结构。merk的主要设计场景是应用于区块链中。

5、ProximaDB - 支持merkle证据的可验证数据库

ProximaDB是一个支持merkle证据的可验证数据库,主要包括数据存储、交易管理和查询操作这三部分实现。

6、tendermint/iavl - tendermint官方多版本merkle树库实现

iavl是tendermint官方提供的多版本merkle+avl树实现,采用leveldb作为后端存储层。

7、cbergoon/merkletree - go语言实现的merkle树

merkletree是一个采用golang实现的merkle树,它没有使用数据库等持久化机制,完全在内存中实现,非常适合理解merkletree的算法,并在此基础上根据自己的需求加以调整。

8、miguelmota/merkletreejs - js实现的merkle树

merlketreejs是JavaScript实现的merkle树生成与验证库,同样没有后端持久化机制,完全在内存中实现,在单一javascript文件中实现全部代码,可以用于浏览器环境,非常适合学习理解merkletree的运作机制。

9、c-geek/merkle - nodejs版本的merkle树

c-geek/merkle是一个nodejs版本的merkle树实现,支持 sha512, sha256, ripemd160, whirlpool, sha1, md5 等多种数据指纹算法,也支持数据不经哈希直接生成merkle树。该项目同样没有后端持久化机制,完全在内存中实现。

c-geek/merkle采用CommonJS封装,主要针对node.js环境,也可以 借助于webpack等工具在浏览器环境中使用。

10、quux00/merkle-tree - Java实现的merkle树

quux00/merkle-tree是采用Java实现的merkle树,作者主要将其用于检测事件序列中的失序事件。项目实现了merkle树的序列化/反序列化,因此为其增加持久化机制变得非常简单。

11、SpinResearch/merkle.rs - Rust实现的merkle树

merkle.rs是采用Rust实现的Merkle树,没有后端存储机制,适合原理性学习。


原文链接:11个开源merkle树实现 — 汇智网

© 著作权归作者所有

区块链教程

区块链教程

粉丝 2
博文 90
码字总数 161042
作品 0
深圳
私信 提问
加载中

评论(0)

深入理解 Bucket Tree

结合了默克尔树和哈希表的特点,如果想要深入了解就必须掌握默克尔树和哈希表。 大多用来进行对比验证处理,特别是在分布式环境下进行比对或验证的时候可以大大减少数据传输量和计算的复杂度...

深入浅出区块链
2019/04/24
0
0
孙启超:支撑区块链中的底层查询系统 | AI 研习社第 57 期猿桌会

区块链经历了比特币 1.0 时代,以太坊 2.0 时代,以及目前正在进行的 3.0 时代,应用领域正在蔓延到各行各业,主要底层技术包含:密码学、共识算法、分布式存储、P2P 网络系统。 虽然比特币至...

丛末
2018/09/17
0
0
把区块链的概念一顿暴看,不如用 Python 亲手写一个! - 知乎

普通程序员如何摆脱 985、996、251 的人生轨迹,走上人生巅峰 ? 除了投身人工智能,我只能想到 区块链 了…… 今年 “区块链” 又结结实实火了一把:脸书发行 Libre、央行推行 DECP 数字货币...

编程教室
2019/12/11
0
0
区块链什么能防篡改?程序员一定要心中有”树“

作为高鸡攻城狮一定要心中有树,因为这个的确能提升底层认知。 希望每人都能够做到心中有树,面对面试高频问题,方能有的放矢。 01. 区块链中的树 体会一下:区块链上交易的篡改,会给区块带...

一猿小讲
04/04
0
0
通俗易懂,揭秘比特币区块的内部结构

0 引言 我们通过前面几期的学习基本对区块链网络中各节点的外部协作有了一个宏观认识,接下来将从更加微观的角度开始学习区块链。你有没有思考过区块链中每个区块内部是什么样的呢?全网如此...

叨笔叨
2018/05/10
0
0

没有更多内容

加载失败,请刷新页面

加载更多

使 egg-multipart 同时支持 stream 和 file

项目中,上传图片是通过 stream,上传excel是通过file 接受的 config.multipart = { // fileSize: '50mb', // 文件大小 fileModeMatch: /^(\/tools\/excel\/import)$/, // '/tools/exce......

osc_z9t307rr
11分钟前
8
0
python 日志模块

之前项目中用的是工具组做的日志模块,用的久了,脑袋里就懒得思考这是如何实现的。毕竟菊厂的开发,忙成狗,不是我所负责的自然只是看看会用就行了。最近开始奋发图强,自然要好好看下基础的...

osc_w4g8kpwc
12分钟前
14
0
java方法、方法重载

java方法 一、Java方法 1. 方法声明 [修饰符1 修饰符2 ...] 返回值类型 方法名(形式参数列表) { 语句... } 2. 方法调用 对象名.方法名(实际参数); 1 public class TestMethod { 2 ...

osc_oq0m8kxk
14分钟前
11
0
python基础入门之十八 —— 模块和包

一、模块 模块能定义函数,类和变量,模块里也能包含可执行代码。 1、 导入模块 import 模块名 from 模块名 import 功能名 from 模块名 import * # 法1:import 模块import mathprint(math...

osc_sejhgcp0
16分钟前
20
0
面试刷题31:分布式ID设计方案

面试中关于分布式的问题很多。(分布式事务,基本理论CAP,BASE,分布式锁)先来一个简单的。 简单说一下分布式ID的设计方案? 首先要明确在分布式环境下,分布式id的基本要求。 1, 全局唯一,...

osc_yva3gh56
16分钟前
15
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部