Transactions
手動驗證交易根
假設我有一個非常簡單的塊,其中一個事務的雜湊是:
0xce70a6b3ae683183e9c4d7c5a22ed5e2cf1f82a38fa67acaa24124b42b258b4a
當我執行時,
eth.getBlock
我得到以下事務根:0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421
假設我有這個
keccak256
功能,我將如何驗證這個根是正確的?即我如何建構和編碼交易嘗試?
您將不得不重建特里。它使用與整個乙太坊相同的 patricia trie 格式。最好的例子是在 wiki
patricia trie 中的項目以路徑-> 值對的形式出現,對於事務 trie,具體路徑是
rlp(transactionIndex)
.transactionIndex
作為它在它被開采的區塊中的索引(由礦工決定的順序)。該值是原始簽名交易。我的 js 庫具有生成證明和驗證證明的功能。它使用 merkle-patricia-tree 節點模組來建構 trie。