メインコンテンツへスキップ
このドキュメントでは、Injectiveノード用のkeyringとそのさまざまなバックエンドの設定と使用方法について説明します。keyringをセットアップする前にinjectivedをインストールする必要があります。詳細についてはinjectivedのインストールページを参照してください。
keyringは、ノードとの対話に使用される秘密鍵/公開鍵のペアを保持します。例えば、ブロックを正しく署名するために、Injectiveノードを実行する前にバリデーターキーをセットアップする必要があります。秘密鍵は「バックエンド」と呼ばれるさまざまな場所に保存できます。例えば、ファイルやオペレーティングシステム独自のキーストレージなどです。

keyringの利用可能なバックエンド

osバックエンド

osバックエンドは、オペレーティングシステム固有のデフォルトに依存してキーストレージを安全に処理します。通常、オペレーティングシステムの資格情報サブシステムは、ユーザーのパスワードポリシーに従って、パスワードプロンプト、秘密鍵の保存、ユーザーセッションを処理します。以下は、最も一般的なオペレーティングシステムとそれぞれのパスワードマネージャーの一覧です: GNOMEをデフォルトデスクトップ環境として使用するGNU/Linuxディストリビューションには、通常Seahorseが付属しています。KDEベースのディストリビューションのユーザーには、通常KDE Wallet Managerが提供されます。前者は実質的にlibsecretの便利なフロントエンドであり、後者はkwalletクライアントです。 osは、オペレーティングシステム標準の資格情報マネージャーを利用することで、セキュリティを維持しつつ利便性の高い体験を提供するため、デフォルトの選択肢となっています。 ヘッドレス環境で推奨されるバックエンドはfilepassです。

fileバックエンド

fileは、アプリの設定ディレクトリ内にkeyringを暗号化して保存します。このkeyringはアクセスのたびにパスワードを要求し、1つのコマンド内で複数回発生する場合があり、パスワードプロンプトが繰り返し表示されます。fileオプションを使用してコマンドを実行するbashスクリプトを使用する場合、複数のプロンプトに対して以下の形式を利用できます:
# KEYPASSWDが環境変数に設定されていることを前提としています
yes $KEYPASSWD | injectived keys add me
yes $KEYPASSWD | injectived keys show me
# keyring-backendフラグを指定してinjectivedを起動
injectived --keyring-backend=file start
空のkeyringに初めてキーを追加する際、パスワードを2回入力するよう求められます。

passバックエンド

passバックエンドは、passユーティリティを使用して、キーの機密データとメタデータのディスク上の暗号化を管理します。キーはアプリ固有のディレクトリ内のgpg暗号化ファイルに保存されます。passは、最も一般的なUNIXオペレーティングシステムおよびGNU/Linuxディストリビューションで利用可能です。ダウンロードとインストールの方法については、マニュアルページを参照してください。
passは暗号化にGnuPGを使用します。gpgは実行時に自動的にgpg-agentデーモンを起動し、GnuPG資格情報のキャッシュを処理します。資格情報のTTLやパスフレーズの有効期限などのキャッシュパラメータの設定方法の詳細については、gpg-agentのmanページを参照してください。
パスワードストアは初回使用前にセットアップする必要があります:
pass init <GPG_KEY_ID>
<GPG_KEY_ID>をGPGキーIDに置き換えてください。個人用のGPGキー、または専用の暗号化キーを使用できます。

kwalletバックエンド

kwalletバックエンドはKDE Wallet Managerを使用します。これは、KDEをデフォルトデスクトップ環境として搭載するGNU/Linuxディストリビューションにデフォルトでインストールされています。詳細についてはKWallet Handbookを参照してください。

testバックエンド

testバックエンドは、fileバックエンドのパスワード不要バージョンです。キーは暗号化されずにディスクに保存されます。 テスト目的でのみ提供されています。testバックエンドは本番環境での使用は推奨されません

memoryバックエンド

memoryバックエンドはキーをメモリに保存します。プログラムの終了後、キーは即座に削除されます。 テスト目的でのみ提供されています。memoryバックエンドは本番環境での使用は推奨されません

keyringへのキーの追加

injectived keysを使用してkeysコマンドのヘルプを表示し、injectived keys [command] --helpで特定のサブコマンドの詳細を確認できます。
injectived completionコマンドでオートコンプリートを有効にすることもできます。例えば、bashセッションの開始時に. <(injectived completion)を実行すると、すべてのinjectivedサブコマンドがオートコンプリートされます。
keyringに新しいキーを作成するには、<key_name>引数を指定してaddサブコマンドを実行します。このチュートリアルではtestバックエンドのみを使用し、新しいキーをmy_validatorと呼びます。このキーは次のセクションで使用されます。
$ injectived keys add my_validator --keyring-backend test

# 生成されたアドレスを後で使用するために変数に格納します。
MY_VALIDATOR_ADDRESS=$(injectived keys show my_validator -a --keyring-backend test)
このコマンドは新しい24単語のニーモニックフレーズを生成し、該当するバックエンドに保存し、キーペアに関する情報を出力します。このキーペアが価値のあるトークンを保持するために使用される場合は、ニーモニックフレーズを安全な場所に必ず書き留めてください。 デフォルトでは、keyringはeth_secp256k1キーペアを生成します。keyringはed25519キーもサポートしており、--algo ed25519フラグを渡すことで作成できます。keyringはもちろん両方のタイプのキーを同時に保持できます。