如何利用高效 Mempool 服务在 DeFi 中获利?
交易者分析以太坊 Mempool(内存池),可以大幅提高获取利润的几率
什么是Mempool(内存池)
Mempool是一组已经广播到网络并等待被打包进区块的以太坊交易。Mempool服务可以直接追踪交易的生命周期。当交易被用户广播到节点后,会在Mempool中进行等待,然后交易会被打包进一个区块,或者被网络放弃。一个好的Mempool服务会为你监控这个过程中存在的每一笔交易。你可以在这里了解更多关于Mempool的信息。
Mempool是如何用于DeFi交易的?
交易者分析以太坊 Mempool,以大幅提高获取MEV(矿工可提取价值)的几率。Mempool可以应用的交易策略有多种不同类型。这些策略中的一部分会涉及寻找原本不存在的交易机会。因此,自这些 Mempool 服务进入市场以来,DeFi 交易生态系统已经发生了巨大的变化。
Front running:确定赢得Gas拍卖所需的Gas price。
Back running:根据另一个用户的交易结果,预测交易机会,并将其打包进未来的区块。
Sandwiching:预测交易机会,通过将另一个用户的交易机会推到最大滑点极限,从而预测未来的区块,这将导致在以后的时间(通常是在同一区块内)出现套利机会。
Generic predator(掠夺者):劫持交易调用,希望能在Front running中运行Gas拍卖,从而获取MEV(矿工可提取价值)。这通常是通过用Predator的地址替换原始交易者的地址,并以更高的Gas price提交新的交易来完成的。
参赛者
虽然我们下面讨论的公司和产品提供了各式各样的产品和服务,但我们这次讨论的重点是他们的以太坊 Mempool功能。
BloXroute
BloXroute是一个区块链加速网络(BDN),利用全球服务器网络优化网络性能。他们投入了大量的资源,为以太坊 DeFi交易者和构建者构建网络基础设施。你可以在他们的博客上了解他们的发展。他们的Mempool功能叫做 "订阅 NewTX 流",可以在他们的产品定价页面上找到。在那里你会发现各种其他有用的功能,其中许多功能将帮助您建立一个更强大的DeFi产品,并在市场上获得交易优势。
BloXroute通过websocket连接向您发送Mempool事件。它们的速度非常快并且包含所有信息,这意味着你可以在你的终端进行交易过滤。因此,如果你正在关注Uniswap上的交易,那么你可以简单地根据感兴趣的Uniswap地址进行过滤。
Blocknative
Blocknative运营着一个横跨比特币和以太坊的全球Mempool数据平台。他们专门为以太坊 DeFi交易者和构建者提供Mempool服务。你可以在他们的博客上阅读他们的最新发展。他们的Mempool功能叫做 "Mempool 浏览器",相关信息你可以在他们的产品上找到。
Blocknative会根据你的观察列表,专门通过webhooks向你发送Mempool事件,该列表托管在Blocknative的服务器上。因此,如果你正在关注Uniswap上的交易,就可以简单地将Uniswap地址添加到自己的观察列表中,然后就能开始接收webhook事件。
Alchemy
Alchemy会提供基本的比特币和以太坊节点设施服务。他们为以太坊 DeFi交易者和构建者提供了一个非常方便的API端点。他们的Mempool功能叫做 "alchemy_newFullPendingTransactions",可以在他们的文档中找到。
Alchemy通过websocket连接向你发送Mempool事件,这些事件包含了所有信息,这意味着你要在你的终端进行过滤。因此,如果您正在关注Uniswap上的交易,您可以简单地根据感兴趣的Uniswap地址进行过滤。
性能基准
我们在DeFi交易中广泛地使用了这三种服务,并看到了它们在性能上的巨大差异。下面概述了性能测试结果和获得的所有数据,其中性能是以毫秒为单位的延迟来度量的。我们将所有三个服务连接到我们的keeper机器人上,并监控Uniswap的路由器合同,以及记录每个服务报告传入交易的时间。一旦记录下来,这些信息就被绘制出来,并对公众开放。
假设每笔交易的基线为第一个Mempool服务发现该交易时的基线。所以,第一个发现交易的服务将被定位零延迟,而之后每个服务的延迟将等于它发现它与第一个服务的时间差。
这张图中的数据描绘了一幅非常清晰的图景。 BloXroute的延迟始终运行在零线上。Blocknative的延迟始终比BloXroute的稍差。Alchemy的情况很糟糕,有时甚至会比其他服务晚好几秒。
我们进一步放大来看,Blocknative始终比BloXroute落后175ms左右。如果你正在操作一个每天交易数百或数千次的大型交易,这就会造成很大的差异。
BloXroute在235次交易中率先检测到228次交易。
为什么拥有最快的Mempool服务很重要?
以上实验结果表明,交易者的Mempool服务选择直接影响其盈利能力。根据ethstats.net的数据显示,现在以太坊区块时间平均只有13秒多。落后180ms,或者更糟糕的是1000多ms时将大大削减你的交易利润,减少交易被打包下一个区块的可能性。同时滞后也会减少你在Gas拍卖中的反应时间。
Websockets与Webhooks的比较
值得比较的是这些Mempool服务使用的两种事件交付方式。从技术上讲,Websocket应该更快,然而它的可靠性可能稍差。使用Websocket连接,客户端有可能在断开连接时错过一个事件。而使用Webhooks连接时,你收到的每个Mempool事件都有自己的网络连接,该连接为每个Mempool事件进行事件推送。这可能会增加少量的延迟开销,但同时也增加了一些可靠性。值得一提的是,交易员可能更喜欢较低的延迟,而DeFi产品构建者可能更喜欢相对可靠的。
最佳性能和冗余解决方案
如果您是一名交易员,并且希望在性能和可靠性方面两全其美,这里有一些可能适合你的冗余解决方案。
解决方案A)使用最快的服务,BloXroute,并连接到多个网关。你可以在自己的服务器上运行自己的 BDN 网关,也可以连接到多个托管网关。你也可以指定这些网关分布在不同的地区,这样如果一个地区的网络出现问题,你就不会在一段时间内完全失去Mempool的访问权。
解决方案B)使用多个Mempool服务。这样你就能以尽可能快的速度获取数据,如果一个服务因为任何原因宕机,你还有另一个服务可以依靠。这里唯一的缺点是,它使你的Mempool服务费用成倍增加。
价格比较
所有价格比较均以2020-12-4为基准。请注意,每个服务的功能列表和价格结构是随时可变的。
与其他服务相比,BloXroute的定价是非常大方的。240美元的专业版是非常有价值的,考虑到你得到的是性能最好的Mempool服务与零费率限制,以及大量的其他有用功能。
Blocknative的定价很难与BloXroute的定价相比,原因有几个:首先,他们只提供Mempool服务,所以你不会像BloXroute那样得到任何额外的东西。其次,他们规定了每天的API事件限制,乍一看可能不像是个问题,但实际上是一个巨大的限制。让我们来看看这如何发挥出上面这个基准测试中的信息。
假设你是一个DeFi交易员,你正在利用Back running,你将希望监控所有传入Uniswap的Mempool交易。实际上,你会想在大量的协议上做这件事,比单纯的Uniswap要多得多。但让我们保持简单化,只关注上面使用的一个单一的Uniswap路由器。在基准测试的数据中,让我们把重点放在第一个和最后一个数据输入上,这样我们就可以得到每天的大概交易量,以便与Blocknative的API事件每天的限制进行比较。
测试从这第一笔交易开始,到这最后一笔交易结束。也就是从11381311块到11381328块,时间跨度约为4分钟。在这段时间里,我们评估了235笔交易。大约每秒钟就有一笔交易,由于每天有86400秒,这意味着每天大约有86400笔交易。这大约是Blocknative生产计划的8倍速率限制。这就把你推到了增长计划(Growth),每月833美元。但这其中是有问题的,因为如果Uniswap变得更受欢迎,你会受到速率限制,并被迫跳到每月8300美元的领导者计划(Leader)。这很快就会变得很昂贵。
Alchemy的定价通常是非常灵活的。然而,Mempool特定的定价对你的速率限制表现的不友好。如果你想跟踪交易,这需要你监控所有传入的交易到Uniswap,你会在很短的时间内吃掉你的速率限制。Alchemy甚至在他们的文档中提到了这一点。
alchemy_newFullPendingTransactions 订阅类型的维护成本超级高,而且需要大量的计算单位,因为它发出的是完整的交易信息,而不仅仅是交易哈希。我们不建议非企业层用户长期保持该订阅类型的开放。
使用这些服务 VS 运营自己的节点
一般来说,运行和维护自己的节点并不困难,特别是如果你只是单纯的使用它来进行以太坊调用。然而,Mempool则是一个不同的运行方式。在Mempool交易的早期,交易者会从自己的节点上获取Mempool信息。这就是竞争激烈的地方。谁拥有更好的Mempool基础设施,谁就能在每一次交易机会中比别人略占优势。而当你把这种微弱的优势乘以成百上千的日常交易机会,就会产生巨大的优势。
假如你不想使用这些服务之一,你想自己运营这个网络。你将需要一个散布在世界各个地区的节点网络。理想情况下,你还需要GETH和Parity节点,因为它们的行为有些不同。你甚至可能想要以不同的方式配置各种节点,以反映你预测矿工可能会配置他们的节点的方式。今天大多数矿工都运行GETH,所以你可能可以只运行GETH。但当你有一个大的交易操作时,你要尽可能地覆盖你的基础。
成本也是一个重要因素。你必须考虑到在世界各地的服务器上运行自己的节点的成本。同时也要考虑到你开发一个系统的时间成本,这个系统能够将所有这些交易从你的节点网络路由到你的交易机器人。
结论
BloXroute毫无疑问是最好的以太坊Mempool服务,适用于大规模交易操作的自动化DeFi交易者。他们不仅提供最低的延迟,而且还拥有最友好的速率限制(几乎没有)以及合理的价格。而且虽然我们相信你自己运行的节点,但大多数交易者都不太可能像BloXroute那样低成本、高性能地运营自己的Mempool基础设施。
微信扫描关注公众号,及时掌握新动向
2.本文版权归属原作所有,仅代表作者本人观点,不代表比特范的观点或立场
2.本文版权归属原作所有,仅代表作者本人观点,不代表比特范的观点或立场