State Hash その2追記
はじめに
State Hash その2 要素が1つだけの場合のsubCacheMerkleRootsの計算の追記です。
RocksDBにはまだあった
元の記事でFastNoSQLのスクショをあげていました。
このとき、DBにはdefaultしか表示されてませんでしたが、まだありました。
height_groupingとpatricia_treeというDBがありました。
これらについては、実はslackの方で教えてもらっていたのですが、GUI上には出てこなかったのでスルーしてました。
表示する
Load databaseをクリック。
赤くなってるやつを右クリックしてLoad content of databaseをクリック。
赤くなってないやつを右クリックしてset defaultをクリック。
赤いやつを右クリックしてLoad content of databaseをクリック。
みてみる
height_grouping
height_groupingには0レコード。これは確か有限期間のモザイクを指定していた場合にレコードができていたような気がします。
Jaguar0625さんに教えてもらった言葉を引用します。
"height_grouping" (key: height, value: list-of-mosaic-ids-expiring-at-height): this is secondary index (can be computed from 1)
patricia_tree
Jaguar0625さんに教えてもらった言葉を引用します。
"patricia_tree" (key: hashed-mosaic-id, value: hashed-mosaic-entry) OR (key: hashed-tree-node, value: tree-node): the tree nodes composing the patricia tree (can be computed from 1)
patricia_treeは2レコード。
rootレコードにはsubCacheMerkleRootが入っていました。
key: root
value: 5d8eead5907130d297c322698f3d201a78d629cac87487a0f4f890c1277b250c
もう一つのレコードはleaf node。
key: 5d8eead5907130d297c322698f3d201a78d629cac87487a0f4f890c1277b250c
value: ff4014979a1134c38c8a5c7c7e3669ce7aa98c2d46225f77645a1fc6e7a30ff5c5dab6bcae57d970e08bc94701a8333f081b633554fe5282ab2d841d17f9b93e9b2d
このPatricia Treeはただひとつのleaf nodeをもっているので、そのkeyがsubCacheMerkleRootと一致しています。
valueを分解します。
ff // ffならleaf node, 00ならbranch node
40 // 後に続くnibbleの数 0x40 = 64nibble = 32byte
14979a1134c38c8a5c7c7e3669ce7aa98c2d46225f77645a1fc6e7a30ff5c5da // hashed mosaic id
b6bcae57d970e08bc94701a8333f081b633554fe5282ab2d841d17f9b93e9b2d // hashed mosaic entry
このような情報が入っていました。
このleaf nodeのhashは以下の計算式で求められます。これは、keyと一致します。
sha3(20 + hashed mosaic id + hashed mosaic entry)
(= 5d8eead5907130d297c322698f3d201a78d629cac87487a0f4f890c1277b250c)
おわりに
頭が混乱してきました。
シリーズ
State Hash その1 subCacheMerkleRootsからstateHashの計算
Author And Source
この問題について(State Hash その2追記), 我々は、より多くの情報をここで見つけました https://qiita.com/planethouki/items/03cc5ac3b655f7bd1f45著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .