Go-Ethereum
如何探索給定帳戶的所有交易?
在能夠檢查賬戶餘額之後,我正在尋找一種方法來通過 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-RPC
eth_getBlockByNumber
按塊號返回有關塊的資訊。
參數
- QUANTITY|TAG - 塊編號的整數,或字元串“earliest”、“latest”或“pending”,與預設塊參數中一樣。
- Boolean - 如果為 true,則返回完整的交易對象,如果為 false,則僅返回交易的雜湊值。
Javascript API 比發出 JSON-RPC 請求更容易,但您可以將腳本移植到另一種語言並發出 JSON-RPC 請求。此外,請注意對已接受答案的評論,即您需要的不僅僅是腳本來獲得“內部交易”。