From eea4942f1639cbe90cbf6d6a489d056ab81b9b00 Mon Sep 17 00:00:00 2001 From: Vincent Zhang Date: Tue, 9 Jan 2024 22:27:06 +0800 Subject: [PATCH 1/2] Add document for `dfx ledger fabricate-cycles`. --- .../docs/getting-started/6-use-dfx/index.md | 79 +++++++++++++++++++ 1 file changed, 79 insertions(+) diff --git a/docusaurus/docs/getting-started/6-use-dfx/index.md b/docusaurus/docs/getting-started/6-use-dfx/index.md index afe0d7a..05c37a9 100644 --- a/docusaurus/docs/getting-started/6-use-dfx/index.md +++ b/docusaurus/docs/getting-started/6-use-dfx/index.md @@ -303,6 +303,85 @@ Transfer sent at BlockHeight: 59482 Canister was topped up! ``` +### 制造 cycles {#fabricate-cycles} + +您可使用 `dfx ledger fabricate-cycles` 向指定的容器存入 cycles。这些cycles 都是虚拟的,并不会从任何地方扣除。 + +:::info + +请注意,只有在本地开发环境中,才能使用 `dfx ledger fabricate-cycles` 命令。 + +::: + +它的基本用法如下: + +``` +dfx ledger fabricate-cycles [options] +``` + +常用的参数和选项有: +- `--all` + 用来向 dfx.json 文件中所配置的所有容器充值 cycles。 +- `--canister ` + 指定要接收 cycles 的容器名称或 ID。您必须指定容器名称或 提供 –all 选项。 +- `--amount ` + 用来指定要铸造成 cycles 的 ICP 数量,最多可以指定八位小数的数字。可以理解为 `--amount` 是 `--icp` 和 `--e8s` 的结合。 +- `--icp ` + 指定 ICP 为整数,可以单独使用或与 `--e8s` 结合使用。 +- `--e8s ` + 指定 e8s 为整数。`e8` 是 ICP 的最小单位,例如 `1.05000000` 是 `1` 个 `ICP` 和 `5000000` 个 `e8s` 的组合。它可以单独使用或与 `--icp` 结合使用。 +- `--cycles ` + 用来指定您要制造的 cycles 数量。 +- `--t ` + 用来指定您要制造的 cycles 数量,以 T 来计算。 + +下面是一个示例: + +``` +dfx ledger fabricate-cycles --all --cycles 8000000000000 +``` + +该命令会向工程 dfx.json 文件中所配置的容器全部充值 8T 的 cycles,并输入如下所示的信息: + +``` +Fabricating 8000000000000 cycles onto hello_backend +Fabricated 8000000000000 cycles, updated balance: 11_899_662_119_932 cycles +``` + +:::info + +`dfx ledger fabricate-cycles` 另外一个常见的用处是像本地开发环境的钱包充值 cycles。请参考如下示例: + +```bash +$ dfx identity get-wallet +bnz7o-iuaaa-aaaaa-qaaaa-cai + +$ dfx wallet balance +90.699 TC (trillion cycles). + +$ dfx ledger fabricate-cycles --canister bnz7o-iuaaa-aaaaa-qaaaa-cai --t 100 +Fabricating 100000000000000 cycles onto bnz7o-iuaaa-aaaaa-qaaaa-cai +Fabricated 100000000000000 cycles, updated balance: 190_699_334_378_341 cycles +``` + +我们需要执行该命令的原因是,本地环境部署容器也会消耗本地钱包的 cycles。当本地钱包 cycles 余额不足,您会得到如下类似的返回信息: + +``` +$ dfx deploy +Deploying all canisters. +Creating canisters... +Creating canister greet_backend... +Error: Failed while trying to deploy canisters. +Caused by: Failed while trying to deploy canisters. + Failed while trying to register all canisters. + Failed to create canister 'greet_backend'. + The replica returned a replica error: Replica Error: reject code CanisterError, reject message Canister bnz7o-iuaaa-aaaaa-qaaaa-cai is out of cycles: requested 3_100_000_000_000 cycles but the available balance is 797_770_504_197 cycles and the freezing threshold 173_237_730 cycles, error code None +``` + +此时您就需要调用 `dfx ledger fabricate-cycles` 来为您的本地钱包充值 cycles,从而继续进行本地开发。 + +::: + ### 创建容器 {#ledger-create-canister} 您可以使用 `dfx ledger create-canister` 命令来在 IC 上创建容器、并充值价值为指定 ICP 的 cycles。 它的基本用法如下: From d6e82f6c25d964e6bd301fb23c3b6f40fdd29884 Mon Sep 17 00:00:00 2001 From: Vincent Zhang Date: Tue, 9 Jan 2024 22:29:36 +0800 Subject: [PATCH 2/2] Fix some typos. --- docusaurus/docs/getting-started/6-use-dfx/index.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/docusaurus/docs/getting-started/6-use-dfx/index.md b/docusaurus/docs/getting-started/6-use-dfx/index.md index 05c37a9..83796b8 100644 --- a/docusaurus/docs/getting-started/6-use-dfx/index.md +++ b/docusaurus/docs/getting-started/6-use-dfx/index.md @@ -305,7 +305,7 @@ Canister was topped up! ### 制造 cycles {#fabricate-cycles} -您可使用 `dfx ledger fabricate-cycles` 向指定的容器存入 cycles。这些cycles 都是虚拟的,并不会从任何地方扣除。 +您可使用 `dfx ledger fabricate-cycles` 向指定的容器存入 cycles。这些 cycles 都是虚拟的,并不会从任何地方扣除。 :::info @@ -350,7 +350,7 @@ Fabricated 8000000000000 cycles, updated balance: 11_899_662_119_932 cycles :::info -`dfx ledger fabricate-cycles` 另外一个常见的用处是像本地开发环境的钱包充值 cycles。请参考如下示例: +`dfx ledger fabricate-cycles` 另外一个常见的用处是向本地开发环境的钱包充值 cycles。请参考如下示例: ```bash $ dfx identity get-wallet @@ -378,7 +378,7 @@ Caused by: Failed while trying to deploy canisters. The replica returned a replica error: Replica Error: reject code CanisterError, reject message Canister bnz7o-iuaaa-aaaaa-qaaaa-cai is out of cycles: requested 3_100_000_000_000 cycles but the available balance is 797_770_504_197 cycles and the freezing threshold 173_237_730 cycles, error code None ``` -此时您就需要调用 `dfx ledger fabricate-cycles` 来为您的本地钱包充值 cycles,从而继续进行本地开发。 +此时您就需要调用 `dfx ledger fabricate-cycles` 来为您的本地钱包充值 cycles,从而继续本地开发。 :::