使用 Aptos CLI
aptos 工具是一个命令行界面(CLI),用于在 Aptos 区块链上进行开发,调试和节点操作。本文档介绍了如何使用 Aptos CLI 工具。要安装 CLI,请参阅安装 Aptos CLI。
命令行帮助
命令行帮助可用。键入 aptos help 或 aptos --help 以查看可用的命令选项。请参阅下面 aptos --help 的用法输出:
USAGE:
aptos <SUBCOMMAND>
OPTIONS:
-h, --help Print help information
-V, --version Print version information
SUBCOMMANDS:
account Toolfor interacting with accounts
config Toolfor interacting with configuration of the Aptos CLI tool
genesis Toolfor setting up an Aptos chain Genesis transaction
governance Toolfor on-chain governance
help Print this message or the help of the given subcommand(s)
info Show build information about the CLI
init Tool to initialize current directoryfor the aptos tool
key Toolfor generating, inspecting, and interacting with keys
move Toolfor Move related operations
node Toolfor operations related to nodes
stake Toolfor manipulating stake特定于命令的帮助
还提供了特定于命令的帮助。例如,请参阅下面的 aptos move --help 的用法输出:
子命令帮助
还提供了子命令的帮助。例如,请参阅下面的 aptos move compile --help的用法输出:
CLI 信息
运行 aptos info命令以获取 CLI 信息以进行调试。请参阅 aptos info命令的示例输出:
配置示例
CLI 的配置的工作方式如下:
在本地运行的当前工作目录中
您的配置位于本地 YAML 配置文件
.aptos/config.yaml中,即位于运行 CLI 的当前工作目录中。在这种情况下,您必须从当前工作目录运行 CLI 命令,才能使用此配置。您可以通过以下命令验证 CLI 是否设置为使用此本地配置 YAML 文件:
您应该看到以下输出:
config_type的Workspace值指示.aptos/config.yaml文件用于 CLI 配置。
在全局运行的主目录中
您的配置位于全局 YAML 配置文件 ~/.aptos/global_config.yaml 中,即位于您的主目录中。
通过运行以下命令将 CLI 设置为使用此全局配置 YAML 文件:
You will see the below output:
你将看到如下输出:
您也可以使用 show-global-config 命令显示全局配置。
默认配置
如果您没有设置任何全局配置,则使用当前工作目录中的 ./.aptos/config.yaml 进行配置。
设置 shell 补全
您可以使用 generate-shell-completions 命令设置 shell 完成。 您可以查找特定 shell 的配置。 支持的 shell 是 [bash、zsh、fish、powershell、elvish]。 下面是 oh my zsh 的示例。
初始化本地配置并创建账户
将使用配置 config.yaml 创建一个名为 .aptos/ 的本地文件夹,该配置可用于在 CLI 运行之间存储配置。 这是您运行的本地文件,因此您需要继续从该文件夹运行 CLI,或在另一个文件夹中重新初始化。
第 1 步:运行 Aptos 初始化
aptos init 命令将使用您提供的私钥初始化配置。
第 2 步:更改配置
要更改配置,您可以运行命令 aptos init 或手动编辑当前工作目录中的 .aptos/config.yaml。
创建其他配置文件
您还可以为不同的端点和不同的密钥创建其他配置文件。 这些可以通过添加 --profile 参数来实现,并且可以在大多数其他命令中用于替换命令行参数。
帐户示例
用水龙头为账户注资
您可以通过 CLI 使用帐户地址或 default(默认为使用 aptos init 创建的账户地址)使用水龙头为账户注资。
例如,要为上面使用 aptos init 命令创建的帐户 00f1f20ddd0b0dd2291b6e42c97274668c479bca70f07c6b6a80b99720779696 提供资金:
查看账户的余额和转账事件
您可以通过明确指定账户地址来查看余额和转账事件(存款和取款),如下所示:
或通过如下指定默认值:
上述两个命令都将在您的终端上生成以下信息:
列出帐户中的资源
您可以从命令行列出帐户中的资源。 例如,请参阅下文,了解如何列出您刚刚在上面创建的帐户中的资源:
或者
上述两个命令都会在您的终端上生成以下资源列表信息:
列出默认配置文件
您还可以从配置中列出未指定帐户的默认配置文件。
<aside> 💡 提示:
在本节中,帐户地址可能因示例而异。
</aside>
使用配置文件的名称
此外,任何需要帐户的地方都可以使用个人资料的名称:
列出帐户中的模块
您可以通过不同类型的查询来查看帐户下的不同项目。 目前,支持“资源”和“模块”,但即将推出更多查询类型。 例如,要获取模块:
转币
Aptos CLI 也是一个简单的钱包,可以在帐户之间转移代币。
关键示例
生成密钥
要允许生成私钥,您可以使用 aptos key generate command。 您可以生成 x25519 或 ed25519 密钥。
生成对等配置
要允许其他人连接到您的节点,您需要生成对等配置。 下面的命令显示了如何使用 aptos CLI 生成对等配置并将其写入名为 peer_config.yaml 的文件中。
上述命令将生成以下终端输出:
peer_config.yaml 文件将在您当前的工作目录中创建,其内容如下例所示:
**注意:**在地址键中,您应该填写您的地址。
Move 示例
编译 Move
aptos CLI 可用于在本地编译 Move 包。 下面的示例使用 HelloBlockchainin Move 示例。
命名地址可以是帐户地址或配置文件名称。
上述命令将生成以下终端输出:
编译和单元测试 Move
aptos CLI 也可用于在本地编译和运行单元测试。 在本例中,我们将在 move-examples 中使用 HelloBlockchain。
上述命令将生成以下终端输出:
证明 Move
aptos CLI 可用于运行 Move Prover,它是 Move 语言的正式验证工具。 下面的例子证明了 move-examples 中的 hello_prover 包。
上述命令将生成以下终端输出:
如果未正确安装和设置依赖项,Move Prover 可能会失败并显示以下终端输出:
在这种情况下,请参阅安装 Move Prover 的依赖项。
Debug 和打印堆栈跟踪
在本例中,我们将在 debug-move-example 中使用 DebugDemo。
首先,您需要在 Move toml 文件中包含 Move Nursery。
现在,您可以在 DebugDemo Move 文件中使用 Debug::print 和 Debug::print_stack_trace。
您可以运行以下命令:
该命令将生成以下输出:
发布具有命名地址的 Move 包
在本例中,我们将在 move-examples 中使用 HelloBlockchain。
使用您为 HelloBlockchain 设置的帐户地址发布包。
在这里,您需要将 8946741e5c907c43c9e042b3739993f32904723f8e2d1491564d38959b59ac71 更改为您的帐户地址。
您还可以对地址使用命名配置文件。 第一个占位符是 default
<aside> 💡 提示:
发布 Move 模块时,如果多个模块在一个包中,则该包中的所有模块必须具有相同的帐户。 如果他们有不同的帐户,那么发布将在交易级别失败。
</aside>
运行 Move 函数
现在您已经发布了上面的函数,您可以运行它了。
必须给参数一个类型,用冒号分隔它。 在此示例中,我们希望将输入解析为字符串,因此我们输入 string:Hello!。
此外,配置文件可以替换函数 ID 中的地址。
节点命令示例
运行本地测试网
您可以从 aptos CLI 运行本地测试网,这将与构建它的版本相匹配。 此外,它可以与本地单节点测试网并排运行水龙头。
如果节点关闭,这将具有一致的状态,它将从以前的状态开始。 如果你想从创世重启链,你可以添加 --force-restart 标志。
创世仪式
aptos 工具支持通过所谓的创世仪式引导新的区块链。 创世仪式的输出是为在线操作准备区块链的移动指令的输出。 输入包括:
一组验证器及其配置
最初的 Move 模块集,称为框架
一个独特的
ChainId(u8),将其与其他部署区分开来对于测试链,还有一个管理 AptosCoin 铸币的账户
产生创世
创世组织者构建一个
Layout并分发它。创世组织者准备 Aptos 框架的字节码并分发它。
每个参与者生成他们的
ValidatorConfiguration并分发它。每个参与者从产生的贡献中生成一个
genesis.blob创世组织者执行
genesis.blob以导出初始航路点并分发它。每个参与者都开始他们的
aptos-node。aptos-node在启动时验证genesis.blob与 创世组织者提供的航点。区块链将在达到法定人数后开始达成共识。
准备 aptos-core
以下指南假定您有权访问 Aptos-core 存储库或相关工具。 您可以从 GitHub 下载并准备 Aptos-core:
layout 文件
layout 文件该文件包含了:
root_key:用于 AptosCoin 管理的 Ed25519 公钥。users:参与者的集合chain_id:ChainId或唯一的整数,用于区分此部署与其他 Aptos 网络
示例:
构建 Aptos 框架
从您的 Aptos-core 存储库中,构建框架并将其打包:
该框架将存储在 aptos-framework-release 目录中。
ValidatorConfiguration 文件
ValidatorConfiguration 文件ValidatorConfiguration 文件包含:
account_address:管理此验证器的帐户。这必须从ValidatorConfiguration文件中提供的account_key派生。consensus_key:用于验证来自验证者的共识消息的公钥account_key:管理此验证器的帐户的公钥。这用于派生account_address。network_key:验证者和全节点网络认证和加密的公钥。validator_host:验证者所在的网络地址。这包含一个主机和端口字段。主机应该是 DNS 名称或 IP 地址。目前仅支持 IPv4。full_node_host:全节点所在的可选网络地址。这包含一个主机和端口字段。主机应该是 DNS 名称或 IP 地址。目前仅支持 IPv4。stake_amount:该节点质押的硬币数量。预计为 1,如果不同,则配置将被视为无效。
示例:
使用 aptos CLI来生成:
生成验证者密钥:
生成
ValidatorConfiguration:最后一条命令将生成一个
bob.yaml文件,该文件应分发给其他参与者以生成genesis.blob。
创建一个 genesis 和路标
在获得 Layout 文件、各个 ValidatorConfiguration 文件和框架发布后,可以生成 genesis.blob 和路标。 验证早期提供的 ValidatorConfiguration 是否与生成 genesis.blob 的发行版中的相同,这一点很重要。 如果有不匹配,通知所有参与者。
生成 genesis.blob 和路标
将
Layout文件放在一个目录中,例如genesis。将所有
ValidatorConfiguration文件放入genesis目录。确保
ValidatorConfiguration文件列在Layout文件中的用户集下。在
genesis目录中创建一个框架目录,并将框架发布.mv文件放入框架目录。使用
aptosCLI 生成 genesis 和航路点:
开始一个 aptos-node
aptos-node生成 genesis.blob 和路标后,将它们放入验证器和全节点的配置目录中,然后启动验证器和全节点。
Last updated