[ANN] Tendermint KMS v0.2: Validator Signing Support

Thanks for your patience.
Now the main problem with me is how to create validator with designated pubkey, or, how to using the command you gived in local single-node.

$ cd $HOME
$ gaiad init --chain-id testing --moniker testing
$ gaiacli keys add validator
$ gaiad add-genesis-account $(gaiacli keys show validator -a) 1000STAKE,1000validatorToken
$ gaiad gentx --name validator
$ gaiad collect-gentxs

Then error “ERROR: ABCIQuery: Post http://localhost:26657: dial tcp 127.0.0.1:26657: connect: connection refused” occured when execute

$ gaiacli tx stake create-validator --pubkey=cosmosvalconspub1zcjduepqe9jexppzpyvg86unlu8d39xqa3xwwtn6allu5zdsp33kqc8tdnus7rmf78 […]

But if execute “gaiad start” first, error “ERROR: Msg 0 failed: {“codespace”:“STAKE”,“code”:101,“message”:“validator already exist for this operator address, must use new validator operator address”}” occured when execute

$ gaiacli tx stake create-validator --pubkey=cosmosvalconspub1zcjduepqe9jexppzpyvg86unlu8d39xqa3xwwtn6allu5zdsp33kqc8tdnus7rmf78 […]

Which of the above commands create validator by using my operator address? What is the right time to create my validator with designated pubkey?

It will be better if you can show me the shell command.

Thanks for your patience again and sorry for my stupidity :slight_smile:

Solved the problem now! with these command:

$ gaiad init --chain-id testing --moniker testing
$ gaiad add-genesis-account $(gaiacli keys show validator -a) 1000STAKE,1000validatorToken
$ gaiad gentx \
$   --amount 100STAKE \
$   --commission-rate="0.10" \
$   --commission-max-rate="0.20" \
$   --commission-max-change-rate="0.01" \
$   --pubkey cosmosvalconspub1zcjduepqe9jexppzpyvg86unlu8d39xqa3xwwtn6allu5zdsp33kqc8tdnus7rmf78 \
$   --name validator
$ gaiad collect-gentxs
$ gaiad start

then modify priv_validator_laddr of config.toml for connecting kms, and signing service works good!

Thanks!!!

Edit:
So i think the tendermint/tmkms is only suit for gaia, not for tendermint with kvstore, is it right?

The long-term plan for tmkms is for it to be generally useful for any Tendermint application, not just Cosmos, which is why it’s called “Tendermint KMS” and located under the tendermint GitHub organization.

However, for practical reasons we’re focusing on Cosmos right now, which is why the description says “Key Management System for Cosmos Validators”. It’s a bit confusing, I understand.

If you’re interested in using tmkms in a non-Cosmos Tendermint application, that’s a great thing to open a GitHub issue about.