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 ]
``