# Keys

Keys模块用于管理plug的Tendermint本地密钥库(钱包)。

# 可用命令

名称 描述
add 创建新密钥,加密后存入磁盘
delete 删除指定的密钥
export 将密钥导出为json文件
import 从本地钥匙库导入私钥
list 列出所有密钥
migrate 从钥匙库将密钥信息迁移到另一个钥匙库
mnemonic 从一些输入熵中计算出bip32助记词
parse 将地址从hex解析为bech32,反之亦然
show 按名称或地址检索密钥信息

# plugchaind keys add

获得一个密钥并写入磁盘。

plugchaind keys add <key-name> [flags]

标志:

名称,速记 默认 描述 必须
--multisig 构造和存储multisig公钥
--multisig-threshold 1 指定多签密钥最少签名数
--nosort false 传递给--multisig的密钥按其提供的顺序获取
--pubkey 解析bech32格式的公钥并将其保存到磁盘
--interactive false 交互式提示用户输入BIP39密码和助记词
--ledger false 对本地设备上的密钥存储的引用
--recover false 提供种子短语来恢复现有密钥
--no-backup false 不要打印出种子短语(如果其他人正在观看终端)
--dry-run false 执行操作,但不要向本地密钥库添加密钥
--hd-path 手动HD路径导出(覆盖BIP44 配置)
--coin-type 118 HD衍生的硬币类型编号
--account 0 高清衍生账号
--index 0 HD派生的地址索引号
--algo secp256k 生成密钥的密钥签名算法

# 创建密钥

plugchaind keys add MyKey

执行该命令后输入并确认密码,将生成一个新的密钥。密码至少8个字符。

注意

重要

写下助记词并保存在安全的地方!如果你不慎忘记密码或丢失了密钥,这是恢复账户的唯一方法。

# 通过助记词恢复密钥

如果你忘记了密码或丢失了密钥,或者你想在其他地方使用密钥,可以通过助记词短语来恢复密钥。

plugchaind keys add MyKey --recover

系统会要求你输入密钥的新密码并确认,然后输入助记词。然后你将得到恢复的密钥。

Enter a passphrase for your key:
Repeat the passphrase:
Enter your recovery seed phrase:

# 创建多签密钥

以下例子为创建一个包含3个子密钥的多签密钥,且指定最小签名数为2。只有交易签名数大于等于2时,该交易才会被广播。

plugchaind keys add <multisig-keyname> --multisig-threshold=2 --multisig=<signer-keyname-1>,<signer-keyname-2>,<signer-keyname-3>

提示

<signer-keyname> 可以为“local/offline/ledger”类型,但不允许为“multi”类型。

如果你没有子密钥的所有许可,则可先请求获取pubkeys并以此创建“offline”密钥,然后你将可以创建多签密钥。

其中“offline”类型密钥可以通过“plugchaind keys add --pubkey”命令创建。

如何使用多签密钥签名和广播交易,请参阅 multisig

# plugchaind keys delete

根据名称删除本地密钥

plugchaind keys delete <key-name> [flags]

标志:

名称,速记 默认 描述 必须
--force, -f false 无密码强制删除秘钥
--yes, -y false 删除离线和ledger引用密钥时跳过确认提示

# 删除一个本地密钥

plugchaind keys delete MyKey

# plugchaind keys export

将密钥keystore信息导出为json文件。

plugchaind keys export <key-name> [flags]

# 导出keystore

plugchaind keys export Mykey --output-file=<path-to-keystore>

# plugchaind keys import

将密钥导入到本地钥匙库

# 将密钥导入到本地钥匙库

plugchaind keys import <name> <keyfile> [flags]

# plugchaind keys list

返回此密钥管理器存储的所有密钥的名称、类型、地址和公钥列表。

标志:

名称,速记 默认 描述 必须
--list-name List names only

# 列出所有密钥

plugchaind keys list

# plugchaind keys migrate

将钥匙库中的钥匙信息迁移到新钥匙库

标志:

名称,速记 默认 描述 必须
--dry-run Run migration without actually persisting any changes to the new Keybase

# 迁移钥匙信息

plugchaind keys migrate [flags]

# plugchaind keys mnemonic

通过读取系统熵来创建24个单词组成的bip39助记词(也称为种子短语)。如果需要传递自定义的熵,请使用unsafe-entropy模式。

plugchaind keys mnemonic [flags]

标志:

名称,速记 默认 描述 必须
--unsafe-entropy 提示用户提供自定义熵,而不是通过系统生成

# 创建助记词

plugchaind keys mnemonic

执行上述命令后你将得到24个单词组成的助记词,例如:

beauty entire blue tape ordinary fix rotate learn smart tiger dolphin cycle cigar dish alcohol slab bachelor vital design consider paper panther mad eternal

# plugchaind keys parse

将十六进制的密钥地址和指纹转换为标准输出并打印为bech32 cosmos前缀格式,反之亦然。

# 格式化打印密钥和指纹

plugchaind keys parse <hex-or-bech32-address> [flags]

# plugchaind keys show

查询本地密钥的详细信息。

plugchaind keys show <key-name> [flags]

标志:

名称,速记 默认 描述 必须
--address false 仅输出地址(覆盖 --output)
--bech acc 在账本设备中输出地址
--device false 查询命令帮助
--multisig-threshold 1 N个必需签名中的K个
--pubkey false 仅输出公钥 覆盖 --output)

# 查询指定密钥

plugchaind keys show MyKey

执行命令后将会显示以下信息:

- name: Mykey
  type: local
  address: gx1tulwx2hwz4dv8te6cflhda64dn0984harlzegw
  pubkey: gxpub1addwnpepq24rufap6u0sysqcpgsfzqhw3x8nfkhqhtmpgqt0369rlyqcg0vkgwzc4k0
  mnemonic: ""
  threshold: 0
  pubkeys: []

# 查询验证人operator地址

如果某个地址已绑定成为验证人operator(用于创建验证人的地址),则可以使用--bech val获取其gxvaloper前缀的operator地址和gxvaloperpub前缀的公钥地址:

plugchaind keys show MyKey --bech val

示例输出:

- name: Mykey
  type: local
  address: gxvaloper1tulwx2hwz4dv8te6cflhda64dn0984hakwgk4f
  pubkey: gxvaloperpub1addwnpepq24rufap6u0sysqcpgsfzqhw3x8nfkhqhtmpgqt0369rlyqcg0vkgd8e6zy
  mnemonic: ""
  threshold: 0
  pubkeys: []