Dockerと暗号化されたキー
1 回答
- 投票
-
- 2019-02-03
はい、ソースバイナリとは別にtezos-signerを実行してから、Dockerコンテナで実行されているtezos-nodeに接続させることができます.これがあなたがそれを行う方法です.
tezos-signerサーバーで、tezos-signerバイナリがダウンロードされているディレクトリから次の3つのコマンドを実行します.
- tezos-signergen keys alice
- cat〜/.tezos-signer/public_key_hashs
これにより、次のように出力されます. [{"name": "alice"、 "value": "tz1abc ..."}]
上記の「tz1abc ...」のような公開鍵ハッシュをコピーします.
- tezos-signer launch socket signer -a home-ip
ここで home-ipは、tezos-signerが実行されているサーバーのIPアドレスです.デフォルトでは、ポート7732を使用します
注:上記のコマンドは、署名者デーモンを開始するために、暗号化されたキーのパスワードの入力を求めます. リモート署名者が機能するには、デーモンを実行し続ける必要があります.したがって、バックグラウンドサービスとして実行することをお勧めします. tmux を使用してこれを行うことをお勧めします.
Dockerが実行されているサーバーで、次のコマンドを実行します.
1)./mainnet.shクライアントインポート秘密鍵alicetcp://home-ip:7732/tz1abc ...
どこ
home-ipは上記のポイント3で使用したものと同じです
tz1abc ...は、上記のポイント2で使用したものと同じ公開鍵ハッシュです
上記のコマンドは、歌うサーバーから公開鍵をインポートしますが、秘密鍵は署名サーバーに残ります. Dockerコンテナに保存されている秘密鍵ファイルを確認すると、秘密鍵の代わりにこの値が保存されます. [{"名前": "アリス"、 "value": "tcp://home-ip:7732/tz1abc ...."}]
コンテナで実行されているベイカーは、tezos-singer deamonが実行状態である必要がある署名サーバーに接続することにより、上記の値を使用して署名サーバーから署名されたトランザクションを自動的に取得します.
情報: Dockerコンテナに保存されている秘密鍵を確認するには、以下のプロセスを使用します:
//コンテナでシェルモードに入るには
- dockerexec -itmainnet_node_1/bin/sh
//キーがDockerコンテナで管理されているディレクトリに入る
-
cd/var/run/tezos/client/
-
cat secret_keys
Yes you can run tezos-signer separately from source binary and then let it connect to tezos-node running in docker container. This is how you can do it.
On tezos-signer server run following 3 commands from directory where tezos-signer binary is downloaded:
- tezos-signer gen keys alice
- cat ~/.tezos-signer/public_key_hashs
This will output something like this: [ { "name": "alice", "value": "tz1abc..." } ]
Copy your public key hash which looks like "tz1abc..." above.
- tezos-signer launch socket signer -a home-ip
where home-ip is IP address of your server where tezos-signer is running. By default it uses port 7732
NOTE: Above command will prompt for password for your encrypted key, to start the signer deamon. You need to keep your deamon running in order for remote signer to work. So it is recommended to run it as background service. I recommend using tmux to do that.
Now on server where your docker is running, run following commands:
1) ./mainnet.sh client import secret key alice tcp://home-ip:7732/tz1abc...
where
home-ip is same as used in point 3 above
tz1abc... is same public key hash used in point 2 above
Above command will import the public key from singing server, but private key still remains on signing server. If you check the private keys file stored in docker container you'll find instead of private key this value would be store [{ "name": "alice", "value": "tcp://home-ip:7732/tz1abc...." }]
Baker running in container will automatically get the transaction signed from signing server using the above value by contacting the signing server where tezos-singer deamon must be in running state.
INFO: To check private keys stored in docker container use below process:
// To enter the shell mode in container
- docker exec -it mainnet_node_1 /bin/sh
// To enter the directory where keys are maintained in docker container
cd /var/run/tezos/client/
cat secret_keys
-
フォローアップの質問:署名者デーモンはどのくらいのリソースを消費しますか?元帳付きのラップトップ(バッテリーバックアップ)で実行することを検討しています.ラップトップをどれだけ頑丈にするのか疑問に思っています...?Followup question: How much resource would the signer daemon consume? I'm considering running it on a laptop (battery backup) with ledger. Wondering how beefy a laptop to get...?
- 0
- 2019-02-03
- asbjornenge
-
@asbjornenge:フォローアップの質問を新しい質問として尋ねるのはおそらく良いことです.必要に応じて、これを参照してください.@asbjornenge : probably good to ask your followup question as a new question. Feel free to reference to this one if you need to.
- 0
- 2019-02-03
- Ezy
-
@asbjornenge署名者デーモンは、要求に応じてトランザクションに署名するだけなので、リソースの多くを消費するべきではありません.したがって、署名デーモンを実行するだけの場合は、基本的なシングルプロセッサ、2 GBのRAM、60GBのディスク容量が機能します.@asbjornenge signer daemon should not consume much of your resources as all it does is sign the transactions on request. So if all you want is to run a signer daemon on it, a basic single processor, 2GB RAM, 60GB disk space would work.
- 2
- 2019-02-04
- Sachin Tomar
-
明確に、ありがとう.そうは言っても、これは数日前にプッシュされた新しいアップデートで機能しますか?mainnet.shが(少なくとも私にとっては)動作しなくなっていることに気付きました.Clear, thanks. That said, does this work with the new update pushed out a few days ago? I notice that mainnet.sh is no longer behaving (at least for me).
- 0
- 2019-02-07
- nurikabe
-
新しいアップデートに問題はありません.私のセットアップは正常に機能しています.それでも問題が発生する場合は、新しい質問で問題を詳しく説明できますか?I don't find anything wrong with the new update. My setup is working fine. Can you elaborate your problem in a new question if you are still facing any problem?
- 0
- 2019-02-12
- Sachin Tomar
Dockerを使用するための推奨される方法はありますか画像管理スクリプト暗号化された(パスワードで保護された)キーを使用しますか?
キーを保護しないと、スクリプトは正常に機能するようです.ただし、保護されたキーの場合、Dockerがコマンドラインにパスワードの入力を求める方法はないようです.
tezos-signer
を別々に実行して、パン屋と承認者のコンテナにそれと通信させることはできますか?