package octez-protocol-017-PtNairob-libs

  1. Overview
  2. Docs
Legend:
Library
Module
Module type
Parameter
Class
Class type
type incremental = {
  1. predecessor : Baking_state.block_info;
  2. context : Tezos_protocol_environment.Context.t;
  3. state : Tezos_protocol_017_PtNairob.Protocol.validation_state * Tezos_protocol_017_PtNairob.Protocol.application_state option;
  4. rev_operations : Tezos_protocol_017_PtNairob.Protocol.Alpha_context.Operation.packed list;
  5. header : Tezos_base.Block_header.shell_header;
}
val load_context : context_path:string -> Abstract_context_index.t Tezos_base.TzPervasives.tzresult Lwt.t
val check_context_consistency : Abstract_context_index.t -> Tezos_base.TzPervasives.Context_hash.t -> unit Tezos_base.TzPervasives.tzresult Lwt.t

Make sure that the given context is consistent by trying to read in it

val begin_construction : timestamp:Tezos_base.TzPervasives.Time.Protocol.t -> protocol_data:Tezos_protocol_017_PtNairob.Protocol.block_header_data -> force_apply:bool -> pred_resulting_context_hash:Tezos_base.TzPervasives.Context_hash.t -> Abstract_context_index.t -> Baking_state.block_info -> Tezos_base.TzPervasives.Chain_id.t -> incremental Tezos_base.TzPervasives.tzresult Lwt.t

begin_construction ~timestamp ~protocol_data ~force_apply abstract_context predecessor chain_id creates a new incremental value with an empty operation list. A context is recovered from the abstract_index and the resulting_context_hash from predecessor. This context is used to create a validation_state and an application_state (if force_apply is set). A partial shell_header is created from predecessor information and timestamp.

add_operation incremental op validates op in incremental.validation_state without checking its signature. Indeed, the operation has already been validated in the node so it has a correct signature. We still need to validate it again because the context may be different. op is also applied if incremental has been created with force_apply set. This function returns an incremental with updated operations list and validation_state (and application_state).

val finalize_construction : incremental -> (Tezos_protocol_environment.validation_result * Tezos_protocol_017_PtNairob.Protocol.block_header_metadata) option Tezos_base.TzPervasives.tzresult Lwt.t

finalize_construction incremental calls the finalize_validation of the protocol on the validation_state from incremental. If incremental has been created with force_apply set, finalize_application is also called and its results returned.

OCaml

Innovation. Community. Security.