package tezos-protocol-014-PtKathma

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

Module Tezos_raw_protocol_014_PtKathma.MainSource

Tezos Protocol Implementation - Protocol Signature Instance

This module is the entrypoint to the protocol for shells and other embedders. This signature is an instance of the Updater.PROTOCOL signature from the Protocol Environment.

Each Protocol depends on a version of the Protocol Environment. For the currently developed protocol, this is normally the latest version. You can see the full list of versions here.

For details on how Protocol and Environment interact, see this overview.

Sourcetype validation_mode =
  1. | Application of {
    1. block_header : Alpha_context.Block_header.t;
    2. fitness : Alpha_context.Fitness.t;
    3. payload_producer : Alpha_context.public_key_hash;
    4. block_producer : Alpha_context.public_key_hash;
    5. predecessor_round : Alpha_context.Round.t;
    6. predecessor_level : Alpha_context.Level.t;
    }
    (*

    Full Validation of a block. See Tezos_protocol_environment_sigs.V5.T.Updater.PROTOCOL.begin_application*

    *)
  2. | Partial_application of {
    1. block_header : Alpha_context.Block_header.t;
    2. fitness : Alpha_context.Fitness.t;
    3. payload_producer : Alpha_context.public_key_hash;
    4. block_producer : Alpha_context.public_key_hash;
    5. predecessor_level : Alpha_context.Level.t;
    6. predecessor_round : Alpha_context.Round.t;
    }
    (*

    Partial_application is used in pre-checking of blocks - not all checks are done. Special case of Application to allow quick rejection of bad blocks. See Tezos_protocol_environment_sigs.V5.T.Updater.PROTOCOL.begin_partial_application

    *)
  3. | Partial_construction of {
    1. predecessor : Tezos_protocol_environment_014_PtKathma.Block_hash.t;
    2. predecessor_fitness : Tezos_protocol_environment_014_PtKathma.Fitness.t;
    3. predecessor_level : Alpha_context.Level.t;
    4. predecessor_round : Alpha_context.Round.t;
    }
    (*

    Shell/mempool-only construction of a virtual block. See Tezos_protocol_environment_sigs.V5.T.Updater.PROTOCOL.begin_construction

    *)
  4. | Full_construction of {
    1. predecessor : Tezos_protocol_environment_014_PtKathma.Block_hash.t;
    2. payload_producer : Alpha_context.public_key_hash;
    3. block_producer : Alpha_context.public_key_hash;
    4. protocol_data_contents : Alpha_context.Block_header.contents;
    5. level : Tezos_protocol_environment_014_PtKathma.Int32.t;
    6. round : Alpha_context.Round.t;
    7. predecessor_level : Alpha_context.Level.t;
    8. predecessor_round : Alpha_context.Round.t;
    }
    (*

    Baker-only block construction for baking in. See Tezos_protocol_environment_sigs.V5.T.Updater.PROTOCOL.begin_construction

    *)

validation_mode permits to differenciate !type:validation_state values.

There are four validation modes:

  • Application
  • Partial_application
  • Partial_construction
  • Full_construction

For the meaning and typical uses of each mode, refer to the comments attached to the corresponding type constructors below.

Sourcetype validation_state = {
  1. mode : validation_mode;
  2. chain_id : Tezos_protocol_environment_014_PtKathma.Chain_id.t;
  3. ctxt : Alpha_context.t;
  4. op_count : int;
  5. migration_balance_updates : Alpha_context.Receipt.balance_updates;
  6. liquidity_baking_toggle_ema : Alpha_context.Liquidity_baking.Toggle_EMA.t;
  7. implicit_operations_results : Apply_results.packed_successful_manager_operation_result list;
  8. validate_operation_info : Validate_operation.validate_operation_info;
  9. validate_operation_state : Validate_operation.validate_operation_state;
}
include Tezos_protocol_environment_014_PtKathma.Updater.PROTOCOL with type block_header_data = Alpha_context.Block_header.protocol_data and type block_header_metadata = Apply_results.block_metadata and type block_header = Alpha_context.Block_header.t and type operation_data := operation_data and type operation_receipt = Apply_results.packed_operation_metadata and type operation := operation and type validation_state := validation_state
Sourceval max_block_length : int
Sourceval max_operation_data_length : int
Sourcetype block_header_metadata = Apply_results.block_metadata
Sourceval acceptable_passes : operation -> int list
Sourceval relative_position_within_block : operation -> operation -> int
OCaml

Innovation. Community. Security.