Transactions

手動驗證交易根

  • October 26, 2018

假設我有一個非常簡單的塊,其中一個事務的雜湊是:

0xce70a6b3ae683183e9c4d7c5a22ed5e2cf1f82a38fa67acaa24124b42b258b4a

當我執行時,eth.getBlock我得到以下事務根:

0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421

假設我有這個keccak256功能,我將如何驗證這個根是正確的?即我如何建構和編碼交易嘗試?

您將不得不重建特里。它使用與整個乙太坊相同的 patricia trie 格式。最好的例子是在 wiki

patricia trie 中的項目以路徑-> 值對的形式出現,對於事務 trie,具體路徑是rlp(transactionIndex). transactionIndex作為它在它被開采的區塊中的索引(由礦工決定的順序)。該值是原始簽名交易。

我的 js 庫具有生成證明和驗證證明的功能。它使用 merkle-patricia-tree 節點模組來建構 trie。

引用自:https://ethereum.stackexchange.com/questions/35784