0.7.0 中的新功能亮点

0.7.0 版本主要包含支持尚未完成的新功能的更改,包括对 DFX 命令、Motoko、Motoko 基础库和 Candid 的修复和更新。

最重要的新特性和功能是对以下内容的更新:

新特性和功能

DFX

  • 添加分类帐子命令

    dfx 现在支持专用的 dfx ledger 子命令。 这允许您与分类帐交互 安装在 Internet 计算机上的容器。 示例命令包括 dfx ledger account-id 打印与您选择的身份关联的帐户标识符,dfx ledger transfer 允许您将 ICP 从您的分类帐帐户转移到另一个帐户,以及 dfx ledger create-canister 允许您从 ICP 创建一个容器。 有关 dfx ledger 子命令的更多信息,请参阅dfx ledger

  • 添加钱包子命令

    dfx 现在支持专用的 dfx wallet 子命令。 这允许您与与您选择的身份相关联的燃料费钱包进行交互。

    以下只是一些可用的命令:

    • dfx 钱包余额 返回所选身份的燃料费钱包余额。

    • dfx wallet list-addresses 显示燃料费钱包的分配控制人和保管人。

      你可以使用`dfx wallet send <destination> <amount>` 将周期发送到另一个钱包。

      有关 dfx wallet 的更多信息,请参阅dfx wallet

  • request-status 子命令中添加输出类型。

    此更改允许您为 dfx canister request-status 指定返回结果的格式。 格式化选项包括`idl+raw++pp+`。

  • 项目的默认网络现在是 ic

    除非另有说明,默认网络现在是主网`ic。 此外,--network ic` 现在指向主网 Internet Computer(Sodium 已被弃用。)

  • 自动创建一个坦率的 UI 容器

    使用 dfx canister installdfx deploy 时,会在本地网络上安装专用的坦率 UI 容器。

  • 压缩一些内容类型

    如果编码小于源内容,您现在可以存储具有媒体类型的资产的 gzip 内容编码。 支持的文件类型为 text/**/javascript*/html

  • 列出资产时添加编码大小

    458 / 5,000 翻译结果 现在,当资产被列出时,一个新的 length 字段会返回编码的大小。

  • 添加新命令`dfx canister info`

    这允许您检索认证的容器信息。 对该信息的访问仅限于容器的控制器及其 WASM 模块的 SHA256 哈希。 如果没有安装 WASM 模块,则哈希将为 None

  • 新方法删除项目中不再存在的资产容器资产——重大更改

    不再支持 keys() 方法。 使用 list() 方法删除缺失的项目资产。 例如:

    assert_command dfx canister call --query e2e_project_assets get '(record{key="/will-delete-this.txt";accept_encodings=vec{"identity"}})'
    assert_command dfx canister call --query e2e_project_assets list  '(record{})'
    assert_match '"/will-delete-this.txt"'
  • 运行模拟器而不是副本

    要使用模拟器而不是副本运行 dfx 项目,您现在可以运行 dfx start --emulator

  • 依赖npmjs.org获取agent-js版本安装

    这将`dfx的版本与agent-js的发布版本分离。 此外,它允许调试版本正确安装(因为 `dfx 有一个非发布版本)。

  • 您现在可以为运行 Darwin 的 M1 Mac 安装 DFINITY Canister SDK。

  • 允许将任何大小的资产上传到资产容器。

    添加了以下资产容器调用方法: create_batch() create_chunk() commit_batch() get() ** get_chunk()

    + 重做 dfx 中的资产安装程序以使用这些方法。 因此,它可以上传超过消息入口大小的资产。

  • 添加 --no-wallet 标志和 --wallet 选项

    --no-wallet 允许用户绕过指定钱包 ID。

    --wallet 允许用户指定用于调用的特定钱包。

  • dfx bootstrap webserver 中实现 HTTP 请求提案

    在基本存储容器中添加对 http 请求的支持(默认为 /index.html)。

这不支持 identity 以外的编码,并且不返回任何标头。

这也会升级 tokioreqwest 以便正常工作。 有一些性能问题需要注意(这比 icx-http-server 慢)。

Motoko

  • 重新格式化为样式指南。

  • 添加类型绑定

    Nat.NatNat8.Nat8 等添加到原始类型的库中。

此版本中修复的问题

本节涵盖了已在此版本中修复的所有报告的问题。

DFX

  • 删除网络上的容器会删除其他网络的条目

    此更改修复了删除网络上的容器会删除 canister_ids.json 文件中容器的所有其他条目的错误。

  • 错误消息:发出 dfx start 时已在使用中(操作系统错误 48)。

    这修复了在停止副本后立即启动副本时发生的错误。

  • dfx new 命令不应该需要 node

    这修复了无法使用 dfx new 命令在未安装 node.js 的机器上创建项目的问题。

  • 缺少 webpack.config 插件

    这会将缺少的 ProvidePlugin 添加到新项目的 webpack.config 中。

  • 允许新项目资产包含非 UTF-8 文件

    以前资产被强制为有效的 UTF-8 字符串。 在此更改之后,如果无法转换字符串,则会忽略就地变量替换。

Motoko

  • 不再被不同但同名的类型定义所迷惑。

  • 同名类型和专业的数量从 1(不是 2)开始

  • 通过在翻译前进行规范化来避免类型等式的长链