原文来自IOHK Fernando Sanchez,由卡尔达诺大使陈哲Anson翻译
PAB提供组件和环境以帮助开发人员在将 DApp 部署到实时生产环境之前创建和测试它们
Alonzo协议升级引入了 Plutus——一个提供原生智能合约语言以及必要的基础设施和工具的平台,以支持 Cardano 上的智能合约。 Plutus 平台使开发人员能够编写具有与分布式账本交互的脚本功能的去中心化应用程序 (DApp)。
要理解 Plutus,必须认识三个概念:
• 扩展未花费交易输出 (EUTXO) 模型
• Plutus Core——Plutus 的“链上”部分
• Plutus 应用程序框架 (PAF)‒Plutus合约由在区块链上运行的部分(链上代码)和在用户机器上运行的部分(链下或客户端代码)组成
链上和链下代码均使用 Haskell 和 Plutus 智能合约编写是有效的 Haskell 程序。
什么是 Plutus 应用程序后端?
在之前的一篇博文中,我们更详细地讨论了 Plutus 核心组件的链上和链下功能。在这里,让我们深入了解 Plutus 链下功能,并了解 Plutus 应用程序后端 (PAB)。
在 UTXO 模型中,我们有链下基础设施来构建移动应用程序的交易。这种链下基础设施非常复杂,因为它需要查看分类帐状态,从分类帐中挑选一些信息,然后将它们放在一起以在正确的位置使用正确的数据构建交易。 PAB 是一个单独的 Haskell 库,可以更轻松地编写此链下基础设施和链上脚本。
PAB通过两种方式帮助构建 UTXO 交易:
• 读取路径——即从链中获取信息,并对发生在区块链上的事件做出反应。读取路径目前在测试网上工作。
• 写入路径——这是我们实际构建运行 Plutus 脚本的交易的地方
PAB的作用
PAB是 Plutus 应用程序框架 (PAF) 的关键组件,它使开发人员能够在将 DApp 部署到实时生产环境之前在本地创建和测试它们。有点像 Marlowe Playground 为开发人员提供了一个沙箱来创建和测试金融智能合约,PAB 为开发人员提供了一个类似的环境来创建和测试完整的 DApp。
PAB是一种链下后端服务,用于在整个生命周期中管理和处理应用程序实例的需求。这包括与外部客户端(例如钱包前端)的交互,并充当 Plutus 应用程序、节点、钱包后端和最终用户之间的中介。这种交互是通过 PAB 命令和模拟组件实现的,这些组件可以方便地模拟和集成 DApp。
虽然不是 DApp 创建或实施的先决条件——一些开发人员正在创建自己的工具,实际上社区正在研究基于 API 的替代方案——但 PAB 消除了开发人员从头开始创建自己的基础设施(包括链索引、等)减少所需的开发时间和资源。它允许开发人员模拟应用程序在链上的行为,以进行事先测试和错误消除,以确保启动时的完美过渡。
PAB的目的是:
• 为 Plutus 应用程序运行提供标准化的环境
• 向外部客户端提供可发现的接口
• 跟踪智能合约使用的链上信息
• 允许开发人员在模拟或非模拟环境中工作
PAB可以在模拟和非模拟(真实网络)环境之间无缝切换。这使得编写各种不同的测试变得更容易——单元测试、集成测试、基于属性的测试等。 PAB 允许 DApps 轻松地与其通信,因为后端可以接收和传递消息。因此,DApp 可以向 PAB 公开的端点发送通常的请求,这些请求对应于任何特定智能合约能够处理的动作和操作。
使用框架库部署的应用程序可以在 PAB 上运行,PAB 为访问区块链提供运行时支持,以进一步执行触发基于 EUTXO 模型的交易的智能合约操作。此外,PAB 还具有持久性、日志记录和监视功能。
我们现在走到哪一步了?
今年夏天早些时候,我们部署了一系列彩色编码测试网中的第一个,为卡尔达诺带来Core Plutus 智能合约功能。这是通过“Alonzo”硬分叉部署在主网上的。目前可以使用命令行界面 (CLI) 访问智能合约功能。虽然 9 月初在主网上启用了第一个简单的智能合约,但这始终是在主网上部署 DApp 的第一步。
与此同时,开发人员一直在本地开发他们的 DApp(许多通过 PAB),同时在测试网上测试任何核心智能合约功能。在 DApp 进入主网之前,这些元素需要结合在一起,这需要时间。一旦 PAB 与节点和其他核心组件(如钱包后端 (WBE) 连接器)集成,开发人员将能够将他们的 DApp 置于准备就绪状态,并在主网启动之前将它们带到 Cardano 测试网。
这些在本地构建的早期应用程序将能够按预期与主网进行交互。迄今为止,“模拟链”的开发方法意味着对于 DApp 的创建者来说,从测试网到主网将是一个平稳的过渡。只需更改配置文件即可启动 PAB,无需更改实际代码或 Haskell 代码。这种集成工作很复杂,是卡尔达诺基础设施的关键部分,因此我们需要确保它正确完成。我们继续工作在最终集成方面,根据当前的轨迹,我们计划在 11 月交付集成,假设我们没有遇到任何关键问题。
展望未来
这只是开始。与往常一样,这将是一个迭代过程。随着 Plutus 平台的发展,我们将邀请开发者社区部署他们自己的工具并为他们在 Cardano 上运行的 DApp 创建链下代码。通过 Alonzo 测试网计划和 Project Catalyst,我们已经看到了该领域的大量活动。因此,在我们与工程师/QA 和开发人员社区一起测试平台时,我们将逐步改进并添加更多功能和功能。目标是什么呢?从 Alonzo 硬分叉和 Plutus 智能合约的到来,开发人员体验的快速扩展,以及新的工具、API 和环境来支持已经迅速发展的人才生态系统。
如需定期更新,请确保您在 Twitter 上关注我们并订阅我们的 YouTube 频道。有关项目#BuildingOnCardano 的概述,请务必查看 Essential Cardano 存储库。
原文链接:Plutus Application Backend (PAB): supporting DApp development on Cardano - IOHK Blog