package tezos-protocol-alpha

  1. Overview
  2. Docs
Legend:
Library
Module
Module type
Parameter
Class
Class type
module Alpha_context : sig ... end

An Alpha_context.t is an immutable snapshot of the ledger state at some block height, preserving type-safety and invariants of the ledger state.

module Alpha_services : sig ... end

This declares Protocol RPC services.

module Amendment : sig ... end

Amendments and proposals.

module Apply : sig ... end

This module supports advancing the ledger state by applying operations.

module Apply_internal_results : sig ... end

Types representing results of applying an internal operation.

module Apply_operation_result : sig ... end
module Apply_results : sig ... end

Types representing results of applying an operation.

module Baking : sig ... end
module Bitset : sig ... end
module Blinded_public_key_hash : sig ... end

This module handles hashes of implicit contract addresses used for commitments in the origin block.

module Block_header_repr : sig ... end

Representation of block headers.

module Block_payload_hash : sig ... end

A specialized Blake2B implementation for hashing block's payloads.

module Block_payload_repr : sig ... end

Value on which validators try to reach a consensus.

module Bond_id_repr : sig ... end

This module defines identifiers for frozen bonds.

module Bootstrap_storage : sig ... end

This module provides functions that can be used in a private network to delay initial rewarding, typically when waiting for more bakers to join the network.

module Bounded_history_repr : sig ... end

A bounded cache associating values to keys.

module Cache_memory_helpers : sig ... end
module Cache_repr : sig ... end

Frequently used data should be kept in memory and persisted along a chain of blocks. The caching mechanism allows the economic protocol to declare such data and to rely on a Least Recently Used strategy to keep the cache size under a fixed limit.

module Carbonated_map : sig ... end

An in-memory data-structure for a key-value map where all operations account for gas costs.

module Carbonated_map_costs : sig ... end
module Commitment_repr : sig ... end
module Commitment_storage : sig ... end
module Constants_parametric_repr : sig ... end
module Constants_repr : sig ... end
module Constants_services : sig ... end
module Constants_storage : sig ... end

This module provides functions to extract the value of protocol parameters from the context. See Constant_repr.parametric for more details about these values.

module Context_binary_proof : sig ... end
module Contract_delegate_storage : sig ... end

This module deals with the delegates of a contract. It is responsible for maintaining the tables Storage.Contract.Delegate and Storage.Contract.Delegated.

module Contract_hash : sig ... end

A specialized Blake2B implementation for hashing contract identifiers.

module Contract_manager_storage : sig ... end
module Contract_repr : sig ... end

This module defines identifiers for two basic types of contracts. It also specifies how to compute originated contract's hash from origination nonce.

module Contract_services : sig ... end

This module defines RPC services to access the information associated to contracts (balance, delegate, script, etc.).

module Contract_storage : sig ... end

Low-level handlers of raw contexts for base operations on contracts.

module Cycle_repr : sig ... end

This module provides a type and functions to manipulate cycle numbers.

module Dal_apply : sig ... end

This modules handles all the validation/application/finalisation of any operation related to the DAL.

module Dal_attestation_repr : sig ... end

Slot attestation representation for the data-availability layer.

module Dal_errors_repr : sig ... end
module Dal_operations_repr : sig ... end
module Dal_services : sig ... end
module Dal_slot_index_repr : sig ... end
module Dal_slot_repr : sig ... end
module Dal_slot_storage : sig ... end

Storage management of slots for the data-availability layer.

module Delegate_activation_storage : sig ... end

This module deals with delegates' activity. Typically, the provided functions can be used to deactivate a delegate that has not shown activity for a certain number of cycles, and to reactivate it when appropriate.

module Delegate_consensus_key : sig ... end

Management of a delegate's consensus key, the one used to sign blocks and consensus operations. It is responsible for maintaining the tables Storage.Consensus_keys, Storage.Contract.Consensus_key, and Storage.Contract.Pending_consensus_keys.

module Delegate_cycles : sig ... end

Per-cycle management of delegates.

This modules deals with delegates' participation in consensus.

module Delegate_sampler : sig ... end

This module draws random values for a cycle based on the Seed_repr.seed associated that cycle. These random values are:

module Delegate_services : sig ... end

This module defines RPC services to access the information associated to delegates (who they are, their delegators, their different kinds of balances, their activity, etc.).

