Dieser Link zeigt die letzten 500.000 Transaktionen, und wenn Sie auf jede einzelne klicken, öffnet sich eine Seite mit ihren Informationen, einschließlich Gaslimit, Gaspreis, Gebrauchtgas usw.
Wie kann ich die Informationen für alle 500.000 automatisch abrufen, da dies mühsam und nicht praktikabel ist, dies manuell zu tun.
Die API von Etherscan hat keine Methoden, um eine Liste der letzten N Transaktionen zu erhalten. Die Lösung besteht darin, die Blöcke (mit den Transaktionen) herunterzuladen und die Daten daraus zu lesen.
Unter der Annahme von durchschnittlich 250 Transaktionen pro Block (Quelle: https://bitinfocharts.com/ethereum/ ) mit 5 Anfragen pro Sekunde erhalten Sie die Daten in ein paar Stunden.
Dies kann einfach mit Python durchgeführt werden und Sie können diese Tools verwenden:
https://github.com/corpetty/py-etherscan-api
oder
https://github.com/jfdelgad/etherscanAPI in diesem letzten können Sie einfach tun:
aus etherscanAPI importiere 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]
dann txlist
wird eine Liste von Wörterbüchern angezeigt, die alle Daten der letzten (>) 1000 Transaktionen enthält.
Beispielsweise wird txlis[0] ein Wörterbuch haben:
{'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'}
und Sie können die Parameter zum Beispiel tun: txlist[0]['gas']
hoffe das hilft
gas
Transaktion i
in der Liste abgerufen werden kanntxlist[i]['gas']
myapi.getTransactionReceipt(txhash)
wobei txhash der Hash der Transaktion ist, dann erhalten Sie die Quittung, die den verbrauchten Gaswert enthält.
Raghav Sood
Richard Horrocks
MWH