Dolos为Cardano开发者带来了轻量级基于Rust的数据节点

TxPipe在Cardano Developers Office Hours期间介绍了Dolos,这是一款基于Rust开发的轻量级Cardano数据节点,旨在降低基础设施负担,为开发者提供灵活的区块链数据访问。

By SongMarketCap

Cardano News - Dolos为Cardano开发者带来了轻量级基于Rust的数据节点

Cardano Developers Office Hours邀请了TxPipe的CEO兼创始人Santiago Carmuega进行技术展示,介绍了Dolos,这是一款使用Rust编写的轻量级Cardano数据节点。会议重点讨论了基础设施多样性、模块化以及为应用程序、钱包和后端服务提供更简单的Cardano区块链数据访问途径。

Dolos被作为一种补充工具,而不是现有Cardano节点的替代品。它的用途更加狭窄,旨在为那些需要可靠链数据但不需要运行完整基础设施堆栈的团队提供灵活的查询层。

Dolos旨在优化Cardano开发者体验与数据访问

TxPipe致力于为Cardano开发者打造开源工具,而Dolos则是其改善开发者体验这一更广泛目标的一部分。Carmuega表示,他在Cardano生态系统中遇到的第一个痛点是从节点获取数据的难度。

在某些区块链生态系统中,开发者可以通过查询一个端点来获取最新区块、交易或地址状态的信息。而在Cardano中,这一过程更加技术化,因为它涉及到Ouroboros迷你协议、二进制格式以及一个定制的网络模型。

根据展示内容,Dolos作为一种针对特定用例的替代和补充节点被创建,它为开发者提供了一种更丰富且更灵活的方式访问Cardano链的数据。这使其对构建应用程序、钱包和数据服务的团队尤为重要,这些团队无需参与共识或生成区块,但仍需要一个稳定的后端来读取链数据。

Carmuega还将Dolos与DB Sync进行了比较。DB Sync仍然是一种基于SQL的Cardano数据深度访问的常用工具,但需要一个Cardano节点、PostgreSQL以及一个同步工作者。Dolos则针对那些应用程序已经明确了解自身数据需求,并可以使用更高效的API而不需要一个完整动态SQL后端的用例。

基于Rust的Cardano节点支持Blockfrost、Kupo和UTXRPC

Dolos为外部应用程序提供了多个API接口。其中一个是使用UTXRPC规范的gRPC接口,专为那些需要紧凑型二进制通信和低延迟查询的用例设计。Dolos还包括一个类似Blockfrost的API,允许那些已使用Blockfrost样式端点的团队将现有应用程序指向Dolos,减少集成更改。

TxPipe表示它与Blockfrost团队紧密协作,并使用Blockfrost一致性测试来检查端点兼容性。根据Carmuega的说法,Dolos通过了超过900项一致性测试,但由于成本效益评估,有些端点被排除。

Dolos还提供了一个专注于UTXO集合、数据和脚本的迷你Kupo API,使用对Kupo用户熟悉的查询模式。此外,它还暴露了Cardano节点到客户端的迷你协议,包括局部状态查询和链同步。这使得某些期待与Haskell节点互动的工具可以连接到Dolos并使用部分相同的API接口。

这一设计定位使Dolos成为Cardano应用程序的基础设施适配器。钱包、交易构建器、区块浏览器和中间件工具可以根据需求选择不同的访问模式,是否需要Blockfrost兼容性、Kupo风格的UTXO查询、UTXRPC性能或更接近标准Cardano节点环境的socket接口。

滑动窗口存储和中继节点信任假设

Dolos包含明确的权衡。Carmuega表示,Dolos在获取数据时并未执行完整的共识或完整区块验证。相反,它通过节点到节点协议连接到一个中继节点,可以是本地的或公共的,由操作员选择作为数据源。这在Dolos与所用中继节点之间创造了信任假设。

对于应用开发者来说,该模型适用于团队无需运行完整本地节点堆栈的数据访问用例。在会议期间的比较指出,DB Sync也依赖于后台的节点作为数据源,而Dolos可以连接到中继节点,而无需本地Haskell节点socket。

演示中强调的一个技术特点是Dolos的滑动窗口存储模型。操作员可以保留链的完整历史记录,但也可以选择有限的时间窗口。在这种设置下,Dolos会保留与选定时期相关的区块、交易、脚本、数据和UTXO数据,而较旧的数据会从本地存储中移除。对于那些只需要最近链活动而非从Byron时期起的完整历史记录的应用程序,这可以减少磁盘需求。

TxPipe还展示了在主网Dolos实例中的性能数据。根据会议期间展示的仪表盘,一个实例每秒处理约180个请求,99%分位延迟大部分低于800毫秒,而50%分位约在4到5毫秒之间。Carmuega将这些结果归结为Dolos为紧凑的单进程Rust组件,结合本地键值存储、LSM树、布隆过滤器和特定索引策略。

展示包括了Dolos使用的实际例子,比如Lace Anatomy,这是一个开发者专注的链浏览器,使用Dolos作为其后端而没有使用DB Sync。Carmuega还提到Demeter平台端点以及卡尔达诺生态系统中其他团队在数据访问底层使用了Dolos。

Dolos为Cardano应用程序提供了一个后端选项,可以支持Blockfrost风格、Kupo风格和UTXRPC访问模式,而无需为每个用例启用DB Sync。对钱包、区块浏览器和数据服务来说,操作上的差别是一个更轻量化的访问Cardano链数据路径,而无需为基础设施要求加入完整的共识参与。