1.梅克尔树 / Merkle Tree
通常来讲,首先我们对数据块进行hash化(例如:使用sha256就会使不同大小的块变为256定长),而后对相邻的两个hash结果进行拼接,再进行hash,这样操作直到只有一个顶层hash。当然,有一种特殊情况:如果数据块数量为奇数(如果图上还有L5的话),就可以增加一个L5来进行计算(图上就变为L1,L2,L3,L4,L5,L5进行配对)。
Merkle Tree现有的理论比较成熟,机制原理也较容易理解。问题在于它的应用场景的细节没有相关说明。另外由Java语言实现的,成熟的商业开源方案还处于凤毛麟角的状况。
2.业务需求
最近,InterValue研发团队在开发一个快速同步功能(fast sync),需要把共识节点的海量区块快速同步到新加入的节点,这里面有一个关键的任务是:需要