安装与使用 Fluence CLI

Fluence CLI 是您创建、部署、支付、运行、监控和移除 Fluence Cloudless 资源的一站式命令行接口。

INFO
Fluence CLI 支持 Linux 和 macOS，目前对 Windows 提供实验性支持。了解更多信息请点击这里。

安装 Fluence CLI
在安装 Fluence CLI 之前，您需要先安装 Node.js。最快速的方法是使用安装脚本。将以下命令复制粘贴到命令行中并回车：

sh
复制代码
curl -qsL https://raw.githubusercontent.com/fluencelabs/cli/main/install.sh | bash
这个过程可能需要一些时间，并且根据您的设置，可能会提示您使用 sudo 创建符号链接。安装完成后，请确保使用 fluence update stable 更新到最新版本，然后检查版本号，应类似于以下输出：

sh
复制代码
$ fluence --version
@fluencelabs/cli/0.15.10 darwin-arm64 node-v18.19.1
您也可以将 CLI 更新到特定网络版本，例如 dar 或 kras，分别使用 fluence update dar 或 fluence update kras。通常情况下，更新到 stable 是首选且相对安全的选择。有关更多文档，请参阅 Fluence CLI 仓库。

依赖项
安装脚本会处理安装过程，包括安装 Node.js 和 npm。此外，CLI 会在必要时延迟安装一组 Fluence 库和 SDK 以及 Rust。

您可以使用 Fluence CLI 列出和管理依赖项。让我们看看已安装的内容：

sh
复制代码
$ fluence dep v
如果这是您第一次使用 Fluence CLI，输出可能有所不同：

sh
复制代码
Fluence CLI version: 0.15.5
nox version: fluencelabs/nox:0.20.1
rust toolchain: nightly-2023-08-27-x86_64
aqua dependencies that you can install or update using 'fluence dep i @':
"@fluencelabs/aqua-lib": 0.9.1
"@fluencelabs/spell": 0.6.9
marine and mrepl dependencies that can be overridden in fluence.yaml using marineVersion and mreplVersion properties:
marine: 0.19.2
mrepl: 0.26.2
internal dependencies:
"@fluencelabs/air-beautify-wasm": 0.3.6
"@fluencelabs/aqua-api": 0.14.2
"@fluencelabs/aqua-to-js": 0.3.5
"@fluencelabs/deal-ts-clients": 0.6.1
"@fluencelabs/fluence-network-environment": 1.1.2
"@fluencelabs/js-client": 0.8.3
"@fluencelabs/npm-aqua-compiler": 0.0.3
internal aqua dependencies:
"@fluencelabs/installation-spell": 0.6.9
js-client dependencies:
"@fluencelabs/avm": 0.59.0
"@fluencelabs/marine-worker": 0.5.1
"@fluencelabs/threads": ^2.0.0
"@fluencelabs/interfaces": 0.11.0
"@fluencelabs/js-client-isomorphic": 0.5.0
Fluence CLI 仅安装所需内容，并根据需要延迟添加缺少的依赖项。特别是开发计算函数所需的依赖项，如 Rust 和各种 Marine 依赖项。然而，您可以一次性安装所有依赖项，包括 Rust：

sh
复制代码
$ fluence dep i
此外，您可以使用 fluence dep reset 和 fluence dep uninstall 分别将依赖项重置为 CLI 版本的默认值或卸载某个版本。

::: info 您的 Rust 设置需要 wasm32-wasi 编译目标才能生成 Wasm 模块。您可以使用 rustup target list --installed|grep wasm32 检查系统。如果缺少 wasm32-wasi 目标，请使用 rustup target install wasm32-wasi 安装。 :::

依赖项安装和管理在～/.fluence 目录中。我们来看看：

$ tree -L 3 ~/.fluence
/Users/bebo/.fluence
├── cargo
│ ├── marine
│ │ ├── 0.17.0
│ │ ├── 0.19.0
│ │ └── 0.19.2
│ └── mrepl
│ ├── 0.24.0
│ ├── 0.26.0
│ └── 0.26.2
├── cli
│ ├── LICENSE
│ ├── README.md
│ ├── bin
│ │ ├── dev.js
│ │ ├── fluence
│ │ ├── fluence.cmd
│ │ ├── node
│ │ └── run.js
│ ├── dist
│ │ ├── baseCommand.d.ts
│ │ ├── baseCommand.js
│ │ └── versions.json
│ ├── node_modules
│ │ ├── @achingbrain
│ │ └── zod
│ ├── package.json
│ └── yarn.lock
├── config.yaml
├── npm
│ └── @fluencelabs
│ ├── aqua-lib
│ ├── registry
│ └── spell
├── schemas
│ └── config.json
├── secrets
│ └── auto-generated.txt
└── tmp
├── cargo
└── npm
└── @fluencelabs
615 directories, 25 files
您的输出可能会有所不同，但您应该注意到，特定软件包的不同版本可以全局安装，即在～/.fluence 目录中，并固定到特定 CLI 项目。稍后会详细介绍。

请注意，如果您希望使用 Fluence 本地网络，需要安装 Docker。

目标受众
Fluence CLI 支持开发人员、容量提供商和委托者的需求。一些功能是共享的，其他功能是针对特定目标的，并分别在 fluence provider 和 fluence delegator 主题下。

CLI 快速指南
如前所述，Fluence Cloudless 开发和生产生态系统由不同的网络组成，从生产主网到本地网络。这些网络有时代表不同的分叉，需要不同的依赖版本才能正常工作。Fluence CLI 允许您根据目标选择切换开发环境，并维护适当的依赖项。

CLI 版本管理
要将 CLI 版本更新到正确的环境，请使用 fluence update 命令：

$ fluence update [CHANNEL] [-a] [--force] [-i | -v ]
如果您希望将版本更新到最新的 dar（测试网）版本，请运行：

$ fluence update kras
更多示例请参阅 fluence update --help。

Fluence CLI 模板
CLI 提供了几种模板，使您能够根据需求快速创建项目：

minimal
基本模板，不预先填充计算服务
quickstart
带有已安装计算服务的模板
ts
适用于带有 TypeScript 前端的计算服务的模板
js
适用于带有 JavaScript 前端的计算服务的模板

Fluence CLI 密钥管理
为了使 Fluence CLI 能够安全地与 Fluence 的对等网络中的节点进行交互和通信，需要加密密钥来进行加密和认证。默认情况下，CLI 会为您创建并管理这些密钥，存储在～/.fluence/secrets 目录中，适用于所有项目，除非您创建特定项目的密钥。项目密钥默认存储在项目的 .fluence/secrets 目录中或任何其他指定位置。

$ fluence key new
? Enter secret key name to generate at /keys-demo/.fluence/secrets: my-project-keys
? Do you want to set my-project-keys as default secret key at /keys-demo/fluence.yaml: Yes
Secret key with name my-project-keys successfully generated and saved to /keys-demo/.fluence/secrets
关于密钥的所有相关信息，请参阅 fluence key --help。

INFO
Fluence CLI 创建和管理的密钥用于 Fluence 的链外对等计算网络的节点识别和内容加密。Fluence CLI 不负责管理您的加密货币（钱包）密钥。

创建项目
您可以使用 fluence init 命令创建一个 Fluence 项目，该命令提供了一些选项来命名和配置您的模板：

$ fluence init [PATH] [--no-input] [-t ] [--env ] [--noxes ]
``