代码说明 以sm3的散列模块为基础,用C++代码实现了默克尔树,可以手动输入数据,默克尔树叶节点会生成相应的哈希值,非叶节点会生成相应的联结哈希值。 可以运行test.cpp对该模块的构建默克尔树功能进行简单测试。 运行指导 将源码clone到本地运行main函数即可运行。 软件环境:Visual Studio 2019 硬件环境:PC机
2022-08-22 13:00:09 5KB 默克尔树 C++ hash sm3
1
概述 我最近发现需要在数据处理系统中进行检查点检查,该系统要求任何数据事件都不会丢失,并且任何事件都不能被处理和无序流式传输。 我想要一种在生产中实时自动检测这一点的方法。 有几种方法可以做到这一点,但由于我们的数据事件已经附加了一个签名(一个 SHA1 散列),我决定做检查点的一个有用的方法基本上是保留一个散列的散列。 可以使用来做到这一点,其中保留了每个数据元素的散列链,并且当出现检查点时,会按顺序获取所有这些散列的散列。 此模型的一个缺点是,如果下游系统检测到哈希不匹配(由于消息丢失或消息无序),则必须迭代完整列表以检测问题所在。 一个优雅的替代方案是哈希树,又名默克尔树,以其发明者拉尔夫默克尔命名。 默克尔树 Merkle 树通常被实现为二叉树,其中每个非叶节点都是它下面两个节点的哈希。 叶子可以是数据本身,也可以是数据的哈希/签名。 因此,如果在系统之间检测到根散列的任何
2021-06-17 18:30:57 15KB Java
1
适合学习python和区块链的学者
2021-02-18 11:02:51 694KB 区块链
1