package octez-protocol-alpha-libs

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

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.

type Tezos_base.TzPervasives.error +=
  1. | Block_vote_file_not_found of string
type Tezos_base.TzPervasives.error +=
  1. | Block_vote_file_invalid of string
type Tezos_base.TzPervasives.error +=
  1. | Block_vote_file_wrong_content of string
type Tezos_base.TzPervasives.error +=
  1. | Block_vote_file_missing_liquidity_baking_toggle_vote of string
type Tezos_base.TzPervasives.error +=
  1. | Missing_vote_on_startup
val default_vote_json_filename : string

Default vote file name that should be looked up when the baker starts.

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: Tezos_protocol_alpha.Protocol.Alpha_context.Per_block_votes.per_block_vote option -> default_adaptive_issuance_vote: Tezos_protocol_alpha.Protocol.Alpha_context.Per_block_votes.per_block_vote option -> per_block_vote_file:string option -> Baking_configuration.per_block_votes_config Tezos_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).

OCaml

Innovation. Community. Security.