Skip to content

Remote Signer Info

Luke Youngblood edited this page Jun 14, 2018 · 1 revision

Schema for the remote signer operations: src/lib_signer_services/signer_services.ml src/lib_crypto/base58.ml - contains the prefixes for public key hashs, signatures, etc. - prefix = p2sig(98)

Make a signing request:

POST /tz1.... request : "abcdef..." answer : { "signature" : "p2sig..." }

Get a public key:

GET /tz1.... answer { "public_key" : "p2pk..." }

Launch sandboxed node:

$ ./src/bin_node/tezos-sandboxed-node.sh 7 --connections=1

In another terminal:

$ eval $(./src/bin_client/tezos-init-sandboxed-client.sh 7)
$ which tezos-client
/tmp/tezos-tmp-client.qy3CHpBC/bin/tezos-client
$ ls /tmp/tezos-tmp-client.qy3CHpBC/*
(shows all files including secret keys)
$ tezos-autocomplete
$ tezos-activate-alpha
$ tezos-client bake for bootstrap1

Transfer funds from one bootstrap account to another:

$ tezos-client transfer 10 from bootstrap1 to bootstrap2

Bake a single block for the transaction to be included:

$ tezos-client bake for bootstrap1

Generate a key using tezos-signer:

./tezos-signer gen keys test_keys
Enter passphrase to encrypt your key:
Confirm passphrase:

Launch local signer (UNIX socket, also you can launch remote signer or https signer):

./tezos-signer launch local signer
(enter passphrases)
./tezos-signer list known identities
(shows all identities)

Import a public_key hash into the local wallet, and check the remote signer to see if it holds the secret key for a given public key hash:

tezos-client import secret key remote_test_key 'unix:///home/benjamin/.tezos-signer.sock?pkh=tz1dsDGGq7dCMu4bpL2BNLUdtqv486XF8kso'

Then send funds to that address:

tezos-client transfer 10 from bootstrap2 to remote_test_key

Send funds back:

tezos-client transfer 3 from remote_test_key to bootstrap2

Additional commands:

less 
$ tezos-client list signing schemes
$ tezos-client rpc get /chains/main/blocks/head/metadata
{ "protocol": "PrihK96nBAFSxVL1GLJTVhu9YnzkMFiBeuJRPA8NwuZVZCE1L6i",
  "next_protocol": "ProtoGenesisGenesisGenesisGenesisGenesisGenesk612im",
  "test_chain_status": { "status": "not_running" }, "max_operations_ttl": 0,
  "max_operation_data_length": 0, "max_block_header_length": 105,
  "max_operation_list_length": [] }
Clone this wiki locally