Mavryk_dal_node_services.ServicesThis module provides different services related to DAL slots.
include module type of Services_legacyval slot_pages :
([ `GET ],
unit,
unit * Mavryk_crypto_dal.Cryptobox.commitment,
unit,
unit,
Mavryk_crypto_dal.Cryptobox.page list)
Mavryk_rpc.Service.servicetype '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 >
serviceAdd 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 > >
serviceThis 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 >
serviceAssociate 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 >
serviceRetrieve 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 >
serviceCompute 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 >
serviceCompute 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 >
serviceCompute 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 >
serviceReturn 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 >
serviceReturn 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 >
serviceReturn 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 >
serviceUpdate 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 >
serviceReturn 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 >
serviceReturn 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 >
serviceReturn 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 >
serviceReturn the shard associated to the given index.
val version :
< meth : [ `GET ]
; input : unit
; output : Types.Version.t
; prefix : unit
; params : unit
; query : unit >
servicemodule P2P : sig ... end