Module Mavryk_dal_node_services.Services

This module provides different services related to DAL slots.

include module type of Services_legacy
type 'rpc service = ('meth, 'prefix, 'params, 'query, 'input, 'output) Mavryk_rpc.Service.service constraint 'rpc = < meth : 'meth ; prefix : 'prefix ; params : 'params ; query : 'query ; input : 'input ; output : 'output >
val post_commitment : < meth : [ `POST ] ; input : Mavryk_crypto_dal.Cryptobox.slot ; output : Mavryk_crypto_dal.Cryptobox.commitment ; prefix : unit ; params : unit ; query : unit > service

Add the given slot in the node if not already present. The corresponding commitment is returned. See Slot_manager.add_commitment for more details.

val post_slot : < meth : [ `POST ] ; input : string ; output : Mavryk_crypto_dal.Cryptobox.commitment * Mavryk_crypto_dal.Cryptobox.commitment_proof ; prefix : unit ; params : unit ; query : < padding : char > > service

This RPC should be used by a slot producer. It allows to produce a commitment, a commitment proof and the shards from a slot. A padding is added if the slot is not of the expected size (slot_size from the Cryptobox).

val patch_commitment : < meth : [ `PATCH ] ; input : Types.slot_id ; output : unit ; prefix : unit ; params : unit * Mavryk_crypto_dal.Cryptobox.commitment ; query : unit > service

Associate a commitment to a level and a slot index. See Slot_manager.associate_slot_id_with_commitment for more details.

val get_commitment_slot : < meth : [ `GET ] ; input : unit ; output : Mavryk_crypto_dal.Cryptobox.slot ; prefix : unit ; params : unit * Mavryk_crypto_dal.Cryptobox.commitment ; query : unit > service

Retrieve the content of the slot associated with the given commitment.

val get_commitment_proof : < meth : [ `GET ] ; input : unit ; output : Mavryk_crypto_dal.Cryptobox.commitment_proof ; prefix : unit ; params : unit * Mavryk_crypto_dal.Cryptobox.commitment ; query : unit > service

Compute the proof associated to a commitment.

val get_page_proof : < input : Mavryk_crypto_dal.Cryptobox.slot ; meth : [ `POST ] ; output : Mavryk_crypto_dal.Cryptobox.page_proof ; params : unit * Types.page_index ; prefix : unit ; query : unit > service

Compute the proof associated to the page whose index is given of the given slot.

val put_commitment_shards : < meth : [ `PUT ] ; input : Types.with_proof ; output : unit ; prefix : unit ; params : unit * Mavryk_crypto_dal.Cryptobox.commitment ; query : unit > service

Compute and save the shards of the slot associated to the given commitment. If the input's flag is true, the proofs associated with the computed shards are also computed and stored in memory.

val get_commitment_by_published_level_and_index : < meth : [ `GET ] ; input : unit ; output : Mavryk_crypto_dal.Cryptobox.commitment ; prefix : unit ; params : (unit * Types.level) * Types.slot_index ; query : unit > service

Return the accepted commitment associated to the given slot index and published at the given level, if any.

val get_commitment_headers : < meth : [ `GET ] ; input : unit ; output : Types.slot_header list ; prefix : unit ; params : unit * Mavryk_crypto_dal.Cryptobox.commitment ; query : Types.level option * Types.slot_index option > service

Return the known headers for the slot whose commitment is given.

val get_published_level_headers : < meth : [ `GET ] ; input : unit ; output : Types.slot_header list ; prefix : unit ; params : unit * Types.level ; query : Types.header_status option > service

Return the known slot headers for the given published level.

val patch_profiles : < meth : [ `PATCH ] ; input : Types.operator_profiles ; output : unit ; prefix : unit ; params : unit ; query : unit > service

Update the list of profiles tracked by the DAL node. Note that it does not take the bootstrap profile as it is incompatible with other profiles.

val get_profiles : < meth : [ `GET ] ; input : unit ; output : Types.profiles ; prefix : unit ; params : unit ; query : unit > service

Return the list of current profiles tracked by the DAL node

val get_assigned_shard_indices : < meth : [ `GET ] ; input : unit ; output : Types.shard_index list ; prefix : unit ; params : (unit * Mavryk_crypto.Signature.public_key_hash) * Types.level ; query : unit > service

Return the shard indexes assigned to the given public key hash at the given level.

val get_attestable_slots : < meth : [ `GET ] ; input : unit ; output : Types.attestable_slots ; prefix : unit ; params : (unit * Mavryk_crypto.Signature.public_key_hash) * Types.level ; query : unit > service

Return the set of currently attestable slots. A slot is attestable at level l if it is published at level l - attestation_lag and *all* the shards assigned at level l to the given public key hash are available in the DAL node's store.

val get_shard : < meth : [ `GET ] ; input : unit ; output : Mavryk_crypto_dal.Cryptobox.shard ; prefix : unit ; params : (unit * Mavryk_crypto_dal.Cryptobox.commitment) * int ; query : unit > service

Return the shard associated to the given index.

val version : < meth : [ `GET ] ; input : unit ; output : Types.Version.t ; prefix : unit ; params : unit ; query : unit > service
module P2P : sig ... end