Cardano基金会工程师概述elm-cardano开发框架v1.0的路径
Mathieu Pizenberg在Cardano Developers Office Hours期间展示了elm-cardano的当前状态,涵盖了事务构建、Elm工具、开发者入门以及框架迈向更稳定版本的路径。
By SongMarketCap
Cardano Developers Office Hours举办了一场技术会议,重点讨论elm-cardano的v1.0的发展路径。elm-cardano是一个将Elm编程语言与Cardano应用开发相结合的开发框架。本次会议由Fabian Bormann主持,Cardano基金会高级软件工程师Mathieu Pizenberg介绍了项目的当前进展以及其试图解决的开发工具问题。
elm-cardano被定位为用于使用Elm(以强类型、快速编译器反馈和稳定性著称的函数式编程语言)构建Cardano前端应用程序和事务工具的框架。讨论内容涵盖了框架的事务构建器、意图驱动设计、本地UTXO处理、币选择,以及Cardano开发者如何充分利用账本中已经存在的更多功能的更广泛问题。
elm-cardano专注于Cardano前端和事务工具
Pizenberg解释说,本次会议的最初构想来源于正在开发的一个交互式事务构建器工具。该工具的提议目标是允许开发者通过网页界面可视化地构建不同类型的Cardano事务,而无需立即编写完整的应用程序或依赖命令行工作流。
事务构建器的概念旨在支持诸如发送代币、铸造NFT、提取质押奖励以及与dApps交互等操作。它还允许开发者将多个操作组合到一个单一的Cardano事务中,这是eUTXO模型的一项实际能力。
据Pizenberg所说,许多开发者需要一种更快的方法来测试特定的事务模式。而不用为每次试验设置完整的JavaScript应用程序或使用CLI工作流,所建议的界面将为开发者提供一种更直接的方式来构建、检查和测试事务行为。
此次演示还将elm-cardano置于更广泛的Elm生态系统中。Elm被描述为一种专注于避免运行时异常、降低依赖风险并提高重构安全性的稳定函数式语言。Pizenberg表示,尽管发布周期较慢,该语言仍然活跃,其稳定性常被误解为不活跃。
意图驱动的事务构建目标是更灵活的Cardano开发
会议的一个主要部分集中在elm-cardano如何实现事务构建。Pizenberg将该框架与JavaScript库中的常见事务构建模式进行了比较,后者通常要求开发人员处理紧贴事务账本表示的工作。
elm-cardano使用了一种意图驱动的方法。它不要求开发者手动描述每个底层事务组件,而是开发者描述事务应该完成的功能。例如,意图可能是向一个地址发送资产、使用定义的UTXO集、创建特定输出或将多个操作组合在一个事务中。
框架然后根据这些意图,处理生成有效Cardano事务所需的技术需求。Pizenberg将此描述为将开发者目标与最终事务体的底层结构分开的方式。
演示还讨论了本地UTXO状态,这使得事务构建器可以在定义的输出集中操作。这对于测试来说非常有用,因为构建器不需要直接依赖外部服务(如区块链API提供商),可以使用开发者提供的状态工作。
这种设计还支持事务链式处理。一旦事务在本地被最终确定,生成的状态可以在开发流程中,不等待链上确认的情况下,用于构建另一个事务。这允许开发者在受控条件下测试事务序列。
Pizenberg还讨论了可自定义的币选择功能。elm-cardano包括默认的选择方法,例如最大值优先选择,以及一个专注于抵押品的单独选择方法。抵押品的例子被作为一个实际问题提出,因为开发者通常不希望高价值的UTXO被选择为Plutus事务的抵押品。
迈向v1.0的路径包括更清晰的API、测试和更广泛的Cardano开发体验
elm-cardano迈向v1.0的路径包括框架核心结构和面向开发者API的改进。Pizenberg表示,该项目的某些部分始于大约三年前,现在需要重新设计一些早期的设计决策,以便实现更稳定的版本。
会议讨论了构建某些Cardano事务所需的多轮过程。由于事务费用取决于事务大小,而事务大小可能会因加入UTXO、赎回器或Plutus脚本评估而变化,构建器在达到稳定的最终事务之前可能需要经历几轮。
Pizenberg表示,当前的实现手动运行了几轮构建,而未来的版本应更清晰地识别出稳定的固定点。这将使框架在事务状态不再改变时停止重新构建。
会议还讨论了赎回器索引和输出定位,这对于更高级的Cardano智能合约交互至关重要。一些脚本依赖于特定的输入或输出索引,事务构建工具需要提供足够的控制,使开发人员能够跨多个协议组成复杂交互。
讨论进一步扩展到更广泛的Cardano开发体验。Pizenberg表示,dApps和工具仍然未充分利用许多Cardano功能。他还鼓励开发协议的开发者将修复和改进反馈到他们使用的库中,而不是仅仅在自己的应用程序内解决问题。
会议还将Elm语言与AI辅助开发联系起来。Pizenberg提到Elm的编译器反馈和强大的错误消息对于与LLM工具协作非常有用,因为精确的错误可以帮助模型更快地识别和纠正问题。
elm-cardano目前尚未被描述为Cardano项目中广泛使用的生产框架。本次会议将其定义为一个活跃的技术努力、实验性实现以及参考点,用于说明Cardano事务工具如何揭示账本现有功能的更多潜力。elm-cardano的下一阶段工作重点包括更清晰的API、改进的事务构建器行为以及为开发者测试高级Cardano事务流程提供更稳定的框架。