Go-Ethereum
如何從 Etherscan 中檢索交易資訊,例如 gaslimit 和 gasprice?
此連結顯示最新的 50 萬筆交易,點擊每筆交易都會打開一個頁面,其中包含 gaslimit、gasprice、usedgas 等資訊。
我怎樣才能以自動方式檢索所有 500k 的資訊,因為手動這樣做既乏味又不切實際。
etherscan 的 API 沒有獲取最後 N 個事務列表的方法。解決方案是下載塊(帶有交易)並從中讀取數據。
假設每個區塊平均有 250 筆交易(來源:https ://bitinfocharts.com/ethereum/ ),每秒有 5 個請求,您將在幾個小時內獲得數據。
這可以使用 python 輕鬆完成,您可以使用以下工具:
https://github.com/corpetty/py-etherscan-api
或者
https://github.com/jfdelgad/etherscanAPI 在最後一個你可以這樣做:
從 etherscanAPI 導入 etherscan
apikey = 'yourAPIkey' myapi = etherscan(apikey, 'mainnet') currentblock = myapi.getBlockNumber() txlist = [] i = 0 txcount = 0; while txcount < 1000: block = myapi.getBlockByNumber(int(currentblock,16)-i) txlist.append(block['transactions']) txcount = txcount + len(block['transactions']) i = i + 1 print(txcount) txlist = [i for sublist in txlist for i in sublist]
然後
txlist
將是一個字典列表,其中包含最後 (>) 1000 個事務的所有數據。例如,txlis
$$ 0 $$會有一本字典:
{'blockHash': '0x60265fe6cffcbd2dc5f3872c4eb151e17919296270210985df3ef2249d99171c', 'blockNumber': '0x63973b', 'from': '0x5e032243d507c743b061ef021e2ec7fcc6d3ab89', 'gas': '0xafc8', 'gasPrice': '0xcce416600', 'hash': '0x940cdd338b4ec8f9b2b63c01a88683f8658f9a388d79873c6bb913b34e579dd8', 'input': '0x', 'nonce': '0x193dd', 'r': '0xcffe406e06ac7f5049798785d1ead4d9420aa763838592e275b997d6efb411d7', 's': '0x5db6e46eae1dae407b4e54c49e50ccb17a41a6569cb848aae021f06d4d7fb450', 'to': '0xf67fa6500b490a05c29a47b40a9e3b72e3044a15', 'transactionIndex': '0x0', 'v': '0x26', 'value': '0x4563918244f40000'}
您可以獲取參數,例如:txlist
$$ 0 $$$$ ‘gas’ $$ 希望這可以幫助