0.1.1 2023年3月5日

#4#dfx

Apache-2.0

395KB
494

IC SDK

本仓库包含 IC SDK:用于在互联网计算机(ICP区块链)上创建和管理 canister 智能合约的软件开发工具包。.

进一步阅读

安装内容

IC SDK 安装脚本在您的本地计算机的默认位置安装了几个组件。以下表格描述了安装脚本安装的开发环境组件

组件 描述 默认位置
dfx 命令行界面 (CLI) /usr/local/bin/dfx
moc Motoko 运行时编译器 ~/.cache/dfinity/versions/<VERSION>/moc
replica 互联网计算机本地网络二进制文件 ~/.cache/dfinity/versions/<VERSION>/replica
uninstall.sh 用于删除SDK及其所有组件的脚本 ~/.cache/dfinity/uninstall.sh
versions 包含每个SDK版本子目录的缓存目录。 ~/.cache/dfinity/versions

SDK 与 CDK 与 dfx

以上有几个组件值得详细介绍

  1. dfx - dfxIC SDK 的命令行界面。这就是为什么许多IC SDK的命令都以命令 "dfx .." 开始,例如 dfx newdfx stop

  2. 容器开发工具包(CDK) - CDK 是 IC SDK 用于实现编程语言创建和管理容器所需功能的适配器。IC SDK 已经为您安装了一些 CDK,以便您可以使用您喜欢的语言使用它们。这就是为什么有 Rust CDKPython CDKTypeScript CDK 等原因... 由于 CDK 是 SDK 使用的组件,一些开发者选择直接使用 CDK(不使用 IC SDK),但通常作为整个 IC SDK 部分使用。

入门指南

安装

您可以通过几种不同的方式安装 IC SDK

sh -ci "$(curl -fsSL https://internetcomputer.org/install.sh)"

此命令将安装与您的操作系统兼容的二进制文件,并将其添加到 /usr/local/bin

通过 GitHub 发布

在此 找到适合您架构的发布版。

在 GitHub Action 中,使用 dfinity/setup-dfx

    steps:
    - name: Install dfx
      uses: dfinity/setup-dfx@main

获取帮助

安装 IC SDK 后,通过输入来熟悉其功能。

dfx help

为 DFINITY SDK 贡献

请参阅我们的贡献指南 此处

构建 IC SDK

构建 IC SDK 非常简单

cargo build

发布流程

IC SDK 以两个步骤发布

  1. 发布一个新的 IC SDK 发布版。

  2. 发布一个新的 manifest.jsoninstall.sh,以指导安装程序实际下载和安装新的 IC SDK 发布版。

发布 IC SDK

  1. 发布经理确保 dfx stable 分支指向应发布的修订版,并且修订版带有版本标签(如 0.5.6)。

  2. 在 Hydra 上的 sdk-release 作业集跟踪 stable 分支,并在 stable 分支推进后不久开始评估。

  3. 如您所见,它只有一个作业 publish.dfx,该作业在 此处 定义为 dfx 作业。请注意,只有当修订版具有适当的版本标签时,publish.dfx 作业才存在。这防止了未标记修订版的发布。

  4. 我们的CD系统在deployer.dfinity.systems上运行,配置了publish-sdk-dfx-release任务。它将监视上述的publish.dfx任务的新构建,每当有新构建时,它将下载输出(CD脚本)并执行。

  5. 如您所见,脚本还会向#build-notifications Slack频道发送消息,这样您就可以看到SDK是否已发布以及发布的时间。

发布manifest.jsoninstall.sh

IC SDK发布后,它可供下载,但位于https://sdk.dfinity.org/install.sh的安装脚本不会立即安装它。为了确保安装程序实际上下载并安装了新的IC SDK版本,位于https://sdk.dfinity.org/manifest.jsonmanifest.json文件必须将其tags.latest字段设置为新的版本。以下说明了如何进行操作。

  1. 编辑public/manifest.json文件,使其指向新的IC SDK版本,并确保它在master中合并。

  2. 类似于发布IC SDK,还有一个install-sh任务,它会构建CD脚本来将manifest.jsoninstall.sh发布到我们的CDN。

  3. 这个任务基于跟踪master分支的sdk作业集。

  4. deployer.dfinity.systems配置了publish-sdk-install-sh任务,该任务将监视上述的publish.install-sh.x86_64-linux任务的新构建,每当有新构建时,它将下载输出(CD脚本)并执行。

故障排除

本节提供了解决您在使用IC SDK通过dfx命令行时可能遇到的问题的方案。

项目重置

此命令将删除构建目录并重新启动您的副本。

dfx stop && dfx start --clean --background

在本地使用Internet Identity

您可以通过克隆https://github.com/dfinity/internet-identity将Internet Identity canister部署到您的副本中,与项目一起使用。从internet-identity目录中,运行以下命令

II_ENV=development dfx deploy --no-wallet --argument '(null)'

有关更多信息,请参阅https://github.com/dfinity/internet-identity#running-locally

依赖关系

~30–47MB
~861K SLoC