根据时间戳获取区块详细信息

问题描述 投票:0回答:2

我正在尝试使用 JAVASCRIPT、Geth1.4.11 解决根据开始日期和结束日期获取区块详细信息的问题。

我想要什么?

我想从用户那里获取开始日期和结束日期的输入,并使用该开始日期和结束日期来搜索该块,必须跟踪这些日期之间出现的任何块,并且必须获取这些块的数据。

例如:: 假设在 January 和 March 之间创建了 1000 个区块。我需要获取 2 月 1 日到 2 月 28 日的区块中的 从、到和值详细信息。

我做了什么?(我的方法)

将开始和结束日期分配给变量,从用户处获取。

从0遍历到endBlock。 获取已遍历区块号的时间戳。

将获取到的时间戳与用户输入的开始日期时间戳进行比较,如果匹配,则遍历捕获结束日期时间戳并进行比较。

记录获取开始日期和结束日期的区块编号,然后遍历StartBlockEndBlock,获取from、to和Value。

面临的问题

遍历使我的网页崩溃,因为它有很多块需要遍历。

我在寻找什么

一个 API,它将开始日期和结束日期作为输入,并给出从、到和值。

优化跳转到开始日期和结束日期块并使用遍历的方式。

或任何此类功能。

javascript datetime blockchain solidity geth
2个回答
0
投票

遍历使我的网页崩溃,因为它有很多块需要遍历。

这不是一次加载这么多数据的标准方法。我建议你做的是

pagination
。这样您就可以一次又一次地发送数据块。这将使您的页面响应更快并防止崩溃


0
投票

我知道这是一个老问题,但仍然:

您可以查看 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'
© www.soinside.com 2019 - 2024. All rights reserved.