技术深潜
Madara在本质上并非官方Starknet客户端(采用Python与Rust编写)的分叉,而是一次彻底的重构实现。其架构精心分层为三个核心组件:
1. Substrate Pallet框架: Madara以Substrate作为基础运行时框架。关键的Starknet逻辑——状态管理、交易执行与区块生产——通过名为`starknet-pallet`的自定义Substrate Pallet实现。这使得序列器逻辑能够继承Substrate的模块化特性,轻松集成其他Pallet以实现治理、国库或自定义共识等功能。
2. Cairo VM执行层: 交易执行的核心是Cairo虚拟机。Madara集成了基于Rust的Cairo VM实现(如LambdaClass的`cairo-rs`或StarkWare官方的`cairo-vm`)来执行Cairo字节码。智能合约逻辑在此运行。该VM的性能至关重要,与参考的Python实现相比,Rust实现有望显著降低执行开销。
3. 证明器集成与状态提交: 执行一批交易后,Madara会生成状态差异,并必须生成或对接STARK证明。该客户端设计为证明器无关,能够输出与`stone-prover`(StarkWare的证明器)或开源社区中涌现的更新、更快替代方案兼容的执行轨迹格式。生成的证明随后被提交至以太坊,从而保障Layer 2的状态安全。
关键的技术差异化在于混合状态模型。标准的Starknet客户端独立管理其状态,而Madara的状态则作为Substrate运行时存储的一部分进行管理。这解锁了强大能力:整个Starknet链的状态可通过Substrate原生RPC进行查询,且状态转换可与其他Substrate Pallet的逻辑无缝组合。
值得关注的关键GitHub仓库包括主客户端实现`madara-rs/madara`,以及早期探索版本`keep-starknet-strange/madara`。生态系统还依赖`lambda-class/cairo-rs`进行VM执行。项目进展通过以下里程碑衡量:与Starknet JSON-RPC API的完全兼容、测试网的成功部署以及基准测试结果。
| 组件 | 标准Starknet客户端 | Madara客户端 | 性能影响 |
|---|---|---|---|
| 主要语言 | Python(序列器),Rust(Cairo VM) | Rust | 更低内存占用、更快执行速度、更安全的并发处理。 |
| 架构 | 单体化,紧耦合 | 模块化(基于Substrate) | 支持自定义运行时逻辑、更易分叉、功能可组合。 |
| 状态管理 | 自定义内存/磁盘数据库 | Substrate运行时存储 | 实现原生跨Pallet互操作性及标准化查询。 |
| 共识机制 | 单一固定的序列器模型 | 可插拔(如BABE、Aura、PoS) | 允许应用链在最终速度与去中心化之间权衡选择。 |
| 同步方式 | 状态差异复制 | Substrate区块链同步 | 潜在提升新节点的初始同步速度。 |
数据洞察: 上表揭示了Madara从固定产品架构向模块化工具包的根本性转变。转向Rust和Substrate存储,理论上在节点性能和开发者灵活性方面具有明显优势,这些优势尚需在主网级负载下得到验证。
关键参与者与案例研究
Madara的开发与采用由利益一致但侧重点不同的实体联盟推动。
* StarkWare: 作为Starknet和Cairo语言的创造者,其立场较为复杂。一方面,Madara促进了生态多样性和可扩展性——这也是StarkWare的目标;另一方面,它也分散了客户端实现的控制权。StarkWare的重心仍在其自有客户端和`starknet-rs`库上。然而,其对Cairo VM和Stone Prover等核心组件的开源,是Madara这类项目得以存在的必要前提。像STARKs联合发明人Eli Ben-Sasson这样的研究人员曾强调多客户端实现对于网络健壮性的重要性,而Madara正是这一原则的直接实践者。
* LambdaClass: 这家软件研发公司是关键贡献者。其开发的`cairo-rs`是Cairo VM的高性能Rust实现,是Madara的核心依赖。他们的参与表明了对Rust在基础设施领域优越性的坚定信念,以及推动Starknet执行层技术边界的强烈意愿。
* Madara Alliance与社区: 这似乎是一个由开发者和团队组成的集体,共同倡导该项目。他们的目标是通过赋能主权应用链来扩展生态系统。早期案例研究正在游戏和高频DeFi领域涌现,例如`Cartridge`等项目正在探索基于Madara构建定制化、高性能的链上体验。