package tezos-crypto-dal

  1. Overview
  2. Docs
val parameters_initialisation : parameters -> initialisation_parameters

The initialisation parameters can be too large for testing purposes. This function creates an unsafe initialisation parameters using parameters. The running time of this function is linear with respect to parameters.slot_size. Order of magnitude can be around 1 minute for a size of 1MiB.

val load_parameters : initialisation_parameters -> unit

Same as load_parameters except it erase parameters if they were already loaded. This is used to circumvent limitation from test frameworks where tests with various parameters could be run using the same binary.

val make_dummy_shards : t -> state:Stdlib.Random.State.t -> shard Stdlib.Seq.t

Returns a randomized valid sequence of shards using the random state state for the given parameters.

val polynomials_equal : polynomial -> polynomial -> bool

polynomials_equal p1 p2 returns true if and only if p1 and p2 represent the same polynomial.

val page_proof_equal : page_proof -> page_proof -> bool

page_proof_equal proof1 proof2 returns true if and only if proof1 and proof2 represent the same proof.

val alter_page_proof : page_proof -> page_proof

alter_page_proof page_proof returns a different page proof than the input.

val alter_shard_proof : shard_proof -> shard_proof

alter_shard_proof shard_proof returns a different shard proof than the input.

val alter_commitment_proof : commitment_proof -> commitment_proof

alter_commitment_proof commitment_proof returns a different commitment proof than the input.

val minimum_number_of_shards_to_reconstruct_slot : t -> int

minimum_number_of_shards_to_reconstruct_slot t returns the minimum number of shards to reconstruct a slot using polynomial_from_shards.

val dummy_commitment : state:Stdlib.Random.State.t -> unit -> commitment
val dummy_page_proof : state:Stdlib.Random.State.t -> unit -> page_proof
val dummy_shard_proof : state:Stdlib.Random.State.t -> unit -> shard_proof
val make_dummy_shard : state:Stdlib.Random.State.t -> index:int -> length:int -> shard
val number_of_pages : t -> int
val shard_length : t -> int
val dummy_polynomial : state:Stdlib.Random.State.t -> degree:int -> polynomial
val srs_size_g1 : t -> int
val select_fft_domain : int -> int * int * int

select_fft_domain domain_size selects a suitable domain for the FFT.

The domain size domain_size is expected to be strictly positive. Return (size, power_of_two, remainder) such that: * If domain_size > 1, then size is the smallest integer greater or equal to domain_size and is of the form 2^a * 3^b * 11^c * 19^d, where a ∈ ⟦0, 32⟧, b ∈

, 1

, c ∈

, 1

, d ∈

, 1

. * If domain_size = 1, then size = 2. * size = power_of_two * remainder, power_of_two is a power of two, and remainder is not divisible by 2.

val precomputation_equal : shards_proofs_precomputation -> shards_proofs_precomputation -> bool
val reset_initialisation_parameters : unit -> unit
val encoded_share_size : t -> int
val ensure_validity : parameters -> bool

ensure_validity parameters returns true if the parameters are valid. See implementation file for details.

OCaml

Innovation. Community. Security.