Blocks

列出一個區塊的所有交易

  • June 25, 2021

在一個程序中,我想處理一個乙太坊區塊的所有正常交易的列表。特別是對於區塊中的每筆交易,都需要傳輸的 ETH 值、發送者地址和接收者地址。

探索者有這樣的列表(例如https://etherscan.io/txs?block=12702435),但我找不到在一個 API 呼叫中直接提供此資訊的 API。

分兩步即可:

  1. 獲取所有 txhashes,例如。https://api.blockcypher.com/v1/eth/main/blocks/12702435
  2. 獲取每個 txhash 的發送者、接收者和數量 但是,由於 API 速率限制,此解決方案也很困難

非常感謝您的幫助!

@user216:感謝您的評論。事實上,一個簡單的方法是安裝 geth 並執行一個輕節點

geth --syncmode "light"

然後通過 pip 安裝 web3。之後下面的 Python 程式碼工作:)

w3 = web3.Web3(web3.Web3.IPCProvider('/home/user/.ethereum/geth.ipc'))
block = w3.eth.get_block(12704257) # example for a recent block
for tx_hash in block['transactions']:
   tx = w3.eth.get_transaction(tx_hash)
   tx_obj = {'addr_sender': tx['from'], 'addr_receiver': tx['to'], 'value': tx['value']}

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