Mavryk_raw_protocol_001_PtAtLas.Amendment
Amendments and proposals.
Only delegates having the minimal required stake take part in the amendment procedure. It works as follows:
The current protocol parameters are documented in src/proto_alpha/lib_parameters/default_parameters.ml
In practice, the real constants used are defined in the migration code. In src/proto_alpha/lib_protocol/init_storage.ml, function prepare_first_block
introduces new constants and redefines the existing ones.
val may_start_new_voting_period :
Alpha_context.context ->
Alpha_context.context
Mavryk_protocol_environment_001_PtAtLas.Error_monad.tzresult
Mavryk_protocol_environment_001_PtAtLas.Lwt.t
If at the end of a voting period, moves to the next one following the state machine of the amendment procedure.
val get_testnet_dictator :
Alpha_context.context ->
Mavryk_protocol_environment_001_PtAtLas.Chain_id.t ->
Alpha_context.public_key_hash option
Return the registered testchain dictator, if any. This function will always return None on mainnet.
val is_testnet_dictator :
Alpha_context.context ->
Mavryk_protocol_environment_001_PtAtLas.Chain_id.t ->
Alpha_context.public_key_hash ->
bool
Check whether the given public key hash corresponds to the registered testchain dictator, if any. This function will always return false on mainnet.
There are two kinds of voting operations:
val apply_proposals :
Alpha_context.context ->
Mavryk_protocol_environment_001_PtAtLas.Chain_id.t ->
Alpha_context.Kind.proposals Alpha_context.contents ->
(Alpha_context.context
* Alpha_context.Kind.proposals Apply_results.contents_result_list)
Mavryk_protocol_environment_001_PtAtLas.Error_monad.tzresult
Mavryk_protocol_environment_001_PtAtLas.Lwt.t
Update the context
with the effects of a Proposals operation:
Note that a Proposals operation from a testnet dictator (which may be set up when a test chain is initialized) has completely different effects:
validate_proposals
must have been called beforehand, and is responsible for ensuring that apply_proposals
cannot fail.
val apply_ballot :
Alpha_context.context ->
Alpha_context.Kind.ballot Alpha_context.contents ->
(Alpha_context.context
* Alpha_context.Kind.ballot Apply_results.contents_result_list)
Mavryk_protocol_environment_001_PtAtLas.Error_monad.tzresult
Mavryk_protocol_environment_001_PtAtLas.Lwt.t
Update the context
with the effects of a Ballot operation:
The couple (source of the operation, submitted ballot) is recorded.
validate_ballot
must have been called beforehand, and is responsible for ensuring that apply_ballot
cannot fail.