MinDeposit), proposal is confirmed and vote opens. Bonded NOM holders can then send
TxGovVotetransactions to vote on the proposal.
TxGovProposaltransaction. Once a proposal is submitted, it is identified by its unique
TextProposalAll the proposals that do not involve a modification of the source code go under this type. For example, an opinion poll would use a proposal of type
SoftwareUpgradeProposal. If accepted, validators are expected to update their software in accordance with the proposal. They must do so by following a 2-steps process described in the Software Upgrade section below. Software upgrade roadmap may be discussed and agreed on via
TextProposals, but actual software upgrades must be performed via
CommunityPoolSpendProposaldetails a proposal for use of community funds, together with how many coins are proposed to be spent, and to which recipient account.
ParameterChangeProposaldefines a proposal to change one or more parameters. If accepted, the requested parameter change is updated automatically by the proposal handler upon conclusion of the voting period.
CancelSoftwareUpgradeProposalis a gov Content type for cancelling a software upgrade.
ParamChangeProposal), which then execute the respective module's proposal handler when a proposal passes. This custom handler may perform arbitrary state changes.
MinDepositparam. The voting period will not start until the proposal's deposit equals
MinDeposit. The submitter doesn't need to pay for the entire deposit on their own. If a proposal's deposit is inferior to
MinDeposit, other token holders can increase the proposal's deposit by sending a
Deposittransaction. The deposit is kept in an escrow in the governance
ModuleAccountuntil the proposal is finalized (passed or rejected).
MinDeposit, it enters voting period. If proposal's deposit does not reach
MaxDepositPeriod, proposal closes and nobody can deposit on it anymore.
MinDeposit, it immediately enters
Voting period. We define
Voting periodas the interval between the moment the vote opens and the moment the vote closes.
Voting periodshould always be shorter than
Unbonding periodto prevent double voting. The initial value of
Voting periodis 2 weeks.
Nobut also adds a
Abstainoption allows voters to signal that they do not intend to vote in favor or against the proposal but accept the result of the vote.
Abstainvotes) for the proposal to be accepted.
NoWithVetovotes. This means that proposals are accepted if the proportion of
Abstainvotes) at the end of the voting period is superior to 50% and if the proportion of
NoWithVetovotes is inferior to 1/3 (excluding
Governance addresswill be the main validator address generated at account creation. This address corresponds to a different PrivKey than the Tendermint PrivKey which is responsible for signing consensus messages. Validators thus do not have to sign governance transactions with the sensitive Tendermint PrivKey.
SoftwareUpgradeProposal, then nodes need to upgrade their software to the new version that was voted. This process is divided in two steps.
SoftwareUpgradeProposalis accepted, validators are expected to download and install the new version of the software while continuing to run the previous version. Once a validator has downloaded and installed the upgrade, it will start signaling to the network that it is ready to switch by including the proposal's
proposalIDin its precommits.(Note: Confirmation that we want it in the precommit?)
SoftwareUpgradeProposalsare accepted in a short timeframe, a pipeline will form and they will be implemented one after the other in the order that they were accepted.
SoftwareUpgradeProposalis signaled, all the nodes (including validator nodes, non-validating full nodes and light-nodes) are expected to switch to the new version of the software.