Mavryk_dal_node_services.Services
This module provides different services related to DAL slots.
include module type of Services_legacy
val slot_pages :
([ `GET ],
unit,
unit * Mavryk_crypto_dal.Cryptobox.commitment,
unit,
unit,
Mavryk_crypto_dal.Cryptobox.page list)
Mavryk_rpc.Service.service
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