「Uniswap 没有以去中心化的方式路由交换。」 使用约束,比如忽略上面提到的 6 个「枢纽」资产,可以探索比当前 Uniswap V2 界面提供给用户的更有效的潜在路由。约束也可以扩展到其他标准,例如 :
同样值得注意的是约束是可组合的 , 也就是说,它们可以组合在一起,这样路由就可以限制为最多 2 个池,每个池的流动性超过 X。当前的数据模型在图数据类型和查找表之间拆分数据,这意味着在图遍历期间和之后发现对数据时都可以修剪路由。 扩展扩展主要考虑向路由器公开一个公共 API,以便基于当前市场数据计算路由。性能是一个函数 :
下图说明了一个初始的系统架构,其中包含用于最常请求路由的缓存和用于计算路由请求影响的缓存对数据。这种架构非常灵活,可以以多种方式进行水平扩展。例如,完全复制图数据结构和路由缓存以及请求聚合器和对缓存,或者简单地复制缓存并在缓存之间分配路由请求。 图 6.0: 具有可扩展组件、缓存和定期更新的路由服务架构。 另一个潜在的可扩展性修改可能是考虑路由请求和数量的完整路由解决方案缓存;如果数量在一定的公差内,最近计算的结果可以重用。根据用户体验和应用程序的需要,最近计算的结果也可以用作临时结果,而为用户计算更精确的结果。 路由缓存路由缓存由最常请求的路由的结果组成,其生存时间 (TTL) 与数据源的定期更新频率相关。例如,如果之前请求过 WETH 和 DAI 之间的一条路由,则可以在路由缓存中以可能路由数组的形式找到图遍历的结果 :[WETH -> USDC -> DAI, WETH -> WBTC -> DAI,…]。与代币价格和储备等对数据不同,路由可能性——特别是配对的存在——变化较少,因此该缓存的 TTL 预期要比对数据缓存大得多。此外,该组件还可以扩展为包含对死路由 (即过期或已被取代的令牌地址或非流动对) 的试探法。 配对数据缓存配对数据缓存包含特定对的代币价格和保留数据,便于计算使用指定数量路由请求的影响。该数据比可用路由选项的变化更频繁,并且将具有大约一个以太坊区块(约 15 秒)的 TTL。 当请求的数据不在缓存中时,这些请求将被捆绑在一起,并从数据源中获取,目前是 Graph 协议中的 Uniswap 子图 (见下面的数据源部分),最多可包含 1000 对数据查询。发送捆绑的对数据请求之前的等待时间将根据流量进行调整——在低流量的场景中,让用户等待直到发出额外请求是没有意义的。 (责任编辑:admin) |