了解 Pallas 和 Mithril:Cardano 基础设施之旅

发布: (2026年1月4日 GMT+8 13:00)
6 分钟阅读
原文: Dev.to

Source: Dev.to

Introduction

在这篇文章中,我总结了我对 Cardano 生态系统中 PallasMithril 项目的学习成果。
在深入研究 Mithril 代码库并进行贡献之前,我想先梳理自己的理解,并确认自己拥有正确的思维模型。我的目标是成为一名专注于 Cardano 基础设施的区块链工程师。

Cardano 的主网和核心节点软件是用 Haskell 实现的。虽然 Haskell 功能强大,但它为想要使用其他语言(尤其是 Rust)直接与 Cardano 交互的开发者设置了很高的门槛。要在底层了解 Cardano 的数据格式、网络协议或交易结构,开发者通常需要阅读 Haskell 代码并理解 cardano-node 的内部工作原理。这正是 Pallas 所要解决的问题。

Pallas:Cardano 的 Rust 库

Pallas 是一套 Rust 库集合,以 Rust 友好的方式重新实现了 Cardano 的数据格式和协议。它使开发者能够在不编写或深入理解 Haskell 的情况下与 Cardano 主网交互。开发者可以使用 Rust 解码区块、检查交易、构建交易并与 Cardano 节点通信。

模块

模块职责
primitives定义 Cardano 数据类型,如交易、区块、数值、脚本和元数据
codec处理序列化和反序列化(主要是 CBOR)
network实现 Cardano 节点间通信协议
txbuilder帮助构建 Cardano 交易
traverse提供跨时代的方式来检查区块和交易
hardano与 Cardano 节点存储格式互操作
cryptoCardano 使用的加密工具
math / utxorpc支持工具和互操作层

所有这些模块都围绕一个核心理念:如何在 Rust 中正确地表示、编码、解码并与 Cardano 数据和协议交互。得益于 Pallas,Rust 开发者可以构建钱包、索引器、浏览器、分析服务以及其他基础设施组件,而无需依赖 Haskell 代码,从而显著降低在 Cardano 生态系统中进行系统级开发的门槛。

Mithril:高效验证 Cardano 状态

虽然 Pallas 帮助开发者与 Cardano 交互,但另一个主要挑战仍然存在:验证和同步。要从头完全验证 Cardano 数据,客户端通常需要下载并验证大量区块链数据。实际上,许多应用依赖全节点或受信任的服务器,因为在本地下载和验证所有内容既慢又耗费资源。Mithril 解决了这个问题。

核心概念

  • 快照 – 对特定时间点的 Cardano 链状态的压缩表示。
  • 证书 – 一个小型密码学证明,表明该快照已得到代表大量 ADA 质押的质押池运营商的批准。

客户端下载快照及其证书,然后在本地验证证书。如果证书有效,客户端即可信任该快照代表了 Cardano 网络在当时达成共识的链状态。

注意: Mithril 并不重新验证单个交易或 UTXO;这些工作已经由 Cardano 节点完成。Mithril 验证的是对最终状态的共识,而不是完整的交易历史。

好处

  • 更快的启动 – 客户端可以在不下载整个链的情况下开始使用区块链状态。
  • 降低基础设施和存储成本 – 需要存储和传输的数据更少。
  • 基于质押的安全性 – 信任来源于 Cardano 的质押权重模型,而不是单一的中心化服务器。

这些特性使得 Mithril 对基础设施工具、索引器、研究系统以及未来的互操作性解决方案尤为有用。

相关主题(简要提及)

桥接、侧链、预言机以及跨链互操作性与 Mithril 密切相关,但它们需要更深入的区块链系统和安全模型的理解。我计划稍后研究这些主题。

未来工作

  1. 深入了解 Mithril 项目结构。
  2. 理解每个模块的工作原理、存在原因以及系统的端到端运行方式。
  3. 为 Mithril 项目做出贡献,并成长为区块链工程师。
Back to Blog

相关文章

阅读更多 »

RGB LED 支线任务 💡

markdown !Jennifer Davishttps://media2.dev.to/dynamic/image/width=50,height=50,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%...

Mendex:我为何构建

介绍 大家好。今天我想分享一下我是谁、我在构建什么以及为什么。 早期职业生涯与倦怠 我在 17 年前开始我的 developer 生涯……