什么是 Flow CLI?
Flow CLI 是用于开发应用并与 Flow 区块链交互的官方命令行界面。CLI 是 command-line interface(命令行界面)的缩写,指开发者通过在终端输入文本命令来控制工具,而非在图形应用中点击按钮。Flow CLI 可初始化区块链项目、运行本地 Flow 网络、测试 Cadence 代码、部署智能合约、发送交易、执行脚本、管理账户、生成密钥、安装合约依赖项以及获取区块链数据。它为本地 Flow Emulator、Flow Testnet 和 Flow Mainnet 提供统一的开发工作流程。该工具主要面向智能合约开发者、去中心化应用团队、基础设施工程师、测试人员,以及其他在 Flow 上构建产品的技术用户。Flow CLI 不是加密货币、加密钱包、区块链节点、消费者应用或交易产品。它是与 Flow Access Nodes 和本地开发服务通信的开发者软件。Flow CLI 官方文档将其描述为一个统一界面,可用于管理项目、账户、合约、交易、依赖项和区块链查询。
Flow CLI 与 Dapper Labs 有什么关系?
Flow 最初由 Dapper Labs 设计和开发,因此有时有人会搜索“Flow CLI Dapper Labs”。Dapper Labs 创建 Flow,旨在支持服务大量消费者的区块链应用,避免所有应用都争用相同且有限的处理资源。Flow 和 Cadence 的官方历史介绍指出,Dapper Labs 是该区块链的原始设计者和开发者。
Flow CLI 目前通过 Onflow 组织以开源软件形式发布,是更广泛 Flow 开发者生态的一部分。该工具的官方源代码仓库采用 Apache 2.0 许可证公开提供。
因此,Flow CLI 应被理解为 Flow 网络的官方工具,而不是仅由 Dapper Labs 内部运营的私有消费者应用。Flow CLI 最新版本是什么?
截至 2026 年 7 月 14 日,最新发布的 Flow CLI 版本为 2.17.4。2.17.4 版本于 2026 年 6 月 4 日发布,并将工具更新至 Cadence 1.10.3 版本。此版本还将捆绑的 Flow 核心合约组件更新至兼容 Cadence 1.10.3 的版本。开发者可通过Flow CLI 官方版本发布页面确认当前版本。
版本信息可能经常变化,因为 CLI 需要与新的 Cadence 版本、模拟器更新、核心合约、网络功能和安全修复保持兼容。开发者可在终端运行
Flow CLI 为何重要?
区块链开发不只是编写智能合约文件。开发者还必须创建账户、管理密钥、解析合约地址、提交签名交易、检查结果、测试失败情形,并将代码部署到正确网络。Flow CLI 将这些任务整合到一个工具中。对于常规开发操作,它减少了手动向 Flow Access Nodes 构造原始请求的需求。CLI 还让命令可以重复执行,这对测试、部署脚本、持续集成和团队协作都很有价值。保存到部署脚本中的命令可以审查,并在多个开发环境中一致执行。这比完全依赖通过图形界面执行且未记录的手动步骤更安全。如何安装 Flow CLI?
Flow CLI 可安装在 macOS、Windows 和大多数 Linux 系统上。由于可用二进制文件和支持的操作系统版本可能变化,开发者应遵循Flow CLI 官方安装说明。
在 macOS 上,常见的安装命令是
通过 Homebrew 安装后,通常可使用
安装后,开发者应运行
如何创建 Flow 项目?
创建 Flow 项目的主要命令是
该命令会创建项目结构,并生成名为
官方项目初始化指南说明了
什么是 flow.json?
flow.json 官方配置参考介绍了可用的配置部分和格式。
团队应通过版本控制审查
flow.json 会存储私钥吗?
Flow CLI 支持包含私钥信息的配置,但将未加密的生产密钥直接写入共享的
Flow CLI 可使用哪些网络?
Flow CLI 可与本地 Flow Emulator、Flow Testnet、Flow Mainnet 及自定义 Flow Access Node 端点交互。Emulator 用于私有本地开发。Testnet 是公共测试环境,可用于测试应用,而无需使用生产环境中的 Flow 资产。Mainnet 是生产区块链,交易可能影响真实账户、已部署合约和加密资产。许多命令都接受用于指定目标环境的
例如,开发者可以使用
什么是 Flow Emulator?
Flow Emulator 是轻量级本地网络,可在开发和测试中复现 Flow 区块链的重要行为。它随 Flow CLI 一同提供,可通过
Flow Emulator 官方文档将其描述为本地环境,可在使用公共网络前执行交易、部署合约和测试应用。
由于 Emulator 在本地运行,开发者可以重置其状态、查看详细日志并测试失败情形,而无需花费真实加密货币。Emulator 含有一个服务账户,可在本地环境中创建账户、签署交易和部署合约。其私钥不适用于 Mainnet,因为该密钥是有意公开且可预测的。Emulator 基本实现了 Flow Access API 的功能,但开发者不应假定一台电脑能够完美复现所有生产环境条件。公共网络延迟、验证者行为、网络拥堵、外部服务和生产账户配置都可能导致不同结果。本地开发流程如何运作?
常见的 Flow CLI 工作流程从使用
随后,开发者使用
将 Cadence 合约添加到项目,并在
可使用
Flow CLI 如何部署智能合约?
Flow CLI 可将 Cadence 智能合约部署到项目配置中定义的账户。项目级部署命令为
官方部署文档说明,该命令会从
例如,
Flow CLI 能更新现有合约吗?
Flow CLI 可为已存储在 Flow 账户中的合约提交更新交易。更新必须由拥有该账户足够权重的密钥授权。Cadence 合约更新受语言和网络规则约束,这些规则用于保护已存储资源和现有应用状态。即使交易在技术上有效,更新仍可能引入漏洞、破坏依赖应用或改变预期行为。更新生产合约前,开发者应执行迁移测试并确认与现有账户数据兼容。Flow 合约部署官方指南介绍了账户设置、部署和合约更新注意事项。
什么是 Cadence?
Cadence 是专为 Flow 区块链设计的智能合约编程语言。它使用面向资源的编程概念来表示加密资产及其他不应被意外复制或丢失的值。Flow CLI 包含执行、测试、代码检查、部署和交互 Cadence 代码所需的工具。CLI 和 Cadence 版本必须保持兼容,因为语言变化可能影响解析、类型检查、执行和合约行为。截至 Flow CLI 2.17.4 版本,捆绑的 Cadence 版本为 1.10.3。开发者可通过Cadence 官方文档了解当前语言行为。
Cadence 脚本和交易有什么区别?
Cadence 脚本读取区块链状态,但不会永久更改状态。脚本可以获取账户余额、读取公开合约字段、计算结果或检查已存储的公开权限。脚本无需交易授权,因为它无法修改区块链状态。Cadence 交易则可以更改区块链状态。交易可以转移加密资产、创建资源、调用合约函数、修改账户存储或执行其他授权操作。交易必须由承担 payer、proposer 或 authorizer 角色的账户签名。Flow CLI 分别提供用于执行脚本和发送交易的命令组。这一区别很重要,因为提交交易会带来授权、费用和状态变更风险,而只读脚本不会以同样方式产生这些风险。Flow CLI 如何发送交易?
Flow CLI 可构建、签名、提交并查询 Flow 交易。交易命令会指定 Cadence 交易文件、参数、签名者配置和目标网络。CLI 使用
具体命令语法和可用标志列于Flow CLI 官方命令概览。
Flow CLI 如何管理账户?
Flow 账户可以包含加密资产、智能合约、存储资源、公开权限和一个或多个公钥。Flow CLI 可以创建账户、获取账户详情、检查密钥、添加或撤销密钥,并将合约部署到已授权账户。账户模型将 Flow 地址与单个公钥分开。一个账户可以包含多个密钥,这些密钥拥有不同的权重、签名算法、哈希算法和序列号。这种设计支持密钥轮换、多设备、共同控制及其他授权模式。Flow 账户官方文档说明了 Flow 账户与一个密钥永久决定一个地址的账户模型有何不同。
只有在其他有效密钥仍提供足够授权权重时,撤销被泄露密钥才能保护账户。依赖密钥管理流程保护高价值生产账户前,开发者应先进行测试。Flow CLI 如何处理加密密钥?
Flow CLI 包含生成和解码 Flow 兼容密钥的命令。它还提供创建和验证数字签名的命令。密钥生成必须使用安全随机数;如果私钥可预测,攻击者就可能将其还原。切勿将私钥粘贴到公开问题、共享终端录屏、聊天消息或源代码仓库中。如果直接将私钥作为命令参数提供,命令行历史也可能泄露机密信息。生产系统应优先使用权限受限的专用密钥文件、硬件支持的存储或受支持的密钥管理服务。密钥备份也必须妥善保护,因为丢失全部有效密钥可能导致账户控制权永久丧失。什么是 Flow CLI 依赖管理器?
Flow CLI 依赖管理器用于安装和追踪项目所使用的外部 Cadence 合约。智能合约经常依赖部署在 Flow 网络其他位置的标准、接口和实现。依赖管理器可以获取合约源代码并更新项目配置,使导入内容能够正确解析。命令
命令
依赖管理官方文档介绍了如何安装、检查和管理合约依赖项。
开发者应审查依赖项代码和地址,而不是假定所有链上合约都安全。恶意依赖项或识别错误的依赖项可能在去中心化应用中引入未授权行为。团队还应考虑应用部署后,其他账户是否能够更新导入的合约。Flow CLI 如何测试 Cadence 智能合约?
Flow CLI 内含 Cadence 测试框架,并使用
Cadence 官方测试指南介绍了单元测试和集成测试流程。
集成测试尤其有价值,因为它能发现账户设置、交易授权、导入、权限和资源转移等问题。代码覆盖率高并不能证明合约安全,因为测试可能没有检查最危险的假设。在适当情况下,安全关键合约还应接受人工审查、对抗性测试和独立审计。Flow CLI 中的分叉测试是什么?
分叉测试会创建本地开发环境,从 Flow Mainnet 或 Testnet 读取状态,并在本地执行变更。开发者可以根据真实部署的合约、地址和区块链状态测试代码,而不会修改原公共网络。开发者可以使用类似
Flow 官方分叉测试指南介绍了本地 Emulator 如何镜像其他 Flow 网络的状态。
如果应用依赖难以手动复现的合约或账户数据,分叉测试就很有用。它还可以帮助在生产合约更新前发现兼容性问题。分叉环境并不等同于创建 Flow 区块链的永久分叉。它是私有测试副本,本地交易不会更改 Mainnet 或 Testnet。开发者仍应核实所选区块高度和网络,因为生产状态之后发生变化时,测试结果可能不同。Flow CLI 的代码检查是什么?
代码检查会在不部署合约的情况下,检查源代码中可能存在的错误、不安全模式、格式问题和其他问题。Flow CLI 为 Cadence 项目提供
Flow CLI 如何查询区块链数据?
Flow CLI 可获取 Flow Access API 提供的账户、区块、集合、事件、交易、执行结果和其他信息。命令
命令
什么是 Flow 交互模板?
Flow 交互模板提供 Cadence 交易和脚本的标准化描述。它们有时称为 FLIX 模板。模板可以描述钱包或应用理解某项操作所需的交互代码、参数、依赖项和元数据。Flow CLI 包含可执行、生成和打包受支持交互的 FLIX 命令。模板有助于提升应用开发者、钱包和智能合约之间的一致性。用户签名前仍须核实交易代码和参数,因为模板无法消除智能合约或钱包风险。什么是定时交易命令?
当前版本的 Flow CLI 包含与 Flow 定时交易交互的命令。定时交易允许智能合约根据网络调度规则安排未来自动执行。加密货币领域的潜在用途包括定期转账、延迟执行合约操作、自动化金融逻辑和基于时间的应用行为。定时交易官方文档介绍了设置要求、优先级和命令行为。
安排交易并不能保证经济结果有利,因为资产价格、账户余额、合约状态和网络状况都可能在执行前发生变化。什么是 Flowser?
Flowser 是可与本地 Flow Emulator 环境配合使用的可视化浏览器。在具备所需组件时,Flow CLI 可使用相应命令启动 Flowser。开发者可以通过界面查看本地账户、合约、区块、交易和事件,无需逐项手动查询。Flowser 可作为命令行的补充,但不能替代自动化测试或源代码审查。本地浏览器显示的结果适用于当前 Emulator 状态,不应与 Mainnet 活动混淆。什么是 Flow Dev Wallet?
Flow Dev Wallet 是用于测试钱包授权和应用交互的开发工具。在受支持的本地工作流程中,Flow CLI 可启动开发钱包环境。开发者可以使用它模拟登录、账户授权、交易批准和其他钱包行为,以开发去中心化应用。Dev Wallet 并非用于保护有价值的生产资产。生产应用必须集成适当的用户钱包,并遵循安全的身份验证和交易审核实践。Flow CLI 支持 Flow EVM 吗?
Flow 同时支持 Cadence 智能合约和 Ethereum Virtual Machine 环境,但 Flow CLI 主要是 Flow Cadence 与 Access API 开发模式的官方命令行工具。在 Flow EVM 上运行的 Solidity 应用通常使用兼容 EVM 的 JSON-RPC 工具和 EVM Gateway。Flow EVM Gateway 官方文档说明,EVM 客户端通过实现 Ethereum JSON-RPC 规范的 Gateway 连接。
Cadence 应用也可以通过 Cadence Owned Accounts 和网络合约与 Flow EVM 交互。开发者应根据应用使用 Cadence、Solidity 还是结合两种执行环境来选择工具。使用 Flow CLI 并不意味着所有 EVM 专用操作都通过同一组命令完成。Flow CLI 与 Flow SDK 的区别
Flow CLI 是可交互且可编写脚本的终端工具。Flow 软件开发工具包(SDK)是导入应用代码中的编程库。CLI 适用于本地开发、项目配置、手动网络交互、测试和部署自动化。SDK 更适合需要持续与 Flow 通信的后端服务、应用服务器、机器人、钱包、索引器和其他软件。开发团队可以使用 Flow CLI 部署合约,再使用 JavaScript、Go 或移动端 SDK 在应用中与合约交互。这两类工具相辅相成,并非直接替代关系。Flow CLI 与图形化开发环境的区别
图形化开发环境提供菜单、编辑器、可视化账户工具和其他点击式功能。Flow CLI 提供更易自动化、保存为脚本并在持续集成中复现的命令。图形化工具对新手可能更友好,而 CLI 能为可重复工作流程提供更强控制力和透明度。许多开发者会同时使用两种方式:在集成开发环境中编辑 Cadence,并在内嵌终端中运行 Flow CLI 命令。官方 Cadence 扩展可提供语法支持和开发辅助,而 Flow CLI 负责执行和部署。Flow CLI 可用于持续集成吗?
Flow CLI 命令可以纳入持续集成和持续部署工作流程。流水线可以安装固定版本的 CLI、检查 Cadence 文件、运行测试、初始化 Emulator、部署测试合约并验证预期交易。自动化 Mainnet 部署所需的控制措施,必须远比自动化测试严格。私钥应保存在安全的机密管理系统中,而不是直接写入流水线文件。生产部署可能需要人工批准、签名发布制品、受保护分支和多名审核者。如果测试、代码检查、部署验证或交易结果检查未达到预期,流水线应停止。团队还应记录每次发布所使用的 Flow CLI 和 Cadence 版本。Flow CLI 会收集使用数据吗?
Flow CLI 当前默认通过 Mixpanel 收集汇总的命令使用次数。官方文档说明,该使用次数统计系统不会收集命令参数值和标志值。用户可以运行
可运行
Flow CLI 官方数据收集页面介绍了收集内容及如何更改设置。
对隐私、合规或隔离构建有要求的组织,应在受控环境安装 CLI 前审查遥测行为。Flow CLI 安全最佳实践
开发者应仅通过官方文档或经验证的版本文件安装 Flow CLI。签署或部署任何交易前,应确认选定的网络。Mainnet 私钥不应以明文形式存放在公开项目文件中。本地开发、测试、合约管理、资金库控制和常规应用操作应使用不同账户和密钥。生产账户应设置适当的密钥权重,避免依赖一台未受保护的开发者笔记本电脑。应核实各网络上的合约导入项和依赖项地址。提交交易前,应检查签名者角色、参数、Gas 限额和目标合约。开发者应检查封存后的交易结果,而不应假定交易提交后就一定成功。将 CLI 版本升级引入生产工作流程前,应先进行测试。存在安全替代授权路径时,应撤销旧的或不再使用的账户密钥。切勿在声称必须输入助记词或私钥才能激活 Flow CLI 的网站中输入这些信息。Flow CLI 常见错误
连接错误可能表示 Emulator 未运行、Access Node 地址不正确、所选端口不可用,或无法连接网络服务。授权错误可能由私钥、密钥索引、序列号、签名算法、哈希算法或账户地址错误导致。Cadence 合约别名缺失或指向错误网络地址时,可能发生导入错误。Cadence 代码无效、语言版本不兼容、缺少依赖项或账户授权不足,都可能导致部署错误。参数的 Cadence 类型错误,或账户缺少所需资源或权限时,交易可能失败。多个交易几乎同时尝试使用同一 proposer 密钥时,可能发生序列号错误。开发者应阅读完整错误输出,确认当前网络,并先使用命令的
Flow CLI 的常见用途
Flow CLI 可用于创建和配置新的 Cadence 项目。它可以运行用于智能合约开发的本地区块链。它可以创建账户并管理账户密钥。它可以部署和更新 Cadence 合约。它可以执行只读脚本和签名交易。它可以安装合约依赖项并管理网络别名。它可以运行单元测试、集成测试、代码检查和基于 Mainnet 状态的分叉测试。它可以获取区块、交易、账户、集合和事件。它可以支持自动化构建和部署流水线。在调查应用错误时,它还可帮助开发者复现区块链操作。Flow CLI 的局限性
Flow CLI 不会自动确保智能合约安全。它无法阻止开发者签署有害交易或将代码部署到错误账户。它不能取代专业审计、威胁建模、访问控制设计或运营监控。本地 Emulator 无法完美复现所有公共网络状况。CLI 也不是面向普通消费者的完整钱包界面。它不会提供涵盖所有 Flow 交易的完整历史分析数据库。开发者仍须了解 Cadence、Flow 账户、交易角色、权限、资源存储、依赖项和网络安全。常见问题
Flow CLI 是什么意思?
Flow CLI 是 Flow Command-Line Interface(Flow 命令行界面)的简称,是用于 Flow 区块链的官方终端开发工具。Flow CLI 是 Dapper Labs 开发的吗?
Flow 最初由 Dapper Labs 设计和开发;Flow CLI 目前则通过 Onflow 组织作为 Flow 生态的官方开源软件维护。Flow CLI 是加密货币钱包吗?
不是。Flow CLI 是开发者工具,但可以使用已配置的私钥签署交易并管理 Flow 账户。Flow CLI 最新版本是什么?
截至 2026 年 7 月 14 日,最新官方版本为 Flow CLI 2.17.4。Flow CLI 2.17.4 包含哪个 Cadence 版本?
Flow CLI 2.17.4 包含 Cadence 1.10.3。如何在 macOS 上安装 Flow CLI?
常见方式是通过 Homebrew 运行
如何查看 Flow CLI 版本?
在终端运行
如何创建新的 Flow 项目?
运行
什么是 flow.json?
如何启动 Flow Emulator?
在终端运行
Flow Emulator 使用真实 FLOW 吗?
不使用。本地 Emulator 使用的开发状态和资产没有 Mainnet 价值。Flow CLI 可以将合约部署到 Mainnet 吗?
可以。提供正确的网络、账户、密钥和部署配置后,Flow CLI 可将合约部署到 Flow Mainnet。部署 Flow 项目使用什么命令?
标准项目部署命令是
Flow CLI 可以更新智能合约吗?
可以,但必须提交经过授权且符合 Cadence 和 Flow 网络规则的合约更新交易。如何运行 Cadence 测试?
在已配置的 Flow 项目中运行
什么是 Flow 分叉测试?
分叉测试会基于复制的 Mainnet 或 Testnet 状态运行本地环境,而不会更改公共区块链。Flow CLI 支持创建账户吗?
支持。Flow CLI 可以创建和获取 Flow 账户,并管理其密钥。Flow CLI 可以读取区块链数据吗?
可以。它能获取 Flow Access Nodes 提供的区块、账户、交易、事件、集合和其他数据。Flow 脚本和交易有什么区别?
脚本读取状态而不更改区块链;交易则需要签名,并且可以修改区块链状态。Flow CLI 可以管理合约依赖项吗?
可以。依赖管理器可安装、列出并追踪项目使用的外部 Cadence 合约。Flow CLI 会收集遥测数据吗?
Flow CLI 当前默认收集汇总的命令使用次数,用户可以运行
私钥应该存储在 flow.json 中吗?
生产私钥不应以未加密的明文存放在共享或公开的
Flow CLI 可以用于自动化部署吗?
可以,但生产部署应使用固定版本、受保护的机密信息、审核控制并明确核实网络。Flow CLI 支持 Flow Testnet 吗?
支持。Testnet 是 Flow CLI 网络配置支持的标准环境之一。Flow CLI 用于 Solidity 开发吗?
Flow CLI 主要支持 Cadence 和 Flow Access API 工作流程;Flow EVM 上的 Solidity 应用通常使用兼容 EVM 的 JSON-RPC 工具。Flow CLI 是开源的吗?
是。Flow CLI 源代码依据 Apache 2.0 许可证公开提供。使用 Flow CLI 会导致加密货币损失吗?
会。密钥、网络、地址、合约代码或交易参数错误,都可能造成 Mainnet 上不可逆的损失。结语
Flow CLI 是用于在 Flow 区块链上构建应用并与其交互的官方命令行开发工具。Flow CLI 与 Dapper Labs 的联系源于 Dapper Labs 最初设计和开发 Flow;如今,CLI 已作为 Flow 生态的开源软件运行。该工具整合了项目初始化、模拟器访问、Cadence 测试、账户管理、密钥操作、合约部署、依赖管理、交易提交和区块链查询。其
您可能也喜欢
反恐融资(CTF)
框架
波动性爆发
热门
目前热门备受市场关注的加密货币
最高成交量
按交易量计算交易量最大的加密货币

