Skip to content
This repository has been archived by the owner on Jun 3, 2020. It is now read-only.

Send RemoteSignerError response on double sign (closes #249) #272

Merged
merged 1 commit into from
Jun 21, 2019

Conversation

tarcieri
Copy link
Contributor

Previously double signing would abort the connection.

However, there is a semi-valid use case for returning an error message instead: when concurrent validators on the same chain are sending signing messages. This was proposed by @mdyring in #249.

Ideally there should be coordination (i.e. between KMS instances) as to which validator is currently active, as this approach depends critically on the KMS's double signing prevention and encourages configurations where multiple validator instances are attempting to sign simultaneously. This runs the risk that a bug in the KMS's double signing detection could be singularly responsible for a double sign event.

However, without something like this, it isn't possible for the KMS to service two validators simultaneously, so this seems like an OK start with some nice HA benefits.

Previously double signing would abort the connection.

However, there is a semi-valid use case for returning an error message
instead: when concurrent validators on the same chain are sending
signing messages. This was proposed by @mdyring in #249.

Ideally there should be coordination (i.e. between KMS instances) as to
which validator is currently active, as this approach depends critically
on the KMS's double signing prevention and encourages configurations
where multiple validator instances are attempting to sign
simultaneously. This runs the risk that a bug in the KMS's double
signing detection could be singularly responsible for a double sign
event.

However, without something like this, it isn't possible for the KMS to
service two validators simultaneously, so this seems like an OK start.
@tarcieri tarcieri requested a review from liamsi June 21, 2019 22:07

/// Error codes for remote signer failures
// TODO(tarcieri): add these to Tendermint. See corresponding TODO here:
// <https://github.com/tendermint/tendermint/blob/master/privval/errors.go>
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@liamsi FYI... adding some remote signer error codes

@tarcieri tarcieri merged commit 41ad7dc into master Jun 21, 2019
@tarcieri tarcieri deleted the send-double-sign-err-response branch June 21, 2019 22:27
@tarcieri
Copy link
Contributor Author

tarcieri commented Jun 21, 2019

Going to get another alpha out with this so I can test it more easily. Please review though! Seems we've never sent error responses back to Tendermint before so this will be interesting.

Will address any review feedback before a final release.

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants