Docker e chiavi crittografate
1 risposta
- voti
-
- 2019-02-03
Sì,puoieseguiretezos-signer separatamente dalbinario di originee quindi lasciarlo connettere alnodotezosin esecuzionenel contenitore docker. Ecco comepuoifarlo.
Sul servertezos-signereseguii seguenti 3 comandi dalla directoryin cui viene scaricatoilbinariotezos-signer:
- alice delle chiavigen delfirmatario ditezos
- cat ~/.tezos-signer/public_key_hashs
Questoprodurrà qualcosa delgenere: [{"name": "alice","value": "tz1abc ..."}]
Copia l'hash dellatua chiavepubblica che assomiglia a "tz1abc ..." sopra.
- tezos-signer lancia socket signer -a home-ip
dove home-ip è l'indirizzo IP deltuo server su cui èin esecuzionetezos-signer. Perimpostazionepredefinita utilizza laporta 7732
NOTA: il comandoprecedente richiederà lapasswordper latua chiave crittografata,per avviareil demone delfirmatario. Ènecessariomantenerein esecuzioneil demone affinchéilfirmatario remotofunzioni. Quindi si consiglia dieseguirlo come servizioin background. Consiglio di utilizzare tmux perfarlo.
Ora sul serverin cui èin esecuzione lafinestramobile,eseguii seguenti comandi:
1) ./mainnet.sh clientimport chiave segreta alicetcp://home-ip: 7732/tz1abc ...
dove
home-ip è lo stesso utilizzato alpunto 3 sopra
tz1abc ... è lo stesso hash della chiavepubblica utilizzatonelpunto 2 sopra
Il comandoprecedenteimporterà la chiavepubblica dal server di canto,ma la chiaveprivata rimane ancora sul server difirma. Se controlliilfile delle chiaviprivatememorizzatonel contenitore Docker,troveraiinvece della chiaveprivata questo valore sarebbe store [{"nome": "alice", "value": "tcp://home-ip: 7732/tz1abc ...."}]
Ilpanettierein esecuzionenel contenitore otterrà automaticamente latransazionefirmata dal server difirma utilizzandoil valore sopraindicato contattandoil server difirmain cuitezos-singer deamon deveesserein esecuzione.
INFO: per controllare le chiaviprivatememorizzatenel contenitore docker,utilizzail seguenteprocesso:
//Per accedere allamodalità shellnel contenitore
- dockerexec -itmainnet_node_1/bin/sh
//Per accedere alla directoryin cui sono conservate le chiavinel contenitore 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
-
Domanda successiva: quante risorse consumerebbeil daemon delfirmatario?Stopensando dieseguirlo su un laptop (batteria dibackup) con libromastro.Ti chiedi quanto sia robusto un laptopper ottenere ...?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:probabilmente èbene porre latua domanda difollow-up comenuova domanda.Sentiti libero difare riferimento a questo senecessario.@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
-
Il demonefirmatario @asbjornengenon dovrebbe consumaremolte delletue risorsepoichétutto ciò chefa èfirmare letransazioni su richiesta.Quindi,setutto ciò che vuoi èeseguire un demonefirmatario su diesso,un singoloprocessore dibase,2 GB di RAM,60 GB di spazio su discofunzionerebbe.@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
-
Chiaro,grazie.Detto questo,funziona conilnuovo aggiornamento rilasciatopochigiornifa?Noto chemainnet.shnon si comportapiù (almenoperme).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
-
Nontrovonulla di sbagliatonelnuovo aggiornamento.Lamia configurazionefunzionabene.Puoielaborareiltuoproblemain unanuova domanda se stai ancora affrontando qualcheproblema?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
Esiste unmodo consigliatoper utilizzare lo script digestione delleimmagini Docker con chiavi crittografate (protette dapassword)?
Lo script sembrafunzionarebene senonproteggo lemie chiavi;maper le chiaviprotettenon sembraesserci unmodoper Docker di richiedere unapassword alla riga di comando.
Potreieseguire
tezos-signer
separatamentee chiedere ai contenitori delpanettieree del sostenitore diparlarne?