首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何对内存池隐藏事务?

如何对内存池隐藏事务?
EN

Ethereum用户
提问于 2021-04-16 00:09:21
回答 2查看 1.5K关注 0票数 3

我正在测试阻止程序的内存池资源管理器(https://explorer.blocknative.com),并注意到许多挂起的事务实际上在它捡起它们时就已经确认了,我可以通过比较以太扫描和内存池的pendingTimeStamp参数上的时间戳来看出这一点。考虑到阻止程序的内存池应该只有几毫秒的延迟,我想知道这些事务是否对txpool隐藏了?

EN

回答 2

Ethereum用户

回答已采纳

发布于 2021-05-06 20:19:51

肖恩分块打来的。谢谢你张贴这个问题!

以太扫描显示使用块标头的timestamp字段报告块时间戳。blockTimeStamp字段中已确认的事务的Blocknative也报告了这一点。这一次是在构造块时(在实际挖掘之前)由小块设置的。注意,矿工对这个值有一定的控制,因为它不是加密验证的,但是有一些约束,如https://ethereum.stackexchange.com/a/428中所描述的。

Blocknative报告它在timeStamp字段中所有事务状态更改的检测时间,并保留pendingTimeStamp字段,以便与任何后续事务状态进行时间比较。检测是由自定义的节点客户端组成的全局网络确定的,该网络具有策动的窥视功能,以尽量减少检测延迟。

如果您提供特定的事务,我们的团队可以查看具体的情况。您可以轻松加入我们的不和谐社区,并与我们在那里聊天。https://discord.gg/KZaBVME

要了解我们的内存池数据基础设施,请访问https://www.blocknative.com/advantage

票数 2
EN

Ethereum用户

发布于 2021-04-16 00:58:45

--只是一个缓慢的节点.

当一个节点接收到一个事务时,它将它发送到其他连接节点,然后由其他连接节点发送到其他连接节点(重复),直到所有节点的内存池中都有事务。这个过程需要一些时间(但不多)。

在挖掘块之前发送的事务可能会在矿工有时间到达您的节点(或Mempool的节点)之前被捕获。在这种情况下,你会认为它是确认的,而没有事先在备忘录中看到它。

节点可以通过增加连接到的节点数量来降低发生这种情况的几率,而代价是带宽。

还是暗池!

但是,矿工可以设置一个暗池。如果您事先与经营暗池的矿工达成协议,您可以执行以下操作:

  1. 将您的事务发送到该矿工节点,并且只发送到该矿工。
  2. 矿工会将您的事务保存在它的内存池中,但是通过覆盖默认代码(geth,parity),他将不会向任何人广播它。
  3. 当最终轮到矿商开采一个区块时,他会将您的交易包含在区块中。

事实上,这将隐藏您的交易对任何人,但矿工,直到它最终得到确认。缺点是,你不知道什么时候轮到矿商开采一个区块,而且要花很长时间才能确认你的交易。

在结论中

要么您看到了其中一个罕见的暗事务,要么Mempool资源管理器没有连接到足够多的节点,因此它有时会在事务被确认之前错过事务。

票数 4
EN
页面原文内容由Ethereum提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://ethereum.stackexchange.com/questions/97311

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档