Go-Ethereum
如何跟踪私有乙太坊區塊鏈中的交易
我對交易收據中的“root”值感到有些困惑
根據我的理解,根是指向塊中前一個塊的值,
但是當我嘗試通過 root 的值跟踪該塊時,它顯示 null 或未找到我嘗試了以下兩種方法
debug.traceBlockByHash(“hash(根的值)”)
和
eth.getTransactionReceipt(“hash(根的值)”)
但無法跟踪根塊
供參考:- 我的交易收據
{ blockHash: "0x38745b73aaca70ae40dd4f89e039dd4afb90cf606308701548200d8a757e69be", blockNumber: 10897, contractAddress: null, cumulativeGasUsed: 73966, from: "0xf0606aab9ed3f89a4167b43ce4eed4ff8f4cc195", gasUsed: 32855, logs: [], logsBloom: "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 000000000000000000000000000000000000000000000000", root: "0x25eba79d41fbe9d11c8a82a2b1629784e80e7c5322832f5386d13b5bd211c8e2", to: "0x742c8105ba6cfd99ff20ffc19332a9782caecb8a", transactionHash: "0xb3645970eecb8b2b1e00d2b2f4bff5bab90bbdcb36300ad44348a0e954073f22", transactionIndex: 1 }
以下是我收到的輸出
> debug.traceBlockByHash("0x25eba79d41fbe9d11c8a82a2b1629784e80e7c5322832f5386d13b5bd211c8e2") { error: "block #25eba79d41fbe9d11c8a82a2b1629784e80e7c5322832f5386d13b5bd211c8e2 not found", structLogs: null, validated: false }
和
> eth.getTransactionReceipt("0x25eba79d41fbe9d11c8a82a2b1629784e80e7c5322832f5386d13b5bd211c8e2") null
另一件令人困惑的事情是我在交易收據中看到的塊號對於連續交易不是連續的,即。如果我的第一張交易收據有
區塊編號:10849
然後
下一個是 10853
接下來是10865
這個塊號是怎麼產生的??
您可以用 來標識一個塊
blockHash
,它是塊的雜湊值,或者blockNumber
是塊在鏈中的位置。塊可以包含多個交易並且即使其中沒有交易也會生成,因此不應期望它們會隨著您的交易而增加。blockNumber
有時稱為“高度”。如果您想查看生成的塊,請查看節點的控制台或日誌輸出。您可以使用 獲取塊資訊
eth.getBlock()
。向它傳遞一個塊雜湊或塊號。您可以通過 獲取交易資訊
eth.getTransaction()
。將您感興趣的交易的交易雜湊傳遞給它。
eth.getTransactionReceipt()
還需要一個事務雜湊。您不需要
root
任何您提到的目的,但如果您好奇它是什麼,請參閱:交易收據的“根”是什麼?