package tezos-protocol-008-PtEdoTez

  1. Overview
  2. Docs
Legend:
Library
Module
Module type
Parameter
Class
Class type

Only delegates with at least one roll take part in the amendment procedure. It works as follows:

  • Proposal period: delegates can submit protocol amendment proposals using the proposal operation. At the end of a proposal period, the proposal with most supporters is selected and we move to a testing_vote period. If there are no proposals, or a tie between proposals, a new proposal period starts.
  • Testing_vote period: delegates can cast votes to test or not the winning proposal using the ballot operation. At the end of a testing_vote period if participation reaches the quorum and the proposal has a supermajority in favor, we proceed to a testing period. Otherwise we go back to a proposal period. In any case, if there is enough participation the quorum is updated.
  • Testing period: a test chain is forked for the length of the period. At the end of a testing period we move to a promotion_vote period.
  • Promotion_vote period: delegates can cast votes to promote or not the tested proposal using the ballot operation. At the end of a promotion_vote period if participation reaches the quorum and the tested proposal has a supermajority in favor, we move to an adoption period. Otherwise we go back to a proposal period. In any case, if there is enough participation the quorum is updated.
  • Adoption period: At the end of an adoption period, the proposal is activated as the new protocol.
val may_start_new_voting_period : Alpha_context.context -> (Alpha_context.context, Tezos_protocol_environment_008_PtEdoTez__Environment.Error_monad.error list) Stdlib.result Lwt.t

If at the end of a voting period, moves to the next one following the state machine of the amendment procedure.

type Tezos_protocol_environment_008_PtEdoTez__Environment.Error_monad.error +=
  1. | Unexpected_proposal
  2. | Unauthorized_proposal
  3. | Too_many_proposals
  4. | Empty_proposal
val record_proposals : Alpha_context.context -> Alpha_context.public_key_hash -> Tezos_crypto.Protocol_hash.t list -> (Alpha_context.context, Tezos_protocol_environment_008_PtEdoTez__Environment.Error_monad.error list) Stdlib.result Lwt.t

Records a list of proposals for a delegate.

type Tezos_protocol_environment_008_PtEdoTez__Environment.Error_monad.error +=
  1. | Invalid_proposal
  2. | Unexpected_ballot
  3. | Unauthorized_ballot
val record_ballot : Alpha_context.context -> Alpha_context.public_key_hash -> Tezos_crypto.Protocol_hash.t -> Alpha_context.Vote.ballot -> (Alpha_context.context, Tezos_protocol_environment_008_PtEdoTez__Environment.Error_monad.error list) Stdlib.result Lwt.t
OCaml

Innovation. Community. Security.