tendermint / tmkms

Key Management service for Tendermint Validator nodes

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Can't get PreVote request when running two KMS

yulidai opened this issue · comments

1. Purpose

Just to test some special cases

2. Test Description

I'm running two group of one-kms-with-one-validator, Two KMS use the same priv_validator_key.json. One block per four heights.

In order to avoid DOUBLE SIGN, I let one of the two KMS only sign the odd height and the other only sign the even height.

3. Testing Result

Logs of the KMS with odd height only

02:58:36 [info] [ld_test@tcp://127.0.0.1:26659] signed PreCommit:<nil> at h/r/s 127/0/6 (0 ms)
02:58:41 [warn] failed to sign prop, h/r : 128/0
02:58:44 [warn] failed to sign vote, h/t/r : 128/1/0
02:58:47 [warn] failed to sign vote, h/t/r : 128/2/0
02:58:50 [warn] failed to sign vote, h/t/r : 128/2/1
02:58:53 [info] [ld_test@tcp://127.0.0.1:26659] signed PreCommit:<nil> at h/r/s 129/0/6 (0 ms)
02:58:57 [warn] failed to sign vote, h/t/r : 130/1/0
02:59:00 [warn] failed to sign vote, h/t/r : 130/2/0

Logs of the KMS with even height only

02:58:35 [warn] failed to sign vote, h/t/r : 127/1/0
02:58:38 [warn] failed to sign vote, h/t/r : 127/2/0
02:58:44 [info] [ld_test@tcp://127.0.0.1:16659] signed Proposal:878ACD4FD0 at h/r/s 128/0/3 (0 ms)
02:58:44 [info] [ld_test@tcp://127.0.0.1:16659] signed PreCommit:<nil> at h/r/s 128/0/6 (0 ms)
02:58:45 [info] [ld_test@tcp://127.0.0.1:16659] signed PreVote:3062FAFF5A at h/r/s 128/1/6 (0 ms)
02:58:45 [info] [ld_test@tcp://127.0.0.1:16659] signed PreCommit:3062FAFF5A at h/r/s 128/1/6 (0 ms)
02:58:51 [warn] failed to sign vote, h/t/r : 129/1/0
02:58:54 [warn] failed to sign vote, h/t/r : 129/2/0
02:58:57 [info] [ld_test@tcp://127.0.0.1:16659] signed PreCommit:<nil> at h/r/s 130/0/6 (0 ms)

4. Problem

You will never receive PreVote's signature request except when it comes out of Proposal. And Proposal never succeed.

Why does this strange phenomenon occur that every height's signature is not independent?

Maybe it's tendermint's problem? But I haven't found any information for a long time.

This is definitely an unsupported configuration. No idea why the behavior is the way it is, but I'd agree it's probably something on the Tendermint side.