当前位置:网站首页 > 数字货币招商 >

用于 DEX 路由器构建和分析的构建区块

  • 2021-10-27 16:36:02
  • 168
  • 未知

交换一种资产和另一种资产是金融市场的基本概念。 在密码货币市场上,代币和货币通常发生在与他人交换或交易的地方。 Uniswap是自动流动性协议,有助于这种类型的交换。 可以使用一对或一个池(以下称为一对),使用两个资产的池存量,将一个资产更换为另一个资产。

图1.0 ) uniswap令牌a和b池以及流动性提供者(LP )和交易者交换和存款的示例。 LP接收池令牌提供流动性。

如果某人想要的资产和想要交易的资产不一致,会发生什么? 在这种情况下,在多个对之间进行一系列交换,得到促进该交易所需的资产——的对被称为路由。

图2.0 :涉及多个交易DAI以换取usdc的路由。

路由是从一种资产到另一种资产的路由,由零或多对之间的段组成。 如果交易数量足够多,或者配对流动性足够低,可以通过多条路由形成一条路由,吸收更多来自其他配对的流动性,从而减少滑移点。

图3.0:paraswap路由器描述的多路径路由

图4.0 :多路由

滑移点是指预计支付给资产的价格与实际支付的金额之间的差额。 这是由订单进入市场后到交易执行期间的价格波动、成交量和流动性低等因素引起的。

另一个需要考虑的是路由中的段数。 这以以太网区块链上运用的gas费用的形式增加交易成本。 一条路线上的段数越多,gas费用越高。 同样,在有多种方法的情况下,如上述图3和图4所示,gas的费用也变高。

路由器必须考虑这些因素,以生成适合交易数量的路由。 另外,由于市场情况经常发生变化,影响gas费用和池的流动性,所以生成的路由也是动态的,现在是很好的路由,不一定一个小时后或第二天就能很好地发挥作用。

本文的其余部分介绍了可用于构建和分析Uniswap V2协议及更高版本的路由器的构建块。

数据建模

注意事项:这里提到的Graph协议与下一节中介绍的Graph数据类型不同。 图协议是一个或多个智能合约的区块链交易的索引,图数据类型是指使用数学图论的数据表示。

与使用地图在点之间移动一样,可以使用地图数据类型移动可用的流动性对,并生成可评估的路径以提高收益率。 建模Uniswap对时,从一开始就需要几个实现选择:

作为顶点或边对、符号或资产标识符?

有方向吗,还是没有方向?

简单还是多图?

为了进行这样的选择,理解Uniswap对的属性是很重要的:

每对都有唯一的ID。

每对包含两个标记:符号、名称和ID。

令牌符号不是唯一的——。 例如,符号BOND表示许多不同的资产或不同的ID。

令牌名称也不一定是唯一的。

令牌ID是唯一的,是令牌的ERC-20合同地址。

建议Uniswap对的这些属性使用令牌ID作为图表数据类型的顶点。 由此可知,图的边表示唯一的成对ID。 在这样的形式下,图可以是有向的,也可以是有向的,每边代表一对ID、代币价格、储备。 但是,需要不断更新令牌的价格和存储信息表明,将数据存储在具有适当实时设置的缓存结构中,而不是静态分析更有效、可扩展性更高。

今后,希望在Uniswap V2和V3协议对之间进行路由。 在此场景中,可能存在多个相同的令牌ID。 也可以在对ID之间添加边,但另一个解决方案是通过在同一边上将不同的对ID分组来避免遍历多图的性能成本。 以下是分组对ID的定向图结构的一部分,其中使用符号ID而不是符号名称。

图5.0 :用定向图对uniswapv 2和V3的协议对进行建模(注意,这里很麻烦,因为实际结构中使用的是令牌ID而不是令牌符号)。

最初,深度优先搜索(DFS )证明了可遍历的图形。 深度一般限制为4。 此深度的一个例外是从WETH开始的路由,其连接节点数超过30000个。 如果路线从WETH出发,则为了缩短遍历时间,DFS限制为2。

有许多用于处理图形数据类型的工具,如图形数据库Neo4J和RedisGraph。 这些讨论超出了本文的范围,当前的项目要求可以通过Javascript库Graphlib来满足。 但是,如果路由问题的规模达到了LinkedIn和其他大型网络的规模,上述图表数据库的规模将满足这些需求,权衡成本和开发的复杂性。

