Module Make.Updater

Mavryk Protocol Environment - Protocol updater.

type validation_result = {
  1. context : Context.t;
    (*

    The resulting context, it will be used for the next block.

    *)
  2. fitness : Fitness.t;
    (*

    The effective fitness of the block (to be compared with the 'announced' one in the block header.

    *)
  3. message : string option;
    (*

    An optional informative message to be used as in the 'git commit' of the block's context.

    *)
  4. max_operations_ttl : int;
    (*

    The "time-to-live" of operation for the next block: any operations whose 'branch' is older than 'ttl' blocks in the past cannot be included in the next block.

    *)
  5. last_allowed_fork_level : Int32.t;
    (*

    The level of the last block for which the node might consider an alternate branch. The shell should consider as invalid any branch whose fork point is older than the given level

    *)
}

Validation result: the record returned by the protocol on the successful validation of a block.

type quota = {
  1. max_size : int;
    (*

    The maximum size (in bytes) of the serialized list of operations.

    *)
  2. max_op : int option;
    (*

    The maximum number of operation. None means no limit.

    *)
}
type rpc_context = {
  1. block_hash : Block_hash.t;
  2. block_header : Block_header.shell_header;
  3. context : Context.t;
}
module type PROTOCOL = sig ... end

This is the signature of a Mavryk protocol implementation. It has access to the standard library and the Environment module.

Activates a given protocol version from a given context. This means that the context used for the next block will use this version (this is not an immediate change). The version must have been previously compiled successfully.

val fork_test_chain : Context.t -> protocol:Protocol_hash.t -> expiration:Time.t -> Context.t Lwt.t

Fork a test chain. The forked chain will use the current block as genesis, and protocol as economic protocol. The chain will be destroyed when a (successor) block will have a timestamp greater than expiration. The protocol must have been previously compiled successfully.