Go-Ethereum

如何探索給定帳戶的所有交易?

  • December 14, 2019

在能夠檢查賬戶餘額之後,我正在尋找一種方法來通過 json-rpc 協議列出給定乙太坊賬戶的所有交易。我在https://github.com/ethereum/wiki/wiki/JSON-RPC上沒有找到任何適合的方法。

類似於https://etherscan.io/txs?a=0xbb9bc244d798123fde783fcc1c72d3bb8c189413我正在嘗試建構一個瀏覽器來顯示來自給定帳戶的所有交易。

如何找到發送到某個地址的所有交易?問了一個類似的問題,但我不是通過第三方尋找解決方案,而是通過 json-rpc 協議直接查詢我的乙太坊節點。

我錯過了什麼嗎?這可以通過 json-rpc 介面來實現嗎?

如果你想建立一個像這樣的探索etherscan.io,你需要爬取乙太坊網路中的所有數據並將所有 txs 保存在數據庫中。

沒有直接的 rpc 方法來獲取與帳戶相關的所有交易。

如何找到發送到地址的所有交易的公認答案?不涉及第三方。

答案中的腳本使用Web3 Javascript API,它:

在後台,它通過 RPC 呼叫與本地節點通信。web3.js 可與任何暴露 RPC 層的乙太坊節點一起使用。

例如,腳本在哪裡執行:

var block = eth.getBlock(i, true);

你可以使用 JSON-RPCeth_getBlockByNumber

按塊號返回有關塊的資訊。

參數

  1. QUANTITY|TAG - 塊編號的整數,或字元串“earliest”、“latest”或“pending”,與預設塊參數中一樣。
  2. Boolean - 如果為 true,則返回完整的交易對象,如果為 false,則僅返回交易的雜湊值。

Javascript API 比發出 JSON-RPC 請求更容易,但您可以將腳本移植到另一種語言並發出 JSON-RPC 請求。此外,請注意對已接受答案的評論,即您需要的不僅僅是腳本來獲得“內部交易”

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