This module maintains the storage related to slashing of delegates for double signing. In particular, it is responsible for maintaining the Storage.Slashed_deposits table.

module Delegate_storage : sig ... end

This module groups everything related to delegate registration. For the invariants maintained, see the submodule Contract.

module Dependent_bool : sig ... end

Dependent booleans

module Destination_repr : sig ... end

The type of the destination argument of the Operation_repr.manager_operation.Transaction manager operation.

module Destination_storage : sig ... end
module Entrypoint_repr : sig ... end
module Fees_storage : sig ... end
module Fitness_repr : sig ... end
module Fixed_point_repr : sig ... end

This module defines a standard signature for modules providing fixed-point arithmetic.

module Frozen_deposits_storage : sig ... end

Simple abstraction from low-level storage to handle frozen deposits.

module Gas_comparable_input_size : sig ... end

Gas_input_size includes the definitions for the different sizes used in the gas models of the protocol. They do not always represent memory sizes, but rather they can be seen as an information size. They are tailored to the models that use them, and should not be used for anything other than gas computation.

module Gas_input_size : sig ... end

Gas_input_size includes the definitions for the different sizes used in the gas models of the protocol. They do not always represent memory sizes, but rather they can be seen as an information size. They are tailored to the models that use them, and should not be used for anything other than gas computation.

module Gas_limit_repr : sig ... end

Internal representation of the gas limit available to the node baking a new block. It should be proportional to the time and energy required to perform a computation.

module Gas_monad : sig ... end
module Global_constants_costs : sig ... end

Costs function for the global table of constants.

module Global_constants_storage : sig ... end

This module represents access to a global table of constant Micheline values. Users may register a Micheline value in the table, paying the cost of storage. Once stored, contracts source code may reference this value by its hash.

module Indexable : sig ... end

In transaction rollups, some values can be replaced by indexes in the messages sent from the layer-1 to the layer-2.

module Init_storage : sig ... end

Functions to setup storage. Used by Alpha_context.prepare.

module Lazy_storage_diff : sig ... end

See Lazy_storage_kind for an introduction on lazy storage.

module Lazy_storage_kind : sig ... end

Lazy_storage offers a unified interface for specific Michelson datatype that behave somewhat lazily, because they are intended to be quite big. Instead of serializing/deserializing the whole value to/from the storage, only an identifier is used. The identifier acts like a pointer. When using the value in a Michelson script, some part of it may be read from the storage, and a lightweight diff is computed. The diff is effectively applied to the storage at the end of the execution.

module Legacy_script_patches : sig ... end
module Level_repr : sig ... end

This module defines the protocol representation of a level. Besides the "raw level", which is the shell's notion of the level, this representation also contains additional information, like the cycle the level belongs to.

module Level_storage : sig ... end
module Liquidity_baking_cpmm : sig ... end
module Liquidity_baking_lqt : sig ... end
module Liquidity_baking_migration : sig ... end
module Liquidity_baking_repr : sig ... end

Options available for the Liquidity Baking per-block vote

module Liquidity_baking_storage : sig ... end
module Local_gas_counter : sig ... end

This module exposes an API for local gas counting. It provides a set of functions for updating a gas counter without applying it on an an Alpha_context.context.

module Main : sig ... end

Tezos Protocol Implementation - Protocol Signature Instance

module Manager_counter_repr : sig ... end

Counters are used as anti-replay protection mechanism in manager operations: each manager account stores a counter and each manager operation declares a value for the counter. When a manager operation is applied, the value of the counter of its manager is checked and incremented.

module Manager_repr : sig ... end
module Mempool_validation : sig ... end

This module implements a mempool structure meant to be used by a shell and bakers in order to incrementally accumulate commutative operations which could then be safely used to bake a new block. These mempool components guarantee a set of properties useful for these purposes:

module Merkle_list : sig ... end
module Michelson_v1_gas : sig ... end

This module provides the gas costs for typechecking Michelson scripts, parsing and unparsing Michelson values, and interpreting Michelson instructions.

module Michelson_v1_gas_costs : sig ... end
module Michelson_v1_primitives : sig ... end
module Migration_repr : sig ... end
module Misc : sig ... end
module Non_empty_string : sig ... end
module Nonce_hash : sig ... end

A specialized Blake2B implementation for hashing nonces.

module Nonce_storage : sig ... end

This module provides types and functions to manipulate nonces.

module Operation_repr : sig ... end

