Module Mavryk_base.Block_header

type shell_header = {
  1. level : Stdlib.Int32.t;
    (*

    Height of the block, from the genesis block.

    *)
  2. proto_level : int;
    (*

    Number (uint8) of protocol changes since genesis modulo 256.

    *)
  3. predecessor : Mavryk_crypto.Hashed.Block_hash.t;
    (*

    Hash of the preceding block.

    *)
  4. timestamp : Time.Protocol.t;
    (*

    Timestamp at which the block is claimed to have been created.

    *)
  5. validation_passes : int;
    (*

    Number (uint8) of validation passes (also number of lists of operations).

    *)
  6. operations_hash : Mavryk_crypto.Hashed.Operation_list_list_hash.t;
    (*

    Hash of the list of lists (actually root hashes of merkle trees) of operations included in the block. There is one list of operations per validation pass.

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

    A sequence of sequences of unsigned bytes, ordered by length and then lexicographically. It represents the claimed fitness of the chain ending in this block.

    *)
  8. context : Mavryk_crypto.Hashed.Context_hash.t;
    (*

    Hash of the state of the context either before or after application of this block depending on the protocol environment's expected_context_hash value.

    *)
}
val shell_header_encoding : shell_header Data_encoding.t
type t = {
  1. shell : shell_header;
  2. protocol_data : Stdlib.Bytes.t;
}
include S.HASHABLE with type t := t and type hash := Mavryk_crypto.Hashed.Block_hash.t
include S.T with type t := t
include Mavryk_stdlib.Compare.S with type t := t
val (=) : t -> t -> bool

x = y iff compare x y = 0

val (<>) : t -> t -> bool

x <> y iff compare x y <> 0

val (<) : t -> t -> bool

x < y iff compare x y < 0

val (<=) : t -> t -> bool

x <= y iff compare x y <= 0

val (>=) : t -> t -> bool

x >= y iff compare x y >= 0

val (>) : t -> t -> bool

x > y iff compare x y > 0

val compare : t -> t -> int

compare an alias for the functor parameter's compare function

val equal : t -> t -> bool

equal x y iff compare x y = 0

val max : t -> t -> t

max x y is x if x >= y otherwise it is y

val min : t -> t -> t

min x y is x if x <= y otherwise it is y

val pp : Stdlib.Format.formatter -> t -> unit
val encoding : t Data_encoding.t
val to_bytes : t -> Stdlib.Bytes.t
val of_bytes : Stdlib.Bytes.t -> t option
val hash_raw : Stdlib.Bytes.t -> Mavryk_crypto.Hashed.Block_hash.t
val of_bytes_exn : Stdlib.Bytes.t -> t
val to_b58check : t -> string
val of_b58check : string -> t option
val bounded_encoding : ?max_size:int -> unit -> t Data_encoding.t
val get_forced_protocol_upgrade : user_activated_upgrades:User_activated.upgrades -> level:Stdlib.Int32.t -> Mavryk_crypto.Hashed.Protocol_hash.t option
val get_voted_protocol_overrides : user_activated_protocol_overrides:User_activated.protocol_overrides -> Mavryk_crypto.Hashed.Protocol_hash.t -> Mavryk_crypto.Hashed.Protocol_hash.t option