11个开源merkle树实现
Posted 跨链技术践行者
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了11个开源merkle树实现相关的知识,希望对你有一定的参考价值。
Merkle树是一种可以有效验证部分数据存在于指定数据集并且未被篡改的 高效的哈希树结构,作为一种底层技术广泛应用在各种区块链的实现当中, 对于商品溯源、知识产权确认、区块链公证等区块链应用起着重要的作用。 本文介绍11个主流的merkle树开源实现,你可以在自己的项目中应用。
1、ethereumjs/merkle-patricia-tree - 以太坊官方merkle树实现
merkle-patricia-tree是以太坊黄皮书中的改进merkle patricia树的实现。 目前仅支持leveldb作为存储后端。
- 开发语言:TypeScript/javascript
- 源码下载:https://github.com/ethereumjs/merkle-patricia-tree
2、google/Trillian - 大规模可验证数据存储
Trillian是google提供的一个透明的、高度可伸缩的密码学可验证数据存储库,它 采用mysql或MariaDB作为后端存储层,可以支持非常大规模的merkle树。Trillian 通过gRPC提供服务接口。
- 开发语言:Golang
- 源码下载:https://github.com/google/trillian
3、greglook/merkle-db - 用于分析数据集的merkle存储
merkle-db是一个高度可伸缩的基于不可变merkle树的分析数据库,主要 用于存储和访问采用混合列结构的大规模数据集。merkle-db采用Clojure开发。
- 开发语言:Clojure
- 源码下载:https://github.com/greglook/merkle-db
4、nomic-io/merk - Rust高性能键/值库
merk是一个采用Rust开发的高性能键/值库,采用RocksDB作为存储后端, 采用Merkle+AVL作为算法基础数据结构。merk的主要设计场景是应用于 区块链中。
- 开发语言:Rust
- 源码下载:https://github.com/nomic-io/merk
5、ProximaDB - 支持merkle证据的可验证数据库
ProximaDB是一个支持merkle证据的可验证数据库,主要包括数据存储、交易 管理和查询操作这三部分实现。
- 开发语言:JavaScript
- 源码下载: https://github.com/proxima-one/ProximaDB
6、tendermint/iavl - tendermint官方多版本merkle树库实现
iavl是tendermint官方提供的多版本merkle+avl树实现,采用leveldb作为 后端存储层。
- 开发语言:Golang
- 源码下载: https://github.com/tendermint/iavl
7、cbergoon/merkletree - go语言实现的merkle树
merkletree是一个采用golang实现的merkle树,它没有使用数据库等持久化 机制,完全在内存中实现,非常适合理解merkletree的算法,并在此基础上 根据自己的需求加以调整。
- 开发语言:Golang
- 源码下载: https://github.com/cbergoon/merkletree
8、miguelmota/merkletreejs - js实现的merkle树
merlketreejs是JavaScript实现的merkle树生成与验证库,同样没有 后端持久化机制,完全在内存中实现,在单一javascript文件中实现 全部代码,可以用于浏览器环境,非常适合学习理解merkletree的运作机制。
- 开发语言:JavaScript/TypeScript
- 源码下载:https://github.com/miguelmota/merkletreejs
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等工具在浏览器环境中使用。
- 开发语言:JavaScript
- 源码下载:https://github.com/c-geek/merkle
10、quux00/merkle-tree - Java实现的merkle树
quux00/merkle-tree是采用Java实现的merkle树,作者主要将其用于检测 事件序列中的失序事件。项目实现了merkle树的序列化/反序列化,因此为其 增加持久化机制变得非常简单。
- 开发语言:Java
- 源码下载:https://github.com/quux00/merkle-tree
11、SpinResearch/merkle.rs - Rust实现的merkle树
merkle.rs是采用Rust实现的Merkle树,没有后端存储机制,适合原理性学习。
- 开发语言:Rust
- 源码下载:https://github.com/SpinResearch/merkle.rs
以上是关于11个开源merkle树实现的主要内容,如果未能解决你的问题,请参考以下文章
128个数据块的哈希树(Merkle Tree)错误定位问题
区块链学习笔记难度整定,区块形成,区块体,Merkle树,Merkle Proof默克尔证明