我正在尝试使用 JAVASCRIPT、Geth1.4.11 解决根据开始日期和结束日期获取区块详细信息的问题。
我想要什么?
我想从用户那里获取开始日期和结束日期的输入,并使用该开始日期和结束日期来搜索该块,必须跟踪这些日期之间出现的任何块,并且必须获取这些块的数据。
例如:: 假设在 January 和 March 之间创建了 1000 个区块。我需要获取 2 月 1 日到 2 月 28 日的区块中的 从、到和值详细信息。
我做了什么?(我的方法)
将开始和结束日期分配给变量,从用户处获取。
从0遍历到endBlock。 获取已遍历区块号的时间戳。
将获取到的时间戳与用户输入的开始日期时间戳进行比较,如果匹配,则遍历捕获结束日期时间戳并进行比较。
记录获取开始日期和结束日期的区块编号,然后遍历StartBlock和EndBlock,获取from、to和Value。
面临的问题
遍历使我的网页崩溃,因为它有很多块需要遍历。
我在寻找什么
一个 API,它将开始日期和结束日期作为输入,并给出从、到和值。
优化跳转到开始日期和结束日期块并使用遍历的方式。
或任何此类功能。
遍历使我的网页崩溃,因为它有很多块需要遍历。
这不是一次加载这么多数据的标准方法。我建议你做的是
pagination
。这样您就可以一次又一次地发送数据块。这将使您的页面响应更快并防止崩溃
我知道这是一个老问题,但仍然:
您可以查看 findblock.xyz - 这是一个免费的 API,可以为您搜索大量 EVM 链,您只需要知道它们的 EVM 链 ID。
要查找时间戳之前的最后一个块,您可以执行以下操作:
# For chain ID 1, ETH mainnet
curl -X 'GET' \
'https://api.findblock.xyz/v1/chain/1/block/before/1683707272' \
-H 'accept: application/json'
搜索将是排他的(我的意思是,如果存在具有确切时间戳的块,它将被忽略,并且将返回其父块。要使搜索具有包容性,只需添加
?inclusive
:
curl -X 'GET' \
'https://api.findblock.xyz/v1/chain/1/block/before/1683707272?inclusive=true' \
-H 'accept: application/json'
after
端点
curl -X 'GET' \
'https://api.findblock.xyz/v1/chain/1/block/after/1683707272' \
-H 'accept: application/json'