dYdX v4技术架构概览

  • dYdX
  • 发布于 2025-02-07 19:35
  • 阅读 17

本文介绍了 dYdX v4 的架构及其核心组件,强调其完全去中心化的特性。dYdX v4 将成为一个独立的 L1 区块链,使用 Cosmos SDK 和 CometBFT PoS 共识协议,支持多种节点类型以及开放源码的前端应用,旨在提升用户体验和交易效率。

v4 技术架构概述

dYdX v4 架构简介

v4(或 dYdX Chain)是 dYdX 协议的下一次迭代,将由开源软件构成。目前运行的版本为 v3,可以在 这里 找到。v3 及过去版本的 dYdX,本质上是部署在现有链上的智能合约,与云中托管的集中服务相结合。v4 将是一个独立的 L1 区块链,拥有完全去中心化的离线订单簿和匹配引擎。dYdX Chain 将基于 Cosmos SDK 和 CometBFT PoS 共识协议。

在我们接近即将发布的 v4 主网开源软件 (“dYdX Chain”)时,我们想提供一个关于 dYdX 团队正在构建的内容的预览。本文呈现了 v4 架构的高层次概述。鉴于 v4 仍在开发中,请注意以下内容可能会有所变动。

v4 系统架构

dYdX v4 的设计目标是实现完全去中心化的端到端体验。主要组件大致包括协议、索引器和前端。这些组件都将作为开源软件提供。dYdX Trading Inc. 不会运营这些组件。

__wf_reserved_inherit

该开源协议为基于 CometBFT 构建的 L1 区块链,并使用 CosmosSDK。节点软件使用 Go 编写,并编译成单一二进制文件。与所有 CosmosSDK 区块链一样,v4 采用股份证明共识机制。

该协议将由节点网络支持。节点分为两类:

  • 验证者: 验证者负责存储订单于内存订单簿中(即离线且未提交给共识),将交易传递给其他验证者,并通过共识过程为 dYdX Chain 生成新区块。共识过程将验证者轮流指定为新块的提议者,使用加权轮换方式(根据质押到其节点的代币数量加权)。提议者负责提出下一个块的内容。当一个订单匹配时,提议者将其添加到所提议的块中,并发起共识轮次。如果⅔或更多的验证者(按质押权重计算)批准该块,则该块被视为已提交,并添加到区块链中。用户将直接向验证者提交交易。
  • 全节点: 一个全节点表示一个运行 v4 开源应用程序的进程,但不参与共识。它是一个质押权重为零的节点,不提交提案或对其投票。然而,全节点连接到验证者网络,参与交易的传播,并处理每个新的已提交块。全节点具有 dYdX Chain 及其历史的完整视图,旨在支持索引器。一些方可能会决定(出于性能或成本原因)运行自己的全节点和/或索引器。

索引器是一个只读的服务集合,旨在以更加高效且与 web2 友好的方式为最终用户索引和提供区块链数据。这是通过从 v4 全节点消耗实时数据,将其存储在数据库中,并通过 websocket 和 REST 请求向最终用户提供这些数据来实现的。

虽然 v4 开源协议本身能够公开端点以处理一些基本的链上数据查询,但这些查询往往较慢,因为验证者和全节点没有优化来高效处理它们。此外,对验证者的过量查询可能会影响其参与共识的能力。出于这个原因,许多 Cosmos 验证者在生产中倾向于禁用这些 API。这就是为什么构建和维护索引器以及与验证者软件分离的全节点软件如此重要。

索引器将使用 Postgres 数据库存储链上数据,使用 Redis 存储离线数据,并使用 Kafka 消费和流媒体传输链上/链下数据到各个索引器服务。

为了建立一个端到端的去中心化体验,dYdX 正在构建三个开源前端:一个 Web 应用程序,一个 iOS 应用程序和一个 Android 应用程序。

  • Web 应用程序: 该网站将使用 Javascript 和 React 构建。网站将通过 API 与索引器交互,以获取离线订单簿信息,并将交易直接发送到链上。dYdX 将开源前端代码库及相关的部署脚本。这将允许任何人通过 IPFS/Cloudflare 网关轻松地从他们自己的域/托管解决方案部署和访问 dYdX 前端。
  • 移动: iOS 和 Android 应用程序分别使用原生 Swift 和 Kotlin 构建。移动应用程序将以与 Web 应用程序相同的方式与索引器交互,并将交易直接发送到链上。移动应用程序也将开源,使任何人能够将其移动应用程序部署到 App Store 或 Play Store。对于 App Store,部署者需要拥有开发者账户以及 Bitrise 账户,以通过应用提交过程。

现在我们对 dYdX v4 的每个组件有了更好的理解,让我们看看在下订单时这一切是如何结合在一起的。当在 v4 上下订单时,将遵循以下流程:

  1. 用户在去中心化前端(例如,网站)或通过 API 下单
  2. 订单被路由到一个验证者。该验证者将该交易传播给其他验证者和全节点,以更新其订单簿
  3. 共识过程选择一个验证者作为提议者。所选的验证者匹配该订单并将其添加到其下一个提议块中
  4. 提议块继续经过共识过程
    1. 如果⅔的验证者节点投票确认该块,则该块被提交并保存到所有验证者和全节点的链上数据库中
    2. 如果提议块未成功达到⅔的阈值,则该块会被拒绝
  5. 块提交后,更新的链上(和链下)数据将从全节点流式传输给索引器。索引器然后通过 API 和 WebSocket 将这些数据提供给前端和/或任何其他查询这些数据的外部服务

上述流程是订单/数据在 v4 中移动的高层次概述。随着我们逐步接近 v4 主网开源软件的发布,我们将进一步深入探索协议、索引器和各个前端的基础设施。

  • 原文链接: dydx.xyz/blog/v4-technic...
  • 登链社区 AI 助手,为大家转译优秀英文文章,如有翻译不通的地方,还请包涵~
点赞 0
收藏 0
分享
本文参与登链社区写作激励计划 ,好文好收益,欢迎正在阅读的你也加入。

0 条评论

请先 登录 后评论
dYdX
dYdX
dYdX is DeFi's Pro Trading Platform | Fully decentralized | Community governed | Enter the Unlimited Era | Not available in US.