本系列文章将深入探讨 dYdX v4 的各个技术组件,v4 将是 dYdX 链上一个完全去中心化的、由社区拥有的版本。
在本系列的第一篇文章中,我们探讨了 dYdX v4 的整体架构。在第二篇文章中,我们深入探讨了前端(Front-End)和 API。在第三篇文章中,我们重点介绍了验证器(Validators)和哨兵节点(Sentries)。
本文将重点介绍 dYdX v4 的索引器(Indexer)。
什么是索引器?
索引器是 dYdX v4 的一个关键链下组件,负责从 dYdX 链(基于 Cosmos SDK 构建)读取和索引数据,并为用户提供高性能的 API 和数据服务。
索引器的主要作用是高效地组织和提供区块链数据,以便用户可以轻松访问和理解这些信息。它通过监听和处理来自 dYdX 链的区块链事件、交易和状态变化来实现这一点,然后将其转换为结构化的、可查询的格式。
为什么需要索引器?
虽然 dYdX 链本身通过其全节点(包括验证器和哨兵节点)提供基本的查询功能,但索引器通过提供专门为交易应用程序量身定制的高性能、复杂的查询功能,极大地增强了用户体验。
如果没有索引器,直接从区块链查询某些类型的数据(例如特定用户的交易历史或订单簿的当前状态)可能会非常缓慢且繁琐。索引器通过维护一个针对快速读取访问优化的、包含相关区块链数据的数据库来解决这个问题。
索引器的主要功能
dYdX v4 索引器提供以下关键功能:
1. 数据索引和存储:索引器监听 dYdX 链发出的区块链事件,处理这些事件,并将相关数据存储在其数据库中。这包括诸如订单、交易、头寸、资金等数据。
2. API 服务:索引器提供一个 REST API 和一个 WebSocket API,允许用户和前端应用程序查询各种数据,例如:
* 市场数据(订单簿、交易、资金费率等)
* 用户数据(余额、头寸、订单、填充交易(fills)、转账等)
* 历史数据(过去某个时间点的市场数据、用户活动等)
3. 数据聚合:索引器聚合来自区块链的数据,以提供有意义的见解,例如计算订单簿的买卖盘深度、交易量、未平仓合约等。
4. 实时更新:通过 WebSocket 连接,索引器可以向客户端推送实时更新,例如新的订单填充、市场数据变化或账户状态更新。
索引器架构
dYdX v4 索引器由几个协同工作的组件组成:

1. 数据监听器(Data Listener):该组件连接到 dYdX 链的全节点(通过 gRPC 和/或 Tendermint RPC),并实时监听新的区块、交易和事件。它捕获与 dYdX 协议相关的所有相关事件(例如订单放置、取消、填充、转账等)。
2. 事件处理器(Event Processor):数据监听器收到事件后,事件处理器会解析这些事件,并将其转换为更结构化、更易于查询的格式。
3. 数据库(Database):处理后的数据随后被存储在一个高性能的数据库中(例如 PostgreSQL),该数据库针对快速读取和复杂查询进行了优化。数据库模式(schema)的设计旨在高效地表示 dYdX 协议的状态和历史。
4. API 服务器(API Server):API 服务器暴露 REST 和 WebSocket 端点,处理传入的客户端请求。它查询索引器的数据库以获取所需信息,并将结果返回给客户端。
5. 辅助服务(Auxiliary Services):索引器还可能运行额外的后台服务,用于执行诸如计算统计数据、生成历史数据快照或处理数据保留策略等任务。
深度探讨索引器如何工作
索引器操作的工作流程可以概括如下:
1. 监听:索引器连接到 dYdX 链节点,并开始监听新区块和相关事件。
2. 处理:对于每个新区块,索引器解析其中包含的事件和交易。它提取与 dYdX 协议相关的信息(例如订单操作、交易、资金费率更新)。
3. 存储:提取的数据经过处理并存储到索引器的数据库中。这通常涉及更新现有记录(例如,订单填充后更新订单状态)或插入新记录(例如,新的交易或订单)。
4. 服务:当客户端通过 REST 或 WebSocket 向索引器的 API 发出请求时,API 服务器会查询数据库并返回请求的数据。对于订阅(通过 WebSocket),服务器会在新数据可用时主动推送更新。
去中心化与索引器
在 dYdX v4 的背景下,一个常见的问题是:索引器是去中心化的吗?
答案是:索引器本身是一个链下组件,但它是开源的,并且可以被任何人运行。虽然 dYdX 交易公司或其他实体可能会提供公共索引器服务,但社区成员也可以选择运行自己的索引器实例。这确保了用户不必依赖单一的中心化数据提供商。
运行一个索引器需要访问一个 dYdX 链的全节点(例如哨兵节点),并且需要足够的计算和存储资源来处理和存储区块链数据。
结论
dYdX v4 索引器在为用户和交易应用程序提供高效、可访问和丰富的区块链数据方面发挥着至关重要的作用。通过将原始区块链事件转换为结构化的、可查询的信息,索引器实现了高性能的交易体验和深入的数据分析。
随着 dYdX v4 开发的继续,索引器将不断发展,以支持新功能并提供更强大的数据服务。
资源:
[dYdX v4 文档](https://docs.dydx.exchange/)
[dYdX v4 GitHub 仓库](https://github.com/dydxprotocol/v4)
[dYdX 论坛](https://forums.dydx.exchange/)

被折叠的 条评论
为什么被折叠?



