try queue setup

This commit is contained in:
Jaremy Creechley 2024-05-20 17:31:34 +03:00
parent 98abf47a23
commit 13c59ca575
No known key found for this signature in database
GPG Key ID: 4E66FB67B21D3300
2 changed files with 12 additions and 19 deletions

View File

@ -292,9 +292,10 @@ proc new*(
$config.circomZkey
else: ""
let params = CircomCompatParams.init($config.circomR1cs, $config.circomWasm, zkey)
some Prover.new(
store,
AsyncCircomCompat.init($config.circomR1cs, $config.circomWasm, zkey),
AsyncCircomCompat.init(params),
config.numProofSamples)
else:
none Prover

View File

@ -22,25 +22,16 @@ proc proveTask[H](
data: ProofInputs[H],
results: SignalQueuePtr[Result[CircomProof, string]],
) =
try:
if circomBackend.isNone:
circomBackend = some CircomCompat.init(params)
else:
assert circomBackend.get().params == params
var val: Result[CircomProof, string]
let proof = circomBackend.get().prove(data)
var val: Result[CircomProof, string]
if proof.isOk():
val.ok(proof.get())
else:
val.err(proof.error().msg)
let proof = circomBackend.get().prove(data)
if proof.isOk():
val.ok(proof.get())
else:
val.err(proof.error().msg)
if (let sent = results.send(val); sent.isErr()):
error "Error sending proof results", msg = sent.error().msg
except CatchableError as exception:
var err = Result[CircomProof, string].err(exception.msg)
if (let res = results.send(err); res.isErr()):
error "Error sending proof results", msg = res.error().msg
if (let sent = results.send(val); sent.isErr()):
error "Error sending proof results", msg = sent.error().msg
proc prove*[H](
self: AsyncCircomCompat, input: ProofInputs[H]
@ -77,4 +68,5 @@ proc verify*[H](
proc init*(_: type AsyncCircomCompat, params: CircomCompatParams): AsyncCircomCompat =
## Create a new async circom
##
AsyncCircomCompat(params)
let circom = CircomCompat.init(params)
AsyncCircomCompat(circom)