本文通过数据建模构建了一个灵活且可以水平扩展的路由系统架构,其中包含用于最常请求路由的缓存和用于计算路由请求影响的缓存对数据。 原文标题:《用于 DEX 路由器构建和分析的构建区块》 撰文:AleX Carreira 与 PraBhaav Bhardwaj 用一种资产交换另一种资产是金融市场的一个基本概念。在加密货币市场中,这种情况通常发生在代币或货币与他人交换或交易的地方。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 对进行建模时,一开始就需要做出一些实现选择 :
|