Cardano 的 Mesmo 将 AI 辅助开发带到 Python、Go、Rust 和 JavaScript
在 Cardano Developers Office Hours 期间,软件架构师 Mateusz Czeladka 详细介绍了 Mesmo 如何支持 AI 辅助的交易开发、离线 Plutus 评估以及跨语言执行。该演示还探讨了该库的技术局限与潜在改进。
By SongMarketCap
Cardano Foundation 高级软件架构师 Mateusz Czeladka 在第 84 期 Developers Office Hours 中进行了 Mesmo 的技术演示,主持人为 Fabian Bormann。该演示探讨了这一开源库如何在多种编程语言中提供 Cardano 开发功能,特别关注交易处理、AI 辅助开发以及与区块链基础设施的集成。
讨论不仅止于 Mesmo 现有的语言支持,还深入其架构如何运作、开发者可以用它构建什么,以及本次展示版本仍存在哪些技术限制。
Mesmo 通过共享执行引擎处理 Cardano 交易
Mesmo 围绕 Cardano Client Lib 构建。Cardano Client Lib 是一个 Java 软件开发库,其功能通过 GraalVM Native Image 编译为原生共享库。针对不同语言的封装使使用 Python、Go、Rust 和 JavaScript 编写的应用能够通过标准的 C Application Binary Interface (ABI) 访问这些已编译代码。
这种架构使开发者无需运行 Java Virtual Machine 即可使用受支持的 Cardano 操作。同时,它还能提供应用主开发套件可能缺失的功能。
Czeladka 解释说,此方法部分源于各个 Cardano 库维护节奏的差异。讨论中,参与者回顾了早期一段时间,基于 Go 的 Apollo 库缺少对 Plutus V3 交易的支持,迫使依赖它的应用进行架构调整。
Mesmo 并非意在取代 MeshJS、PyCardano、Pallas 或 Apollo 等既有工具,而是通过共享实现提供对部分选定功能的访问。
其功能包括钱包与地址管理、交易签名、质押操作、原生脚本以及 Cardano 治理交易。治理功能还扩展到涉及 Constitutional Committee 投票的专门操作,以及超出常规 DRep 委托范围的其他行为。
其中一个核心组件是 TX Plan,它通过结构化的 YAML 数据描述交易。开发者无需通过一连串特定语言的方法构造每个操作,而是提供一个交易定义,由 Mesmo 进行解析与处理。
这种模型让不同语言编写的应用能够访问相同的底层交易逻辑,同时保留对其周边基础设施的控制权。
AI 编码代理可与结构化的 Cardano 交易配合工作
演示探讨的一个方向是 Mesmo 与 AI 辅助软件开发的兼容性。
该项目提供包含其编程接口信息的 AI 入门包。开发者可以将这些资料提供给 AI 编码工具,帮助其理解可用功能、期望的输入以及受支持的交易操作。
TX Plan 为此流程提供了结构化接口。AI 编码代理可以生成一个 YAML 交易定义,应用随后将其传递给 Mesmo 以构建交易。
在区分生成交易与在区块链上执行交易方面,这一点仍然重要。
Mesmo 不会独立连接 Cardano 节点、检索链上信息或广播交易。这些职责由集成该库的应用承担。
例如,应用可以从受支持的区块链数据提供方获取可用的 UTXOs 和协议参数,将这些输入传递给 Mesmo,并收到序列化的交易数据。完成签名后,应用通过所选的网络服务提交交易。
Czeladka 将其底层执行描述为确定性且无状态,即相同的输入将产生相同的结果,并且该库不会独立更改外部区块链状态。
演示还考察了离线 Plutus 评估。Mesmo 内置了 Scalus 评估器,可计算受支持智能合约交易所需的内存与 CPU 执行单元。开发者也可通过可用接口集成其他评估器。
这种安排允许在本地完成交易构建与脚本评估,无需为评估本身发起单独的网络请求。
账户处理也遵循类似的职责分离。账户对象可保留用于地址生成与交易签名的必要密钥材料,避免在应用各功能之间反复传递助记词。
不过,使用原生库会引入内存管理方面的考量。参与者讨论了在宿主编程语言与原生代码的边界上应如何释放资源,尤其是在涉及敏感密码材料时。
[NEWSBREAK]
预发布阶段的约束与潜在的 WebAssembly 支持
演示指出了 Mesmo 实现中的若干实际限制。
展示的该版本对 JavaScript 的支持依赖 Bun 运行时。由于其 Foreign Function Interface 存在困难,Node.js 暂不受支持。
另一项约束是已编译库的体积,约 60 MB。Czeladka 表示,这对服务端应用可能是可接受的取舍,但对包大小要求严格的环境则是更大的障碍。
原生分发还需要针对不同操作系统与处理器架构提供兼容构建。随着项目扩展,支持这些组合会增加维护工作量。
Czeladka 将 WebAssembly 作为未来可能的替代方案进行讨论。GraalVM 不断发展的 WebAssembly 能力最终或可提供更具可移植性的执行目标,减少在多平台分发独立原生二进制的需求。演示并未给出发布时间,也未确认该方案的生产可用性。
其他开发方向包括与更多区块链数据提供方的集成、特定语言的交易构建器、更完善的错误处理,以及对签名与合约相关元数据的更广泛支持。
此次展示的实现以 TX Plan 作为主要的交易构建接口。如果社区有需求,未来可在共享引擎之上开发更常规的编程方式。
Mesmo 还包含架构决策记录与开源文档,旨在帮助贡献者理解并扩展该实现。
团队正征求正在测试可用语言封装与交易功能的开发者的反馈。贡献内容可以包括新的区块链数据提供方、资源管理改进以及对缺失操作的支持。
在本次 Developers Office Hours 展示的实现中,Mesmo 通过其共享的原生库提供交易构建、签名与本地 Plutus 评估,而应用仍负责网络访问与提交已完成的交易。