0.6.24 中的新功能亮点
0.6.24 版本主要包含支持尚未完成的新功能的更改,包括对 DFX 命令、Motoko、Motoko 基础库和 Candid 的修复和更新。
新特性和功能
最重要的新特性和功能包括以下功能领域的更新:
DFX
-
在此版本中,您必须拥有一个带有 cycles 的 wallet canister 才能在 Internet Computer 上部署或管理应用程序。
对于本地开发,当您在每个项目中运行
dfx canister create
或dfx deploy
命令时,dfx
会自动为您创建一个钱包。如果您在网络升级为需要燃料费余额之前使用“ic”网络别名部署到 Internet Computer,也会自动创建钱包。
要在主 Internet Computer 网络上部署和管理应用程序,您必须向 DFINITY Foundation 提供与您的用户身份相关联的主体,并收到一个钱包容器标识符作为回报。
在 Internet Computer 网络上部署应用程序:
-
下载并安装 {sdk-short-name}。
-
运行
dfx identity get-principal
命令以创建您的默认身份和主体:dfx identity get-principal
运行该命令会显示类似于以下内容的输出:
创建“默认”身份。 - generating new key at /Users/pubs/.config/dfx/identity/default/identity.pem 创建“默认”身份。 wre5u-xietp-k5jz4-sdaaz-g3x4l-zjzxa-lxnly-fp2mk-j3j77-25qat-pqe
-
运行
dfx identity set-wallet
命令将您的钱包容器标识符与您的默认身份相关联。dfx identity set-wallet <wallet-canister-identifier>
-
通过使用类似于以下的 URL 导航到容器,在 Web 浏览器中打开钱包应用程序:
https://<WALLET-CANISTER-ID>.ic0.app
-
-
新的命令行选项使您能够指定初始周期数以传输到新创建的容器。
dfx canister create
和dfx deploy
命令现在支持新的--with-cycles <number-of-cycles>
选项。 此选项允许您指定钱包创建的容器的初始燃料费余额。您可以在本地运行 Internet Computer 网络或连接到当前的
ic
网络 (Sodium) 以进行测试时使用此选项。 但是,由于钱包和燃料费余额当前不用于您在连接到当前ic
网络 (Sodium) 时创建的容器,因此--with-cycles
选项不会影响任何容器操作。例如,您可以运行以下
dfx canister create
命令为项目中的所有容器初始化8000000000
燃料费:dfx canister create --with-cycles 8000000000 --all
如果使用
dfx deploy
,您可以运行以下命令来为项目中的backend
容器初始化8000000000
燃料费:dfx deploy --with-cycles 8000000000 backend
注意:您必须在要在其中创建或部署其他容器的网络上有一个带有燃料费余额的钱包容器。
-
您现在可以使用新的`dfx toolchain` 命令来管理用于项目的`dfx` 命令行界面的版本。
dfx toolchain
命令使您能够安装、卸载和设置您想要使用的dfx
的默认版本。 您可以通过完整版本号、主要和次要版本号或标记名称来指定版本。 例如:dfx toolchain install 0.6.24 # complete version dfx toolchain install 0.6 # major minor version dfx toolchain install latest # tag name
-
一个新的
deploy-wallet
子命令使您能够为您的燃料费钱包 WebAssembly 模块 (WASM) 指定容器标识符。例如,如果您拥有第三方交换提供商的帐户并收到钱包容器标识符,则可以运行类似于以下的命令来部署钱包并使用其燃料费进行开发:
dfx identity deploy-wallet <canister-identifier>
注意:`deploy-wallet` 功能旨在用于未来的用例。 该命令仅在您收到钱包容器标识符作为将 ICP 令牌转换为燃料费的转移操作的一部分时才适用。 此外,
deploy-wallet
子命令不适用于当前版本的 Internet Computer 在本地或远程网络上运行。
Candid
-
New Candid documentation 为开发人员提供 Rust 和 JavaScript 的类型映射信息。
-
Candid 现在支持其他原生 Rust 类型和 Typescript。
-
更多信息见 Candid changelog.
Motoko
-
Motoko 编译器 (
moc
) 现在接受-Werror
标志以将警告转换为错误。 -
语言服务器现在会同时返回文档注释 完成和悬停通知。
-
Motoko 支持对
NatN
和IntN
进行包装算术和按位运算。NatN
和IntN
上的传统算术运算符会在溢出时陷入陷阱。 如果需要环绕语义,可以使用运算符+%
、-%
、%
和*%
。 相应的赋值运算符(+%=
等)也可用。同样,位运算符(
&
、|
、^
、<<
、>>
、<<>
、<>>
等)现在也可用于`NatN和`IntN
。 右移运算符 (>>
) 是NatN
上的无符号右移和IntN
上的有符号右移;+>>
运算符在这些类型上_不_可用。此更改的动机是最终弃用并删除`WordN` 类型。 因此,不推荐使用
WordN
上的包装算术运算,并且它们的使用将打印警告。 有关替换 Word 类型的信息,请参阅Word types。 -
对于
Blob
类型的值x
,引入了对 blobx.vals()
元素的迭代器。 它的工作方式类似于x.bytes()
,但将元素返回为Nat8
类型。 -
基础库文档工具`mo-doc` 现在为签名中的类型生成交叉引用。 使用此增强功能,当您查看类似
fromIter : I.Iter<Nat> → List.List<Nat>
的签名时,您可以单击I.Iter
或List.List
导航到适当的定义。 -
对类型检查器和编译器的改进为对象文字提供了更好的处理。