You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

29 lines
1.4 KiB

  1. # ADR 008: SocketPV
  2. Tendermint node's should support only two in-process PrivValidator
  3. implementations:
  4. - FilePV uses an unencrypted private key in a "priv_validator.json" file - no
  5. configuration required (just `tendermint init`).
  6. - SocketPV uses a socket to send signing requests to another process - user is
  7. responsible for starting that process themselves.
  8. The SocketPV address can be provided via flags at the command line - doing so
  9. will cause Tendermint to ignore any "priv_validator.json" file and to listen on
  10. the given address for incoming connections from an external priv_validator
  11. process. It will halt any operation until at least one external process
  12. succesfully connected.
  13. The external priv_validator process will dial the address to connect to
  14. Tendermint, and then Tendermint will send requests on the ensuing connection to
  15. sign votes and proposals. Thus the external process initiates the connection,
  16. but the Tendermint process makes all requests. In a later stage we're going to
  17. support multiple validators for fault tolerance. To prevent double signing they
  18. need to be synced, which is deferred to an external solution (see #1185).
  19. In addition, Tendermint will provide implementations that can be run in that
  20. external process. These include:
  21. - FilePV will encrypt the private key, and the user must enter password to
  22. decrypt key when process is started.
  23. - LedgerPV uses a Ledger Nano S to handle all signing.