Mavryk_baking_alpha.Per_block_vote_file
This module is used to load the baker's per block votes configurations. When a file is given as configuration, its content is expected to be a valid JSON matching the following examples:
{"liquidity_baking_toggle_vote": "on"}
{"liquidity_baking_toggle_vote": "off"}
{"liquidity_baking_toggle_vote": "pass"}
{"adaptive_issuance_vote": "on"}
{"adaptive_issuance_vote": "off"}
{"adaptive_issuance_vote": "pass"}
{"liquidity_baking_toggle_vote": "on","adaptive_issuance_vote": "on"}
{"liquidity_baking_toggle_vote": "on","adaptive_issuance_vote": "off"}
{"liquidity_baking_toggle_vote": "on","adaptive_issuance_vote": "pass"}
{"liquidity_baking_toggle_vote": "off","adaptive_issuance_vote": "on"}
{"liquidity_baking_toggle_vote": "off","adaptive_issuance_vote": "off"}
{"liquidity_baking_toggle_vote": "off","adaptive_issuance_vote": "pass"}
{"liquidity_baking_toggle_vote": "pass","adaptive_issuance_vote": "on"}
{"liquidity_baking_toggle_vote": "pass","adaptive_issuance_vote": "off"}
{"liquidity_baking_toggle_vote": "pass","adaptive_issuance_vote": "pass"}
Moreover, in order to handle dynamic voting (i.e. change the baker's vote without having to restart it), each time a block is being built, the baker will try and read the vote file present in the config in order to check for updated votes.
Default vote file name that should be looked up when the baker starts.
val read_per_block_votes_no_fail :
default:
Mavryk_protocol_alpha.Protocol.Alpha_context.Per_block_votes.per_block_votes ->
per_block_vote_file:string ->
Mavryk_protocol_alpha.Protocol.Alpha_context.Per_block_votes.per_block_votes
Lwt.t
Reads the content of per_block_vote_file
and returns the votes. If any error occurs (e.g. Non-existing file, unparsable content, etc.), given default values will be used to fill the gaps.
val load_per_block_votes_config :
default_liquidity_baking_vote:
Mavryk_protocol_alpha.Protocol.Alpha_context.Per_block_votes.per_block_vote
option ->
default_adaptive_issuance_vote:
Mavryk_protocol_alpha.Protocol.Alpha_context.Per_block_votes.per_block_vote
option ->
per_block_vote_file:string option ->
Baking_configuration.per_block_votes_config Mavryk_base.TzPervasives.tzresult
Lwt.t
Load a configuration of per-block votes. Liquidity baking toggle vote is mandatory, it has to come from either the per-block vote file per_block_vote_file
or from default_liquidity_baking_vote
. If a vote cannot be determined from those values, this function fails. Adaptive issuance feature vote is optional. Priority is given to the values in the per_block_vote_file
file for all votes at the time of the block (the file is freshly read each time).