Go-Ethereum

Geth debug_traceTransaction 中 log.memory.slice 的輸出

  • November 17, 2017

有沒有其他人使用過 Geth 提供的基於 JavaScript 的跟踪器,作為其debug_traceTransaction方法的一部分?

我想在事務執行期間查看記憶體段(具體來說,我想檢索由內部呼叫生成的“輸入”數據)。

使用 JS 跟踪器,可以使用 訪問記憶體log.memory,其中有一個名為log.memory.slice. 文件說,

“將指定的記憶體段作為字節片返回”。

但我不知道這個字節片是什麼格式。

例如,當我請求一個 4 字節長的段時,我得到了這個:"FscnIQ==". 我該如何解釋?

當我在debug_traceTransaction沒有 JS 跟踪器的情況下執行並列印出記憶體時,我看到這 4 個字節應該是"0x16c72721".

同樣,當我在記憶體全為 0 時請求記憶體中的第一個字節時,JS 跟踪器log.memory.slice返回字元串"AA=="。編碼顯然不是十六進制,而且似乎也不是 ASCII。

什麼樣的編碼映射"0x00""AA=="

啊,好吧,我想通了。的輸出log.memory.slicebase64編碼的。

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