约束

在图数据结构中计算根时,约束很有用。 例如,它有助于确定只遍历有限数量对的路线,或忽略包含特定资产的对的路线。

现有的Uniswap V2路线主要通过6个资产路线,这些资产可以比喻为机场枢纽。 这6项资产如下:

WETH

DAI

美国足球甲级联赛

USDT

电脑游戏

MKR

由于这六种资产是常用的,因此与其他资产成对组合时,不适用流动性限制(即不稀缺,也不构成与新的未经证实的加密资产相同的风险)。 然而,这些使用可能会引起效率问题,这里将讨论:

“Uniswap没有以中心化的方式进行交换路由。 ”

使用忽略上述六种“中心”资产等约束,可以搜索比当前Uniswap V2接口提供给用户更有效的潜在路径。 约束也可以扩展到其他标准,如:

通过带有x美元流动性或Y%美元交易的池路由。

通过具有特定定价的特定池进行路由。 (适用于Uniswap V3协议)。

另请注意,约束是可组合的。 也就是说,路由最多限制为两个池,每个池的流动性可以超过x。 当前的数据模型在图数据类型和查找表之间划分数据。 也就是说,如果在图的扫描过程中和扫描之后都检测到了对数据,则可以修剪路径。

扩展

扩展考虑主要向路由器发布通用API,以根据当前市场数据计算路由。 性能为函数:

计算路由时间

如果需要,获取对数据进行更新的时间。 (代币的价格和存货) )。

计算路由请求的影响所需的时间

下图显示了初始的系统体系结构,其中包括最经常请求路由的缓存,以及用于计算路由请求影响的缓存到数据。 该体系结构非常灵活,可以通过多种方式水平扩展。 例如,完全复制映射数据结构和路由缓存、请求聚合器和成对缓存,或者只复制缓存并在缓存之间分配路由请求。

图6.0:具有可扩展的组件、缓存和定期更新的路由服务架构。

另一个潜在的可扩展性变化可能是考虑到路由请求和数量的完整路由解决方案缓存。 如果数量在一定的公差内,可以重复使用最近计算的结果。 根据用户体验和APP需求,还可以使用最近计算的结果作为临时结果,为用户计算更准确的结果。

路由缓存

路由缓存由最经常请求的路由结果组成,生存时间(TTL )与数据源的定期更新频率相关。 例如,以前请求WETH和DAI之间的路由时,在路由缓存中以可能的路由数组的形式查找图遍历结果:[WETH - USDC - DAI,WETH - WBTC - DAI, ] 与令牌价格和储备等配对数据不同,路由可能性——,特别是配对的存在——变化不大,因此预计该缓存的TTL远大于数据缓存。 此外,还可以将该组件扩展到一个死路由,即包含过期或被替换的令牌地址或非流对的启发式算法。

配对数据缓存

对数据缓存包含特定对的令牌价格和保留数据,以便于计算使用指定数量的路由请求所带来的影响。 与可用的路由选择相比,此数据经常更改,并变为具有约15秒的以太网块的TTL。

如果请求的数据不在缓存中,则这些请求将被绑定并从数据源中检索。 现在是Graph协议的Uniswap子图,请参见以下数据源部分。 最多可以包含1000组数据查询。 发送捆绑的数据请求之前的等待时间将根据通信量进行调整。 在——流量少的场景中,让用户等待直到发出其他请求是没有意义的。

另外,为了提高用户体验,在获取和计算更新数据时,可能会出现基于旧数据的预先结果。

通过将生成的路由与现有Uniswap V2路由器的路由进行比较,来评估

静态分析

路由的性能。 具体而言,计算规定数量的源令牌的收益。 例如,在从DAI到COMP的事务中,路由器的性能计算从100万个DAI令牌接收到多少COMP,并检查从Uniswap V2路由器推荐的路由中得到的结果相同性能基于各种输入进行测量,包括初始数量的差异和搜索深度的限制。

执行静态分析时,不需要如图6.0所示的数据缓存和包请求。 静态分析是区块链在特定区块时间内的事务处理计算。 这有助于结果的一致性和再现性以进行比较。 为Uniswap V2设计新路由器时的初始工作范围由静态分析辅助。 静态分析允许您在一个块时间内评估一系列事务,并将其与现有路由算法或变型进行比较。 如果潜在配对数据发生变化,交易结果的改善或下降是由于算法的变化,还是配对流动性和定价,则尚不清楚。

随着

数据源

区块链技术的成熟,提供区块链当前和历史数据的服务大量涌现。 数据源选择包括以下注意事项:

预算

开发工作和成本

延迟

数据的正确性

开发工作和成本可以通过使用预先消化或编制索引的数据来减少,正如在Graph Protocol的许多子图中发现的那样。

使用图形协议的uni交换子图设计和实现初始交换机路由器。 这个数据源非常易用,可以分析过去的合同数据。 否则,需要更昂贵的归档以太网节点,无需进行静态分析,只需一个HTTP请求就可以更新1000组数据。 Graph Protocol的数据延迟远远低于上述解决方案,只能通过直接运行以太网节点、对内存池建模或使用Blocknative等服务来取胜。 Graph Protocol的延迟明显为1个块左右,可以根据索引场景进行动态更改。 值得注意的是,如果索引和映射块被证明无效,则数据也可以更改。

对交换机路由器的设计进行了评估,证明了该数据源不适合生成路由,因为实时数据必须具有竞争力。 在这样的场景中,需要直接从区块链的当前状态(例如来自Alchemy、Infura或其他源的以太节点)获取数据。

未来

上述系统分析了现有Uniswap系统的性能,为在协议上构建包含成熟事务解决方案的新系统提供了灵活性和可扩展性。 也有一些高级功能对专业客户很重要,如Coinbasevs Coinbase Pro和Synthetix vs Kwenta。 以下列举几个。

交易生成器

通过用于避免上述六个中心令牌的限制,本文所描述的系统可以用于检查某些令牌之间的替代路径及其效率。 这是定期进行的,可以构建一个基于启发式的列表,现有系统/贸易伙伴可以使用该列表来改进这些对的建议路由或允许其他更改。

通过添加

跨协议路由

图形、交替多图形数据结构或数据源,可以扩展系统,为用户提供Uniswap V2和V3协议资产之间的路由。 根据目标不同,可以减少交易中的转折点,也可以管理分散的流动性。

跨层路由

类似于交叉协议,路由器可以扩展为生成跨层路由。 gas在降低成本和提高事务带宽方面的努力表明,第2层解决方案将有助于定义以太坊未来的较大部分。 L2和L1资产之间的交叉提出了比协议交叉更复杂的新的路由挑战。 然而,相同的基本构造块可以生成允许跨层交易的解决方案,并可以利用未来的协议(如Hop Protocol、Nova等)来实现其目的。

通过

MEV

路由解决方案与Flashbots等MEV防范技术的结合,该路由系统可以用于保护大宗交易免受攻击。 启发式和其他输入将确定交易的价值是否足以代表这一风险,并自动将保护解决方案集成到确定的最优路径所建议的交易解决方案中。

低延迟数据源和预测路由

Graph Protocol数据源方便快捷,但通常至少有一个块的延迟。 在一些交易APP上,这可能不够。 在这方面,可以直接绑定到以太网节点或过滤感兴趣的事务来更新路由系统的数据结构,而不是其他性能更高的数据源。 此外,还可以构建内存池的有限描述,并应用类似的事务过滤,以提供未执行的已知事务状态下的预测路由选择结果。

  • 关注微信

猜你喜欢

.

行情资讯

  • NFT改名“数字藏品” 互联网巨头需要解决的痛点
  • 上海市出台专项规划 利用区块链等技术推进城市
  • 为什么模块化的区块链是加密行业最好的扩容方
  • 一文读懂以太坊扩容方案
  • 为什么《纽约时报》需要token化?
  • 从Layer 0到Layer 2 一文概述状态通道的数学解释
  • 美国职业摔角上市公司WWE将推出NFT市场
  • SBF:FTX计划通过收购加密公司在全球扩张
  • SHIB市值超越DOGE 排名升至第九位
  • 全球比特币ATM安装总数超过三万台

联系我们

微信咨询