package class_group_vdf
sectionYPositions = computeSectionYPositions($el), 10)"
x-init="setTimeout(() => sectionYPositions = computeSectionYPositions($el), 10)"
>
Verifiable Delay Functions bindings to Chia's VDF
Install
dune-project
Dependency
Authors
Maintainers
Sources
ocaml-chia-vdf-v0.0.4.tar.gz
md5=9dedb6584bf23877136c328703d47532
sha512=265f4c76fe995524260bff055347a9bb40cce9b5adf0f0222fd71a0cce29d51fe1fbac7b961577b6d28e16c8aa4630805c6365924e6fc0d06c4d07c84d2c6c78
doc/src/class_group_vdf/vdf.ml.html
Source file vdf.ml
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74module type Vdf_sig = sig module Group : S.GROUP (** [prove_vdf discriminant form difficulty] *) val prove : Group.t -> Unsigned.UInt64.t -> Group.t * Group.t (** [verify_vdf discriminant form difficulty form form] *) val verify : Group.t -> Unsigned.UInt64.t -> Group.t -> Group.t -> bool end module Stubs = struct external prove : Bytes.t -> Unsigned.Size_t.t -> Bytes.t -> Unsigned.UInt64.t -> Bytes.t -> Bytes.t -> int = "caml_prove_bytecode_stubs" "caml_prove_stubs" external verify : Bytes.t -> Unsigned.Size_t.t -> Bytes.t -> Bytes.t -> Bytes.t -> Unsigned.UInt64.t -> int = "caml_verify_bytecode_stubs" "caml_verify_stubs" end module Make (CG : Class_group.Class_group_sig) : Vdf_sig = struct module Group = CG let discriminant_bytes = Utils.Integer.to_bytes CG.discriminant let prove challenge difficulty = let challenge_bytes = CG.to_bytes challenge in let result_bytes = Bytes.create CG.size_in_bytes in let proof_bytes = Bytes.create CG.size_in_bytes in let status = Stubs.prove discriminant_bytes CG.discriminant_size challenge_bytes difficulty result_bytes proof_bytes in let result = CG.of_bytes_exn result_bytes in let proof = CG.of_bytes_exn proof_bytes in match status with | x when x = 0 -> (result, proof) | x when x = 2 -> raise Utils.invalid_group_element | _ -> raise Utils.unknown_error let verify challenge difficulty result proof = let challenge_bytes = CG.to_bytes challenge in let result_bytes = CG.to_bytes result in let proof_bytes = CG.to_bytes proof in let status = Stubs.verify discriminant_bytes CG.discriminant_size challenge_bytes result_bytes proof_bytes difficulty in match status with | x when x = 0 -> false | x when x = 1 -> true | x when x = 2 -> raise Utils.invalid_group_element | _ -> raise Utils.unknown_error end
sectionYPositions = computeSectionYPositions($el), 10)"
x-init="setTimeout(() => sectionYPositions = computeSectionYPositions($el), 10)"
>