Tezos Protocol Implementation - Low level Repr. of Operations

module Origination_nonce : sig ... end
module Parameters_repr : sig ... end

This module defines protocol parameters, i.e. constants regulating the behaviour of the blockchain under the protocol.

module Path_encoding : sig ... end
module Period_repr : sig ... end
module Ratio_repr : sig ... end
module Raw_context : sig ... end

State of the validation.

module Raw_context_intf : sig ... end

All context manipulation functions. This signature is included as-is for direct context accesses, and used in Storage_functors to provide restricted views to the context.

module Raw_level_repr : sig ... end
module Receipt_repr : sig ... end
module Round_repr : sig ... end

A round represents an iteration of the single-shot consensus algorithm.

module Sampler : sig ... end

Efficient sampling from given finitely supported (nonzero, positive) measures using the alias method. Measures need not be normalized on input, but sampling proceeds from the normalized probability measure associated to the given measure.

module Sapling_repr : sig ... end
module Sapling_services : sig ... end
module Sapling_storage : sig ... end
module Sapling_validator : sig ... end
module Saturation_repr : sig ... end

This module provides saturated arithmetic between 0 and 2^62 - 1.

module Sc_rollup_PVM_sig : sig ... end

This module introduces the semantics of Proof-generating Virtual Machines.

module Sc_rollup_arith : sig ... end

This module provides a temporary toy rollup to be used as a demo.

module Sc_rollup_commitment_repr : sig ... end
module Sc_rollup_commitment_storage : sig ... end

Defines storage for Smart Contract Optimistic Rollups.

module Sc_rollup_costs : sig ... end

This module contains constants and utility functions for gas metering functions used when handling SC rollups operations in context.

module Sc_rollup_data_version_sig : sig ... end

The values are versioned, to let the possibility to modify the values in future iterations of the protocol.

module Sc_rollup_dissection_chunk_repr : sig ... end
module Sc_rollup_errors : sig ... end
module Sc_rollup_game_repr : sig ... end

The smart contract rollup refutation game types are defined here, as well as the basic pure logic for:

module Sc_rollup_inbox_message_repr : sig ... end

This module exposes a type t that represents inbox messages. Inbox messages are produced by the Layer 1 protocol and are encoded using the serialize function, before being added to a smart-contract rollup's inbox.

module Sc_rollup_inbox_repr : sig ... end
module Sc_rollup_inbox_storage : sig ... end
module Sc_rollup_management_protocol : sig ... end

This module provides a typed API for the Rollup Management Protocol that defines the communication protocol for exchanging messages between Layer 1 and Layer 2 for smart-contract rollups.

module Sc_rollup_metadata_repr : sig ... end

Static rollup-related metadata for the PVMs.

module Sc_rollup_operations : sig ... end
module Sc_rollup_outbox_message_repr : sig ... end

This module defines a data type t that represents messages from Layer 2 to Layer 1.

module Sc_rollup_outbox_storage : sig ... end

A module for managing state concerning a rollup's outbox.

module Sc_rollup_proof_repr : sig ... end

A refutation game proof is required as part of the final move in a game.

module Sc_rollup_refutation_storage : sig ... end
module Sc_rollup_repr : sig ... end

The basic components of an optimistic rollup for smart-contracts.

module Sc_rollup_reveal_hash : sig ... end
module Sc_rollup_stake_storage : sig ... end
module Sc_rollup_staker_index_repr : sig ... end
module Sc_rollup_staker_index_storage : sig ... end
module Sc_rollup_storage : sig ... end
module Sc_rollup_tick_repr : sig ... end

This module defines Tick.t, an execution step counter for smart-contract rollups.

module Sc_rollup_wasm : sig ... end
module Sc_rollups : sig ... end

Here is the list of PVMs available in this protocol.

module Script_big_map : sig ... end
module Script_bytes : sig ... end

Semantics of logical and bit-shift operators for bytes

module Script_cache : sig ... end

This module manages the cache for smart contracts.

module Script_comparable : sig ... end
module Script_expr_hash : sig ... end

A specialized Blake2B implementation for hashing Michelson expressions.

module Script_int : sig ... end
module Script_interpreter : sig ... end

This is the Michelson interpreter.

module Script_interpreter_defs : sig ... end
module Script_ir_annot : sig ... end
module Script_ir_translator : sig ... end
module Script_ir_translator_config : sig ... end
module Script_ir_unparser : sig ... end
module Script_list : sig ... end
module Script_map : sig ... end

