100 同区块下Gas Price,夹子是如何自动获取列队里最高的Gas Price

同区块下Gas Price,夹子是如何自动获取列队里最高的Gas Price 11.png

22.png

如果有大佬懂的· 麻烦帮我讲清楚原理· 万分感谢·

我分析是监测队列中的交易,检测最高的那个· 但是夹子都是在一瞬间完成交易的· 如果加上判断·会不会来不及!

请先 登录 后评论

最佳答案 2022-03-19 22:11

有很多环节可以做这件事,只是快慢有所不同,根据交易发出的流程,可以分析出有以下几个环节

  1. 发交易的数据被截获。这个可能性较低,确保自己的服务器没有木马,连接用https就可以杜绝。
  2. 接收交易的节点。我们通常是用别人提供的节点,例如infura,理论上他们是最早得到交易信息的,如果有人跟他们合作,获取交易信息,那就有很大的又是。特别是BSC,基本上都是连那几个节点发交易。
  3. 矿池。节点收到交易后,理论上回广播出来,这样很快所有的矿池都能收到交易。因此跟矿池合作可以很快的拿到交易,得到交易列表。
  4. web3接口。这个基本上是最慢的方式了,而且很多节点不支持获取pending交易,如果想通过这种方式做夹子,基本上是不可能成功的。

关于交易是如何到节点,怎么广播的,可以看这边文章 交易入队列 :: 以太坊技术与实现 (learnblockchain.cn)

我们之前遇到过一种非常特殊的情况,就是交易总是被抢先,对方总是能比我们高出0.01GWei抢在我们前面,后来我们做了一个测试,一单发现交易机会,就直接连续发送多笔GAS递增的交易,但是很神奇的是对方还是能够非常精准的以0.01GWei优势抢在我们前面。下面是一对我们被针对抢先的交易链接,仔细看看还有很多类似被针对抢先的交易记录。 https://etherscan.io/tx/0x1e8d0f58473b2ffc7924499d82f7c4e38416ed54d23f36cfb6f666d500f6fe9b https://etherscan.io/tx/0x3a3648f1ce2d991ec5d273289f1a0b2dd027ef8af1ef7917d6f54dfb3d5cf185

发现这个问题后,我们更换了节点,然后情况就好了很多,想想,是不是细思极恐。

因此,如果是这种情况,不要想着监听了,直接连续往上发,都抢不赢,何况是你先监听消息再发呢。比较靠谱的办法,就是跟能够先得到消息的合作,比如节点,矿池。

请先 登录 后评论

其它 1 个回答

石头
请先 登录 后评论
  • 5 关注
  • 5 收藏,3921 浏览
  • 天堂 提出于 2022-03-18 20:26