From 86f2765b32ab92864e1a59eab08663b06904d518 Mon Sep 17 00:00:00 2001 From: Mostafa Sedaghat Joo Date: Mon, 6 May 2019 00:19:41 +0800 Subject: [PATCH] Add adr-36 (#3324) --- .../adr-036-validator-set-by-app.md | 29 +++++++++++++++++++ 1 file changed, 29 insertions(+) create mode 100644 docs/architecture/adr-036-validator-set-by-app.md diff --git a/docs/architecture/adr-036-validator-set-by-app.md b/docs/architecture/adr-036-validator-set-by-app.md new file mode 100644 index 000000000..ff752b75d --- /dev/null +++ b/docs/architecture/adr-036-validator-set-by-app.md @@ -0,0 +1,29 @@ +# ADR 036: Application should be in charge of validator set + +## Changelog + + +## Context + +Currently Tendermint is in charge of validator set and proposer selection. Application can only update the validator set changes at EndBlock time. +To support Light Client, application should make sure at least 2/3 of validator are same at each round. + +Application should have full control on validator set changes and proposer selection. In each round Application can provide the list of validators for next rounds in order with their power. The proposer is the first in the list, in case the proposer is offline, the next one can propose the proposal and so on. + +## Decision + +## Status + +## Consequences + +Tendermint is no more in charge of validator set and its changes. The Application should provide the correct information. +However Tendermint can provide psedo-randomness algorithm to help application for selecting proposer in each round. + +### Positive + +### Negative + +### Neutral + +## References +