Ice-Storm / ice-storm.github.io

0 stars 0 forks source link

Merkle Patricia Tree (MPT) 树详解之数据持久化(二) · Qin Yuan's blog #1

Open Ice-Storm opened 4 years ago

Ice-Storm commented 4 years ago

http://qyuan.top/2019/10/12/mpt-2/

Merkle Patricia Tree (MPT) 树详解之数据持久化(二) - Qin Yuan

Ice-Storm commented 4 years ago

感觉还不错嘛~

bglmmz commented 4 years ago

key的头部填充一个nibble,填充的规则如下 如果key的nibble长度是偶数则最后一位0 如果key的nibble长度是奇数则最后一位1 如果key是扩展节点则倒数第二位是0 如果key是叶子节点则倒数第二位是1 叶子节点,nibble数量是奇数个,这两个条件得出需要填充的值为 0010 0000 请问:

  1. 为什么不是 0000 0010 ?
  2. key的nibble长度,应该是包括最后的标识位的吧?
Ice-Storm commented 4 years ago

@bglmmz key的头部填充一个nibble,填充的规则如下 如果key的nibble长度是偶数则最后一位0 如果key的nibble长度是奇数则最后一位1 如果key是扩展节点则倒数第二位是0 如果key是叶子节点则倒数第二位是1 叶子节点,nibble数量是奇数个,这两个条件得出需要填充的值为 0010 0000 请问:

  1. 为什么不是 0000 0010 ?
  2. key的nibble长度,应该是包括最后的标识位的吧?
  1. 检查顺序是先叶子节点后判断nibble数量是否是奇树个,所以先填充0010后填充0000。
  2. 根据这两条规则(如果key是扩展节点则倒数第二位是0,如果key是叶子节点则倒数第二位是1)就已经可以判断节点类型了,如果保留表示位则会产生数据冗余。