このドキュメントでは、Injectiveノード用のkeyringとそのさまざまなバックエンドの設定と使用方法について説明します。keyringをセットアップする前に
injectivedをインストールする必要があります。詳細についてはinjectivedのインストールページを参照してください。keyringの利用可能なバックエンド
osバックエンド
osバックエンドは、オペレーティングシステム固有のデフォルトに依存してキーストレージを安全に処理します。通常、オペレーティングシステムの資格情報サブシステムは、ユーザーのパスワードポリシーに従って、パスワードプロンプト、秘密鍵の保存、ユーザーセッションを処理します。以下は、最も一般的なオペレーティングシステムとそれぞれのパスワードマネージャーの一覧です:
- macOS(Mac OS 8.6以降): Keychain
- Windows: Credentials Management API
- GNU/Linux:
libsecretの便利なフロントエンドであり、後者はkwalletクライアントです。
osは、オペレーティングシステム標準の資格情報マネージャーを利用することで、セキュリティを維持しつつ利便性の高い体験を提供するため、デフォルトの選択肢となっています。
ヘッドレス環境で推奨されるバックエンドはfileとpassです。
fileバックエンド
fileは、アプリの設定ディレクトリ内にkeyringを暗号化して保存します。このkeyringはアクセスのたびにパスワードを要求し、1つのコマンド内で複数回発生する場合があり、パスワードプロンプトが繰り返し表示されます。fileオプションを使用してコマンドを実行するbashスクリプトを使用する場合、複数のプロンプトに対して以下の形式を利用できます:
空のkeyringに初めてキーを追加する際、パスワードを2回入力するよう求められます。
passバックエンド
passバックエンドは、passユーティリティを使用して、キーの機密データとメタデータのディスク上の暗号化を管理します。キーはアプリ固有のディレクトリ内のgpg暗号化ファイルに保存されます。passは、最も一般的なUNIXオペレーティングシステムおよびGNU/Linuxディストリビューションで利用可能です。ダウンロードとインストールの方法については、マニュアルページを参照してください。
passは暗号化にGnuPGを使用します。gpgは実行時に自動的にgpg-agentデーモンを起動し、GnuPG資格情報のキャッシュを処理します。資格情報のTTLやパスフレーズの有効期限などのキャッシュパラメータの設定方法の詳細については、gpg-agentのmanページを参照してください。<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サブコマンドがオートコンプリートされます。<key_name>引数を指定してaddサブコマンドを実行します。このチュートリアルではtestバックエンドのみを使用し、新しいキーをmy_validatorと呼びます。このキーは次のセクションで使用されます。
eth_secp256k1キーペアを生成します。keyringはed25519キーもサポートしており、--algo ed25519フラグを渡すことで作成できます。keyringはもちろん両方のタイプのキーを同時に保持できます。