Functions to ease the manipulation of Michelson maps.

module Script_repr : sig ... end

Defines a Michelson expression representation as a Micheline node with canonical (int) location and Michelson_v1_primitives.prim as content.

module Script_set : sig ... end

Functions to ease the manipulation of sets of values in Michelson.

module Script_string : sig ... end

Strings of printable characters

module Script_tc_context : sig ... end

This module defines the typechecking context used during the translation from Michelson untyped nodes to typed nodes (Script_ir_translator). The context keeps track of the origin of the code (top-level from a contract, in a view, etc.), plus some information to allow or forbid instructions given the context (no `SELF` in a lambda for example).

module Script_tc_errors : sig ... end
module Script_tc_errors_registration : sig ... end

This module registers all the errors from Script_tc_errors as a top-level effect.

module Script_timestamp : sig ... end

Defines the internal Michelson representation for timestamps and basic operations that can be performed on it.

module Script_typed_ir : sig ... end
module Script_typed_ir_size : sig ... end

This module provides overapproximation of memory footprint for Michelson-related values.

module Script_typed_ir_size_costs : sig ... end
module Seed_repr : sig ... end

Tezos Protocol Implementation - Random number generation

module Seed_storage : sig ... end

This modules handles the storage of random nonce seeds.

module Services_registration : sig ... end

Functions for RPC service registration, using Updater.rpc_context and RPC_service.t from the Protocol Environment.

module Skip_list_costs : sig ... end
module Skip_list_repr : sig ... end

This module provides an implementation of the skip list data structure.

module Slot_repr : sig ... end

Slot index representation

module Stake_storage : sig ... end

This module provides basic operations (accessors and setters) on staking tokens.

module State_hash : sig ... end

A specialized Blake2B implementation for hashing internal states of random number generators.

module Storage : sig ... end

Tezos Protocol Implementation - Typed storage

module Storage_costs : sig ... end
module Storage_description : sig ... end

This module is responsible for building the description of the current state of the storage, which is then used to build specification of the RPC endpoints for accessing the storage. It produces resto RPC_directory.t values, which can be used directly to construct the RPC endpoint tree.

module Storage_functors : sig ... end

Tezos Protocol Implementation - Typed storage builders.

module Storage_sigs : sig ... end
module Tez_repr : sig ... end
module Ticket_accounting : sig ... end
module Ticket_amount : sig ... end
module Ticket_balance_key : sig ... end

This module exposes a function for generating a ticket-balance key-hash given an owner and a ticket-token. The key-hash is used for populating the global ticket-balance table that tracks ownership of tickets for different tokens.

module Ticket_costs : sig ... end

This module contains constants and utility functions for gas metering functions used for extracting and handling tickets for the global ticket balance table.

module Ticket_hash_builder : sig ... end
module Ticket_hash_repr : sig ... end

Ticket hashes are used to uniquely identify pairs made of Michelson ticktes and their owner.

module Ticket_lazy_storage_diff : sig ... end
module Ticket_operations_diff : sig ... end

A module that provides functionality for extracting ticket-token differences from a list of operations.

module Ticket_receipt : sig ... end

A module for representing the increase/decrease of tickets in the storage. It will be used to display ticket update information in the operation receipt.

module Ticket_scanner : sig ... end

This module provides an API for extracting tickets of arbitrary types from an OCaml values, given a type-witness.

module Ticket_storage : sig ... end
module Ticket_token : sig ... end

A module for handling ticket-tokens. A ticket-token represents the combination of a ticketer (creator of a ticket) and the content. That is, a ticket comprises a ticket-token and an amount.

module Ticket_token_map : sig ... end

A module exposing a carbonated map where keys are Ticket_token.ex_token values.

module Ticket_token_unparser : sig ... end
module Ticket_transfer : sig ... end
module Time_repr : sig ... end
module Token : sig ... end

The aim of this module is to manage operations involving tokens such as minting, transferring, and burning. Every constructor of the types source, container, or sink represents a kind of account that holds a given (or possibly infinite) amount of tokens.

module Tx_rollup_commitment_repr : sig ... end
module Tx_rollup_commitment_storage : sig ... end

This module introduces various functions to manipulate the storage related to commitments for transaction rollups.

