From 29257a57f944959c67d43b4f7d449e0c500f367a Mon Sep 17 00:00:00 2001 From: Eric <5089238+emizzle@users.noreply.github.com> Date: Wed, 25 Jun 2025 15:47:02 +1000 Subject: [PATCH] temp log proof inputs for debug log proof inputs so we can find out which proof inputs are failing proof generation --- codex/slots/proofs/prover.nim | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/codex/slots/proofs/prover.nim b/codex/slots/proofs/prover.nim index b49ab021..201e7de3 100644 --- a/codex/slots/proofs/prover.nim +++ b/codex/slots/proofs/prover.nim @@ -30,6 +30,10 @@ import ../sampler import ./backends import ../types +import pkg/constantine/math/arithmetic +import pkg/constantine/math/io/io_bigints +import pkg/constantine/math/io/io_fields + export backends logScope: @@ -44,6 +48,25 @@ type Prover* = ref object nSamples: int tp: Taskpool +func toJsonDecimal*(big: BigInt[254]): string = + let s = big.toDecimal.strip(leading = true, trailing = false, chars = {'0'}) + if s.len == 0: "0" else: s + +func toJson*(input: ProofInputs[Poseidon2Hash]): JsonNode = + var input = input + + %*{ + "dataSetRoot": input.datasetRoot.toBig.toJsonDecimal, + "entropy": input.entropy.toBig.toJsonDecimal, + "nCellsPerSlot": input.nCellsPerSlot, + "nSlotsPerDataSet": input.nSlotsPerDataSet, + "slotIndex": input.slotIndex, + "slotRoot": input.slotRoot.toDecimal, + "slotProof": input.slotProof.mapIt(it.toBig.toJsonDecimal), + "cellData": input.samples.mapIt(it.cellData.mapIt(it.toBig.toJsonDecimal)), + "merklePaths": input.samples.mapIt(it.merklePaths.mapIt(it.toBig.toJsonDecimal)), + } + proc prove*[SomeSampler]( self: Prover, sampler: SomeSampler, @@ -73,6 +96,7 @@ proc prove*[SomeSampler]( (?await self.groth16Backend.verify(proof)).some else: bool.none + trace "Proof generated with input", input = proofInput.toJson return success (proof.toGroth16Proof, verified) of ProverBackendCmd.circomcompat: let