pass number of samples to prover

This commit is contained in:
Dmitriy Ryajov 2024-02-01 18:57:41 -06:00
parent 697b69e349
commit ff59c45a51
No known key found for this signature in database
GPG Key ID: DA8C680CE7C657A4
1 changed files with 9 additions and 5 deletions

View File

@ -20,6 +20,7 @@ import ../../manifest
import ../../merkletree import ../../merkletree
import ../../stores import ../../stores
import ../../market import ../../market
import ../../utils/poseidon2digest
import ../builder import ../builder
import ../sampler import ../sampler
@ -35,6 +36,8 @@ type
AnyKeys* = CircomKey AnyKeys* = CircomKey
AnyHash* = Poseidon2Hash AnyHash* = Poseidon2Hash
AnyBackend* = CircomCompat AnyBackend* = CircomCompat
AnyBuilder* = Poseidon2Builder
AnySampler* = Poseidon2Sampler
Prover* = ref object of RootObj Prover* = ref object of RootObj
backend: AnyBackend backend: AnyBackend
@ -44,7 +47,8 @@ proc prove*(
self: Prover, self: Prover,
slotIdx: int, slotIdx: int,
manifest: Manifest, manifest: Manifest,
challenge: ProofChallenge): Future[?!AnyProof] {.async.} = challenge: ProofChallenge,
nSamples = DefaultSamplesNum): Future[?!AnyProof] {.async.} =
## Prove a statement using backend. ## Prove a statement using backend.
## Returns a future that resolves to a proof. ## Returns a future that resolves to a proof.
@ -55,15 +59,15 @@ proc prove*(
trace "Received proof challenge" trace "Received proof challenge"
without builder =? Poseidon2Builder.new(self.store, manifest), err: without builder =? AnyBuilder.new(self.store, manifest), err:
error "Unable to create slots builder", err = err.msg error "Unable to create slots builder", err = err.msg
return failure(err) return failure(err)
without sampler =? Poseidon2Sampler.new(slotIdx, self.store, builder), err: without sampler =? AnySampler.new(slotIdx, self.store, builder), err:
error "Unable to create data sampler", err = err.msg error "Unable to create data sampler", err = err.msg
return failure(err) return failure(err)
without proofInput =? await sampler.getProofInput(challenge, nSamples = 3), err: without proofInput =? await sampler.getProofInput(challenge, nSamples), err:
error "Unable to get proof input for slot", err = err.msg error "Unable to get proof input for slot", err = err.msg
return failure(err) return failure(err)
@ -82,7 +86,7 @@ proc verify*(
## Prove a statement using backend. ## Prove a statement using backend.
## Returns a future that resolves to a proof. ## Returns a future that resolves to a proof.
discard self.backend.verify(proof, inputs, vpk) self.backend.verify(proof, inputs, vpk)
proc new*( proc new*(
_: type Prover, _: type Prover,