package octez-protocol-018-Proxford-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.

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.