Legend:
Library
Module
Module type
Parameter
Class
Class type
Library
Module
Module type
Parameter
Class
Class type
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.
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
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 ensure_validity : parameters -> bool
ensure_validity parameters
returns true if the parameters
are valid. See implementation file for details.