跳转到主要内容
本文档介绍如何为 Injective 节点配置和使用 keyring 及其各种 backend。在设置 keyring 之前,应先安装 injectived。更多信息请参阅安装 injectived 页面
keyring 保存用于与节点交互的私钥/公钥对。例如,在运行 Injective 节点之前需要设置 validator 密钥,以便正确签署区块。私钥可以存储在不同的位置,称为 “backend”,例如文件或操作系统自带的密钥存储。

keyring 可用的 backend

os backend

os backend 依赖操作系统特定的默认设置来安全处理密钥存储。通常,操作系统的凭证子系统根据用户的密码策略处理密码提示、私钥存储和用户会话。以下是最流行的操作系统及其各自的密码管理器列表: 使用 GNOME 作为默认桌面环境的 GNU/Linux 发行版通常预装 Seahorse。基于 KDE 的发行版用户通常使用 KDE Wallet Manager。前者实际上是 libsecret 的便捷前端,后者是 kwallet 客户端。 os 是默认选项,因为操作系统的默认凭证管理器旨在满足用户最常见的需求,并在不影响安全性的情况下提供舒适的体验。 对于无头环境,推荐使用 filepass backend。

file backend

file backend 将 keyring 加密存储在应用程序的配置目录中。每次访问此 keyring 时都会请求密码,这可能在单个命令中多次发生,导致重复的密码提示。如果使用 bash 脚本执行使用 file 选项的命令,你可能需要使用以下格式处理多次提示:
# 假设 KEYPASSWD 已在环境中设置
yes $KEYPASSWD | injectived keys add me
yes $KEYPASSWD | injectived keys show me
# 使用 keyring-backend 标志启动 injectived
injectived --keyring-backend=file start
首次向空 keyring 添加密钥时,系统会提示你输入两次密码。

pass backend

pass backend 使用 pass 工具来管理密钥敏感数据和元数据的磁盘加密。密钥存储在应用程序特定目录中的 gpg 加密文件中。pass 适用于大多数流行的 UNIX 操作系统以及 GNU/Linux 发行版。有关如何下载和安装的信息,请参阅其手册页。
pass 使用 GnuPG 进行加密。gpg 在执行时会自动调用 gpg-agent 守护进程,该进程处理 GnuPG 凭证的缓存。有关如何配置缓存参数(如凭证 TTL 和密码过期)的更多信息,请参阅 gpg-agent 手册页。
在首次使用之前必须设置密码存储:
pass init <GPG_KEY_ID>
<GPG_KEY_ID> 替换为你的 GPG 密钥 ID。你可以使用个人 GPG 密钥或专门用于加密密码存储的其他密钥。

kwallet backend

kwallet backend 使用 KDE Wallet Manager,它默认安装在以 KDE 为默认桌面环境的 GNU/Linux 发行版上。更多信息请参阅 KWallet Handbook

test backend

test backend 是 file backend 的无密码变体。密钥以未加密的形式存储在磁盘上。 仅供测试目的使用。不建议在生产环境中使用 test backend

memory backend

memory backend 将密钥存储在内存中。程序退出后密钥会立即删除。 仅供测试目的使用。不建议在生产环境中使用 memory backend

向 keyring 添加密钥

你可以使用 injectived keys 获取 keys 命令的帮助,使用 injectived keys [command] --help 获取特定子命令的更多信息。
你还可以使用 injectived completion 命令启用自动补全。例如,在 bash 会话开始时运行 . <(injectived completion),所有 injectived 子命令都将自动补全。
要在 keyring 中创建新密钥,请使用 <key_name> 参数运行 add 子命令。在本教程中,我们将仅使用 test backend,并将新密钥命名为 my_validator。此密钥将在下一节中使用。
$ injectived keys add my_validator --keyring-backend test

# 将生成的地址放入变量中以供后续使用。
MY_VALIDATOR_ADDRESS=$(injectived keys show my_validator -a --keyring-backend test)
此命令生成一个新的 24 词助记词,将其持久化到相关 backend,并输出有关密钥对的信息。如果此密钥对将用于持有有价值的 token,请务必将助记词记录在安全的地方! 默认情况下,keyring 生成 eth_secp256k1 密钥对。keyring 还支持 ed25519 密钥,可以通过传递 --algo ed25519 标志来创建。keyring 当然可以同时持有两种类型的密钥。