module Tx_rollup_errors_repr : sig ... end
module Tx_rollup_gas : sig ... end
module Tx_rollup_hash_builder : sig ... end
module Tx_rollup_inbox_repr : sig ... end
module Tx_rollup_inbox_storage : sig ... end

Functions to manipulate transaction rollup’s inboxes.

module Tx_rollup_l2_address : sig ... end

This module introduces the types used to identify ticket holders within a transaction rollup.

module Tx_rollup_l2_apply : sig ... end

This module introduces the interpretation (off-chain) of layer2 operations read from its inboxes.

module Tx_rollup_l2_batch : sig ... end

This module introduces the batches of transactions that the layer-2 (1) reads from its inboxes (see Tx_rollup_message_repr.t.Batch), and (2) interprets off-chain.

module Tx_rollup_l2_context : sig ... end
module Tx_rollup_l2_context_hash : sig ... end

A specialized Blake2B implementation for hashing tx_rollup contexts.

module Tx_rollup_l2_context_sig : sig ... end
module Tx_rollup_l2_proof : sig ... end
module Tx_rollup_l2_qty : sig ... end

This module is an abstraction on top of int64 to build positive (or zero) quantities within the int64 bounds. It comes with a compact encoding to be used in the transaction rollup batches.

module Tx_rollup_l2_storage_sig : sig ... end
module Tx_rollup_l2_verifier : sig ... end
module Tx_rollup_level_repr : sig ... end
module Tx_rollup_message_hash_repr : sig ... end

The Blake2B hash of a message.

module Tx_rollup_message_repr : sig ... end

Communication from the layer-1 (Tezos) to the layer-2 (a transaction rollup) happens thanks to messages, crafted in the layer-1 to be interpreted in the layer-2.

The hash of the result of a layer-2 operation: that is, the hash of (l2_ctxt_hash ^ withdraw_hash) where l2_ctxt_hash is the Merkle tree root of the L2 context after any message (ie. deposit or batch), and withdraw_hash is a Tx_rollup_withdraw_repr.withdraw_list_hash

module Tx_rollup_message_result_repr : sig ... end
module Tx_rollup_parameters : sig ... end

A module for representing and extracting typed transactional rollup parameters.

module Tx_rollup_prefixes : sig ... end
module Tx_rollup_repr : sig ... end

This module defines identifiers for transaction only rollup (or tx rollup). It also specifies how to compute originated tx rollup's hash from origination nonce.

module Tx_rollup_reveal_repr : sig ... end
module Tx_rollup_reveal_storage : sig ... end
module Tx_rollup_services : sig ... end
module Tx_rollup_state_repr : sig ... end
module Tx_rollup_state_storage : sig ... end

A collection of functions to manipulate the state of a transaction rollup.

module Tx_rollup_storage : sig ... end
module Tx_rollup_withdraw_repr : sig ... end
module Validate : sig ... end

This module provides functions pertaining to the validation of blocks and operations. Most elements in this module are either used or wrapped in the Main module (though some of them are also directly used by the plugin).

module Validate_errors : sig ... end
module Vote_repr : sig ... end
module Vote_storage : sig ... end

Manages all the voting related storage in Storage.Vote.

module Voting_period_repr : sig ... end
module Voting_period_storage : sig ... end
module Voting_services : sig ... end

This module provides RPC services that return voting-related information.

module Zk_rollup_account_repr : sig ... end
module Zk_rollup_apply : sig ... end

This module handles all the validation/application of any operation related to the ZK Rollup. All of the functions defined in this module require that the ZKRU feature flag is enabled.

Abstraction layer for the public inputs to the ZKRU aPlonk circuits.

module Zk_rollup_errors : sig ... end
module Zk_rollup_operation_repr : sig ... end
module Zk_rollup_parameters : sig ... end

A module for representing and extracting typed ZK rollup parameters.

module Zk_rollup_repr : sig ... end
module Zk_rollup_scalar : sig ... end

Representation of scalars used by the ZK Rollup alongside manipulation functions

module Zk_rollup_state_repr : sig ... end
module Zk_rollup_storage : sig ... end
module Zk_rollup_ticket_repr : sig ... end
module Zk_rollup_update_repr : sig ... end

Payload of a ZK Rollup update operation. The operator only needs to send a subset of the public inputs defined in Zk_rollup_circuit_public_inputs_repr, the rest is provided by the protocol.

OCaml

Innovation. Community. Security.