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.

44 lines
1.7 KiB

  1. Validators
  2. ==========
  3. Validators are responsible for committing new blocks in the blockchain.
  4. These validators participate in the consensus protocol by broadcasting
  5. *votes* which contain cryptographic signatures signed by each
  6. validator's private key.
  7. Some Proof-of-Stake consensus algorithms aim to create a "completely"
  8. decentralized system where all stakeholders (even those who are not
  9. always available online) participate in the committing of blocks.
  10. Tendermint has a different approach to block creation. Validators are
  11. expected to be online, and the set of validators is permissioned/curated
  12. by some external process. Proof-of-stake is not required, but can be
  13. implemented on top of Tendermint consensus. That is, validators may be
  14. required to post collateral on-chain, off-chain, or may not be required
  15. to post any collateral at all.
  16. Validators have a cryptographic key-pair and an associated amount of
  17. "voting power". Voting power need not be the same.
  18. Becoming a Validator
  19. --------------------
  20. There are two ways to become validator.
  21. 1. They can be pre-established in the `genesis
  22. state <./genesis.html>`__
  23. 2. The `ABCI app responds to the EndBlock
  24. message <https://github.com/tendermint/abci>`__ with changes to the
  25. existing validator set.
  26. Committing a Block
  27. ------------------
  28. *+2/3 is short for "more than 2/3"*
  29. A block is committed when +2/3 of the validator set sign `precommit
  30. votes <./block-structure.html#vote>`__ for that block at the same
  31. ``round``. The +2/3 set of precommit votes is
  32. called a `*commit* <./block-structure.html#commit>`__. While any
  33. +2/3 set of precommits for the same block at the same height&round can
  34. serve as validation, the canonical commit is included in the next block
  35. (see `LastCommit <./block-structure.html>`__).