开发工具概览
Canton 开发工具链概览:DPM、Daml Studio、Canton Console、Sandbox、LocalNet 与 PQS。
Canton 应用程序开发涉及多种处理工作流程不同部分的工具——从编写和编译 Daml 合约到本地测试和查询账本状态。本页总结了每个工具以及使用它的时间。
DPM(Daml 包管理器)
DPM 是 Canton 项目管理的主要命令行工具。它处理项目初始化、依赖关系管理、编译、代码生成和测试。
dpm init # Create a new project
dpm build # Compile Daml contracts to DAR files
dpm test # Run Daml Script tests
dpm codegen-js .dar -o out # Generate TypeScript bindings
dpm codegen-java .dar -o out # Generate Java bindings
dpm sandbox # Start a local Sandbox node
dpm studio # Launch Daml Studio (VS Code)
DPM 取代了旧的 daml CLI,并且是所有构建和项目任务的推荐入口点。有关完整命令集,请参阅 DPM 参考。
Daml Studio(VS Code 扩展)
Daml Studio 是一个 VS Code 扩展,为编写 Daml 智能合约提供 IDE 体验。它包括:
- 在您键入时进行实时类型检查和错误诊断
- 转到定义和查找参考导航
- 脚本结果可视化——直接从编辑器运行 Daml 脚本,并在表格视图中检查生成的账本状态
- 模板、选择和标准库函数的代码完成
通过从项目目录运行 dpm studio 来安装它,或者在 VS Code 扩展市场中搜索“Daml”。需要 VS Code 1.87 或更高版本。
有关完整的设置说明,请参阅 IDE 设置。
Canton Console
Canton 控制台是一个基于 Scala 的交互式 REPL,用于检查和管理 Canton 节点。您可以用它来:
- 查询验证器上的活动合约集(ACS)
- 检查事务树和事件详细信息
- 将DAR包上传到验证器
- 管理 Party及其举办
- 检查节点健康状况和连接性
该控制台连接到正在运行的 Canton 节点,并提供对管理和诊断操作的直接访问。它在开发过程中对于验证事务是否产生了预期状态特别有用。
Sandbox
Sandbox 是一个轻量级的单节点 Canton 环境,用于快速本地测试。开始:
dpm sandbox
Sandbox 为您提供了一个带有内存分类账的本地验证器。它启动速度快,适合运行 Daml Script 测试、试验合约逻辑以及迭代 Daml 代码,而无需外部依赖。
沙箱不会模拟多验证器或多方不同验证器的场景。为此,请使用 LocalNet。
有关配置选项,请参阅沙盒。
LocalNet
LocalNet 是一个基于 Docker Compose 的本地环境,它模拟具有多个验证器的全局同步器。 cn-quickstart 存储库将 LocalNet 打包为其开发设置的一部分:
cd cn-quickstart/quickstart
make setup
make build
make start
```LocalNet 提供本地同步器、多个验证器节点、具有水龙头访问的测试 Canton Coin 和 Splice 钱包。它是部署到 DevNet 之前进行集成测试、多方工作流程和端到端应用程序测试的正确环境。
有关详细信息,请参阅 [LocalNet](/zh/docs/canton/appdev-modules-m5-localnet-development)。
## PQS(参与者查询存储)
PQS 维护一个与验证器的账本状态同步的 PostgreSQL 数据库。它将分类帐事件(创建、存档、练习)投影到 SQL 表中,您可以使用标准 SQL 进行查询。
当您需要以下情况时,PQS 非常有用:
* 跨多种合约类型的复杂查询(连接、聚合、过滤器)
* 历史账本数据的报告和分析
* 与使用 SQL 的 BI 工具或仪表板集成
* 合约有效负载的全文搜索或自定义索引
PQS 尊重与 Ledger API 相同的隐私边界——它只包含您方有权查看的数据。
有关架构详细信息和查询示例,请参阅 [PQS](https://docs.canton.network/sdks-tools/development-tools/pqs) 和 [PQS SQL 参考](/zh/docs/canton/api-reference)。
## 选择正确的工具
* **编写和编译 Daml 合约** -- DPM + Daml Studio
* **运行合约逻辑的单元测试** -- `dpm test`(Daml 脚本)
* **Daml 代码的快速本地迭代** -- 沙箱
* **多验证器集成测试** -- LocalNet
* **交互式检查合约状态** -- Canton Console
* **复杂的查询和报告** -- PQS
## 后续步骤
* [IDE 设置](/zh/docs/canton/appdev-tooling-ide-setup) -- 配置您的编辑器以进行 Canton 开发
* [调试工具](/zh/docs/canton/appdev-tooling-debugging-tools) -- 交易和合约状态故障排除
* [Canton Development Stack](/zh/docs/canton/appdev-modules-m1-development-stack) -- 所有部分如何组合在一起
---
> 本文由 CC Privacy Club 根据 Canton Network 官方文档(CC-BY-4.0)整理翻译,仅供学习;实现细节以官方最新版本为准。