# Fantom上的搬砖交易

By [nanzi](https://paragraph.com/@0007) · 2021-11-18

---

这几天开发了一下Fantom上的套利机器人，感觉没那么容易啊。看着别人在各条链上套利很爽，简直是爆赚。就研究了一下，但是发现也有很大门槛。

有一个套利思路是，当有人大笔买入或卖出时，根据交易金额和流动性池的比例关系，会对价格产生对应的影响。或者有人单向添加流动性时，也会对价格造成影响，可以跟踪合约的transactions来实时获取到这种变化。那么如何套利呢？一笔交易从发起到完成，需要多个节点进行确认，节点确认的速度取决于公链的技术实现，以及当时的拥堵程度。而由于是gas费高的优先处理，所以后发起的交易，反而可能优先确认完成。

所以，当你捕捉到一笔大额交易刚发起时，立刻同向下单，并且调高gas费，这样就能保证比它优先确认完成，也就是优先成交。假定这笔大额交易对价格造成了1%的影响，你等它成交后，立刻反向交易平掉刚才的头寸，就获得了1%的收益。这个道理非常简单，就是过去股市上的超高频交易。而加密市场更容易实现，因为超高频交易是毫秒级，而加密市场是秒级，常见的公链，比如ETH一笔需要几十秒到数分钟，BSC需要3-6秒，FTM需要2-3秒。这个时间足够你插队到目标交易前面了。

BUT，当我实际去做时，发现问题很大。我跟踪FTM公链上所有的新交易，当满足我设定的条件时，就发起一笔交易。但实测的情况是这样的：在1637160799960时间发起的一笔交易，我得到交易详细信息时是1637160800318，发现是一笔大额买入交易，此时只过去358毫秒，然后我的程序立刻调用dex合约下单买入，在1637160800649时，显示交易已经提交开始进行节点确认，相比前面，相差331毫秒。我的gas费调到正常的2倍以求最快成交。正常的话，FTM上一笔交易从发起到确认完成，写入区块，需要2-3秒钟，我这个必然会优先成交。但最后成交时发现，我这笔交易比跟踪的大额交易，晚了整整3秒钟，也相差了2个区块。我的交易和目标大额交易，交易路径都是最简单的DAI→目标代币，没有很多的路由。

可能还有很多的优化空间，最佳的是建节点了，所以为啥很多人重金购买节点，除了可以挖矿收手续费外，还可以搞这些套利行为。

---

*Originally published on [nanzi](https://paragraph.com/@0007/fantom)*
