Tezos_raw_protocol_alpha.Block_header_reprRepresentation of block headers.
type contents = {payload_hash : Block_payload_hash.t;payload_round : Round_repr.t;seed_nonce_hash : Nonce_hash.t option;proof_of_work_nonce : bytes;per_block_votes : Per_block_votes_repr.per_block_votes;}type protocol_data = {contents : contents;signature : Tezos_protocol_environment_alpha.Signature.t;}type t = {shell : Tezos_protocol_environment_alpha.Block_header.shell_header;protocol_data : protocol_data;}type block_header = ttype shell_header = Tezos_protocol_environment_alpha.Block_header.shell_headerval raw : block_header -> rawval raw_encoding : raw Tezos_protocol_environment_alpha.Data_encoding.tval contents_encoding :
contents Tezos_protocol_environment_alpha.Data_encoding.tval unsigned_encoding :
(Tezos_protocol_environment_alpha.Block_header.shell_header * contents)
Tezos_protocol_environment_alpha.Data_encoding.tval protocol_data_encoding :
protocol_data Tezos_protocol_environment_alpha.Data_encoding.encodingval shell_header_encoding :
shell_header Tezos_protocol_environment_alpha.Data_encoding.encodingval to_watermark :
block_watermark ->
Tezos_protocol_environment_alpha.Signature.watermarkval of_watermark :
Tezos_protocol_environment_alpha.Signature.watermark ->
block_watermark optionval hash : block_header -> Tezos_protocol_environment_alpha.Block_hash.tval hash_raw : raw -> Tezos_protocol_environment_alpha.Block_hash.tmodule Proof_of_work : sig ... endChecks if the header that would be built from the given components is valid for the given difficulty. The signature is not passed as it is does not impact the proof-of-work stamp. The stamp is checked on the hash of a block header whose signature has been zeroed-out.
val check_timestamp :
Round_repr.Durations.t ->
timestamp:Tezos_protocol_environment_alpha.Time.t ->
round:Round_repr.t ->
predecessor_timestamp:Tezos_protocol_environment_alpha.Time.t ->
predecessor_round:Round_repr.t ->
unit Tezos_protocol_environment_alpha.Error_monad.tzresultcheck_timestamp ctxt timestamp round predecessor_timestamp predecessor_round verifies that the block's timestamp and round are coherent with the predecessor block's timestamp and round. Fails with an error if that is not the case.
val check_signature :
t ->
Tezos_protocol_environment_alpha.Chain_id.t ->
Tezos_protocol_environment_alpha.Signature.Public_key.t ->
unit Tezos_protocol_environment_alpha.Error_monad.tzresultval begin_validate_block_header :
block_header:t ->
chain_id:Tezos_protocol_environment_alpha.Chain_id.t ->
predecessor_timestamp:Tezos_protocol_environment_alpha.Time.t ->
predecessor_round:Round_repr.t ->
fitness:Fitness_repr.t ->
timestamp:Tezos_protocol_environment_alpha.Time.t ->
delegate_pk:Tezos_protocol_environment_alpha.Signature.public_key ->
round_durations:Round_repr.Durations.t ->
proof_of_work_threshold:int64 ->
expected_commitment:bool ->
unit Tezos_protocol_environment_alpha.Error_monad.tzresult