0.7.1 中的新功能亮点

0.7.1 版本包括 DFX 命令、Motoko、Motoko 基础库和 Candid 的新功能和修复。

新特性和功能

最重要的新特性和功能包括 DFX 命令的以下更新:

  • dfx canister sign 命令的更新使您能够对更新调用的`request_status` 消息进行签名。

    如果您使用 dfx canister sign 调用生成更新消息的方法,该命令还会签署相应的 request_status 消息并将其作为 signed_request_status 附加到 message.json 文件中。 使用 dfx canister send 命令发送消息后,您可以通过运行以下命令检查调用的 request_status:

    dfx canister send message.json --status

    如果您使用 dfx canister signdfx canister send 命令调用 ledgergovernance 容器来进行交易或将代币作为两步过程,则此更改特别有用 .

  • 新的 deposit_cyclesuninstall_code 管理容器方法也作为 dfx canister 子命令公开。

    两个新命令是`dfx canister deposit-cyclesdfx canister uninstall-code`。 例如,您现在可以通过运行类似于以下的命令将周期从您的燃料费钱包发送到特定容器:

    dfx canister deposit-cycles 125000000000 hello_world

    您可以通过运行类似于以下的命令来卸载已部署的 WASM 模块的代码:

    dfx canister uninstall-code hello_world
  • 新的 --no-artificial-delay 选项使您能够减少本地 Internet Computer 启动所需的时间。

    此更改将 --no-artificial-delay 标志添加到 dfx startdfx replica 命令。 默认情况下,与 {sdk-short-name} 一起安装的本地 Internet Computer 副本具有人为的共识延迟,以模拟用户在网络环境中可能看到的延迟。 使用这个新标志,您可以通过运行 dfx start --no-artificial-delaydfx replica --no-artificial-delay 来跳过启动本地 Internet Computer 时的内置延迟 命令。

    例如,您可以通过运行以下命令立即启动本地 Internet Computer:

    dfx start -no-artificial-delay

    但是,如果您使用此选项,则可能会增加本地 Internet Computer 副本使用的 CPU。

重大变化

{sdk-short-name} 版本 0.7.1 引入了对运行 dfx canister call 命令时使用的默认主体的更改。 根据您之前使用的 {sdk-short-name} 的版本,此更改可能需要更改您的程序代码或您在部署的容器中调用方法的方式。

  • 默认情况下,燃料费钱包容器标识符不再用作消息调用者。

    在 {sdk-short-name} 的某些先前版本中,dfx canister call 命令默认使用燃料费钱包容器标识符作为消息调用者来执行查询和更新调用。

    引入了 --no-wallet 命令行选项,允许您绕过燃料费钱包容器标识符并使用当前选择的身份执行查询和更新调用。

    但是,使用燃料费钱包容器标识符执行“dfx 容器调用”命令会导致每个调用都被视为容器间调用,并且这些调用需要比需要解决的时间更长的时间。

    在此版本中,dfx canister call 命令默认不再使用燃料费钱包容器标识符来执行查询和更新调用。 如果您想使用燃料费钱包执行查询或更新调用,您可以运行类似于以下的命令:

    dfx canister --wallet=cycles-wallet-id call canister method

此版本中修复的问题

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

  • 允许在 dfx canister 命令中一致地使用容器名称或标识符。

    以前,关于是否可以使用容器名称或容器标识符指定容器,dfx canister 命令不一致。 通过此更改,所有 dfx canister 命令现在接受本地 dfx.json 配置文件中指定的容器名称或 canister_ids.json 文件中列出的有效容器标识符。