簡體   English   中英

如何通過 web3 從塊中獲取交易歷史記錄?

[英]how to get transaction history from blocks via web3?

我現在有一個私有鏈,我想查詢交易歷史。我知道 web3 提供了這些方法web3.eth.blockNumber / web3.eth.getBlockTransactionCount / web3.eth.getTransactionFromBlock 所以我可以通過獲取最新的塊號(假設它是 n)來獲取交易歷史記錄。 范圍從 n 到 0 調用 web3.eth.getBlockTransactionCount(i),然后通過 web3.eth.getTransactionFromBlock 獲取交易。 但這只是浪費時間且效率低下。 所以我想知道如何通過 web3 或 rpc 或其他方式從有效的塊中獲取交易歷史記錄?

對於每個塊,您可以將true作為第二個參數傳遞給getBlock

web3.eth.getBlock(blockHashOrBlockNumber [, returnTransactionObjects] [, callback])

此代碼將按塊號提供Transactions詳細信息。

async function GetBlocks(BlockNumber){
    Block =await web3.eth.getBlock(BlockNumber)
    Block.transactions.forEach(async(transaction) => {
        let t=await web3.eth.getTransaction(transaction)
        console.log(t)
    })
}
GetBlocks(26154210)

如果你有塊數組。 例如塊=[10000,10001,10002,10003...]。 然后像這樣使用 for 循環:-

Blocks.forEach(e => {
    GetBlocks(e)
});

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM