通过 Aptos CLI 使用硬件钱包 Ledger
使用像 Ledger 这样的硬件钱包是在 mainnet
上签署交易最安全的方式,因为您的私钥永远不会离开您的设备。
Ledger Nano S
的内存有限,可能无法在 Aptos 上签署太多的交易。如果您尝试签署的交易数量太大,超出了您的设备处理能力,您将收到错误 Wrong raw transaction length
初始设置
您需要对 Aptos CLI 和您的 Ledger 设备进行一些配置步骤,以签署交易。
确保您已经安装了 Aptos CLI
如果您尚未安装,可以按照安装步骤进行安装。
请确认你已经按照指南完成了 Ledger 设备的初始配置
您可以在 Ledger 的网站上找到这些步骤。例如,这里是 Ledger Nano X 的设置说明。
将您的 Ledger 设备连接到电脑
按照这个指南在您的 Ledger 设备上安装 Aptos 应用程序。
解锁您的 Ledger 设备并打开 Aptos 应用程序
无论何时您想使用 Ledger 进行签名,都需要将其连接、解锁,并在运行任何 CLI 命令之前打开 Aptos 应用程序。
在 Aptos CLI 中创建一个新的 Ledger 配置文件
aptos init --profile <your-profile> --ledger
然后按照 Terminal 提示操作,如下所示:
Configuring for profile <your-profile>
Choose network from [devnet, testnet, mainnet, local, custom | defaults to devnet]
No network given, using devnet...
Please choose an index from the following 5 ledger accounts, or choose an arbitrary index that you want to use:
[0] Derivation path: m/44'/637'/0'/0'/0' (Address: 59836ba1dd0c845713bdab34346688d6f1dba290dbf677929f2fc20593ba0cfb)
[1] Derivation path: m/44'/637'/1'/0'/0' (Address: 21563230cf6d69ee72a51d21920430d844ee48235e708edbafbc69708075a86e)
[2] Derivation path: m/44'/637'/2'/0'/0' (Address: 667446181b3b980ef29f5145a7a2cc34d433fc3ee8c97fc044fd978435f2cb8d)
[3] Derivation path: m/44'/637'/3'/0'/0' (Address: 2dcf037a9f31d93e202c074229a1b69ea8ee4d2f2d63323476001c65b0ec4f31)
[4] Derivation path: m/44'/637'/4'/0'/0' (Address: 23c579a9bdde1a59f1c9d36d8d379aeefe7a5997b5b58bd5a5b0c12a4f170431)
0
Account 59836ba1dd0c845713bdab34346688d6f1dba290dbf677929f2fc20593ba0cfb has been already found on-chain
---
Aptos CLI is now set up for account 59836ba1dd0c845713bdab34346688d6f1dba290dbf677929f2fc20593ba0cfb as profile <your-profile>! Run `aptos --help` for more information about commands
{
"Result": "Success"
}
在这个示例中,使用者选择通过在 aptos init
命令后输入 0
来选择 Ledger 设备上的第一个账户。你可以根据需要选取任意账户。
常见错误:
- 如果您看到错误
Device Not Found
,请确保解锁您的 Ledger,然后重试。 - 如果您看到错误
Aptos ledger app is not opened
,请确保在您的 Ledger 上打开 Aptos 应用程序,然后重试。
最后,您需要按照这些步骤在您的 Ledger 设备上启用盲签。
- 盲签名功能允许你确认那些无法通过人类可理解的语言进行核验的智能合约操作。
- 在进行交易时,如果某些数据信息过于庞大以致无法直接显示,这一功能是必不可少的,以确保交易能够执行而不受这种限制。
使用 Ledger 签署(Signing)交易
完成初始设置后,您可以通过遵循以下步骤签署交易:
- 插入您的 Ledger 设备。
- 解锁它。
- 打开 Aptos 应用程序。
- 运行需要签名的 Aptos CLI 命令。
这个过程适用于任何需要签名的命令,无论是转移 coin、发布 Move 合约、与合约交互等。
例如,如果您想发布一个像 [hello_blockchain](https://github.com/aptos-labs/aptos-core/tree/main/aptos-move/move-examples/hello_blockchain)
这样的 Move 包,您可以按照上述步骤,然后运行:
aptos move publish --profile <your-ledger-profile-name> --named-addresses hello_blockchain=<your-ledger-profile-name>
您应该会看到像这样的响应:
Compiling, may take a little while to download git dependencies...
INCLUDING DEPENDENCY AptosFramework
INCLUDING DEPENDENCY AptosStdlib
INCLUDING DEPENDENCY MoveStdlib
BUILDING Examples
package size 1755 bytes
Do you want to submit a transaction for a range of [139600 - 209400] Octas at a gas unit price of 100 Octas? [yes/no] >
yes
{
"Result": {
"transaction_hash": "0xd5a12594f85284cfd5518d547d084030b178ee926fa3d8cbf699cc0596eff538",
"gas_used": 1396,
"gas_unit_price": 100,
"sender": "59836ba1dd0c845713bdab34346688d6f1dba290dbf677929f2fc20593ba0cfb",
"sequence_number": 0,
"success": true,
"timestamp_us": 1689887104333038,
"version": 126445,
"vm_status": "Executed successfully"
}
}
在您批准发布此包后,系统会提示您在 Ledger 设备上签署交易。一旦签署,包将被发布到网络!
你可能遇到的一个错误是 Error: Wrong raw transaction length
。这表示交易大小或者数据包对你的设备来说过大,无法被签名。目前,Aptos Ledger 应用只支持 20kb 以下的交易量。由于 Ledger Nano S
设备的内存更小,这就是为什么它更有可能产生这个错误的原因。