以太坊数据上块了还会变吗?

问题描述: 1,有扫块的需求,所以我把扫到的每个块都做了日志 2,扫块的逻辑是,先用getBlockNumber获取当前最新的块号,然后对比本地的块号,差值用getBlock获取 3,今天发现有条数据没扫到,就去查日志。

4,查找的流程 1)客户反馈有条交易漏了,我查交易,找到块号 2)在日志里找到对应的块号 3)打开日志,发现客户反馈的交易就没在日志里 4)从新获取下那个块,发现客户反馈的交易是在块里的 5)再仔细看下日志的那个块里的信息,从中随便找几个哈希去以太坊浏览器上搜下,发现块号根本就不是日志的那个 6)这个块的日志,我获取到了就保存,肯定没有做二次处理。而且把别的块的信息放到其他块日志这种复杂操作,也不是代码写错就能做出来的 7)我找了下别的日志,随便搜几个哈希,块号也都是对的 8)所以我只能认为,是以太坊块信息有变化,但是这东西如果会变的话,岂不是就坑了,所以不太明白这个事儿

请先 登录 后评论

最佳答案 2023-07-07 11:31

区块会出现分叉被回滚的情况,具体来说,比如交易A被打包到区块1000里,1000区块被回滚的话,A就会重回交易池,被其它的区块重新打包。

一般来讲,做ETH的扫块需求的话,都会加延迟区块,比如延迟6个区块,扫的区块 就是 getBlockNumber - 6

这个延迟区块的讨论可以看看 这个链接 https://blog.ethereum.org/2016/05/09/on-settlement-finality

请先 登录 后评论

其它 1 个回答

小蘑菇云
请先 登录 后评论
  • 2 关注
  • 0 收藏,1545 浏览
  • 小蘑菇云 提出于 2023-07-07 11:13