moving prover around
This commit is contained in:
parent
18907e6801
commit
6c629cfe61
|
@ -1,57 +0,0 @@
|
||||||
## Nim-Codex
|
|
||||||
## Copyright (c) 2022 Status Research & Development GmbH
|
|
||||||
## Licensed under either of
|
|
||||||
## * Apache License, version 2.0, ([LICENSE-APACHE](LICENSE-APACHE))
|
|
||||||
## * MIT license ([LICENSE-MIT](LICENSE-MIT))
|
|
||||||
## at your option.
|
|
||||||
## This file may not be copied, modified, or distributed except according to
|
|
||||||
## those terms.
|
|
||||||
|
|
||||||
{.push raises: [].}
|
|
||||||
|
|
||||||
import ../stores
|
|
||||||
|
|
||||||
type
|
|
||||||
ProverBackend* = ref object of RootObj
|
|
||||||
maxDepth : int ## maximum depth of the slot Merkle tree (so max `2^maxDepth` cells in a slot)
|
|
||||||
maxLog2NSlots : int ## maximum depth of the dataset-level Merkle tree (so max 2^8 slots per dataset)
|
|
||||||
blockTreeDepth : int ## depth of the "network block tree" (= log2(64k / 2k))
|
|
||||||
nFieldElemsPerCell : int ## number of field elements per cell
|
|
||||||
nSamples: : int ## number of samples
|
|
||||||
|
|
||||||
ProofBackend* = ref object of Backend
|
|
||||||
VerifyBackend* = ref object of Backend
|
|
||||||
|
|
||||||
method release*(self: ProverBackend) {.base.} =
|
|
||||||
## release the backend
|
|
||||||
##
|
|
||||||
|
|
||||||
raiseAssert("not implemented!")
|
|
||||||
|
|
||||||
method prove*(
|
|
||||||
self: ProofBackend,
|
|
||||||
entropy: seq[byte], ## public input
|
|
||||||
dataSetRoot: seq[byte]; ## public input
|
|
||||||
slotIndex: int, ## must be public, otherwise we could prove a different slot
|
|
||||||
slotRoot: seq[byte] ## can be private input
|
|
||||||
nCellsPerSlot: int, ## can be private input (Merkle tree is safe)
|
|
||||||
nSlotsPerDataSet: int, ## can be private input (Merkle tree is safe)
|
|
||||||
slotProof: seq[byte], ## path from the slot root the the dataset root (private input)
|
|
||||||
cellData: seq[seq[byte]], ## data for the cells (private input)
|
|
||||||
merklePaths[nSamples][maxDepth]) ## Merkle paths for the cells (private input)
|
|
||||||
: Future[?!seq[byte]] {.async.} =
|
|
||||||
## encode buffers using a backend
|
|
||||||
##
|
|
||||||
|
|
||||||
raiseAssert("not implemented!")
|
|
||||||
|
|
||||||
method verify*(
|
|
||||||
self: VerifyBackend,
|
|
||||||
buffers,
|
|
||||||
parity,
|
|
||||||
recovered: var openArray[seq[byte]]
|
|
||||||
): Result[void, cstring] {.base.} =
|
|
||||||
## decode buffers using a backend
|
|
||||||
##
|
|
||||||
|
|
||||||
raiseAssert("not implemented!")
|
|
|
@ -1,45 +0,0 @@
|
||||||
## Nim-Codex
|
|
||||||
## Copyright (c) 2022 Status Research & Development GmbH
|
|
||||||
## Licensed under either of
|
|
||||||
## * Apache License, version 2.0, ([LICENSE-APACHE](LICENSE-APACHE))
|
|
||||||
## * MIT license ([LICENSE-MIT](LICENSE-MIT))
|
|
||||||
## at your option.
|
|
||||||
## This file may not be copied, modified, or distributed except according to
|
|
||||||
## those terms.
|
|
||||||
|
|
||||||
{.push raises: [].}
|
|
||||||
|
|
||||||
import ../stores
|
|
||||||
|
|
||||||
type
|
|
||||||
ProverBackend* = ref object of RootObj
|
|
||||||
|
|
||||||
ProofBackend* = ref object of Backend
|
|
||||||
VerifyBackend* = ref object of Backend
|
|
||||||
|
|
||||||
method release*(self: ProverBackend) {.base.} =
|
|
||||||
## release the backend
|
|
||||||
##
|
|
||||||
|
|
||||||
raiseAssert("not implemented!")
|
|
||||||
|
|
||||||
method prove*(
|
|
||||||
self: ProofBackend,
|
|
||||||
indicies,
|
|
||||||
payload: var openArray[seq[byte]]
|
|
||||||
): Result[void, cstring] {.base.} =
|
|
||||||
## encode buffers using a backend
|
|
||||||
##
|
|
||||||
|
|
||||||
raiseAssert("not implemented!")
|
|
||||||
|
|
||||||
method verify*(
|
|
||||||
self: VerifyBackend,
|
|
||||||
buffers,
|
|
||||||
parity,
|
|
||||||
recovered: var openArray[seq[byte]]
|
|
||||||
): Result[void, cstring] {.base.} =
|
|
||||||
## decode buffers using a backend
|
|
||||||
##
|
|
||||||
|
|
||||||
raiseAssert("not implemented!")
|
|
|
@ -1,15 +0,0 @@
|
||||||
## Nim-Codex
|
|
||||||
## Copyright (c) 2024 Status Research & Development GmbH
|
|
||||||
## Licensed under either of
|
|
||||||
## * Apache License, version 2.0, ([LICENSE-APACHE](LICENSE-APACHE))
|
|
||||||
## * MIT license ([LICENSE-MIT](LICENSE-MIT))
|
|
||||||
## at your option.
|
|
||||||
## This file may not be copied, modified, or distributed except according to
|
|
||||||
## those terms.
|
|
||||||
|
|
||||||
type
|
|
||||||
Prover* = ref object RootObj
|
|
||||||
|
|
||||||
proc prove()
|
|
||||||
|
|
||||||
proc verify()
|
|
|
@ -0,0 +1,44 @@
|
||||||
|
## Nim-Codex
|
||||||
|
## Copyright (c) 2022 Status Research & Development GmbH
|
||||||
|
## Licensed under either of
|
||||||
|
## * Apache License, version 2.0, ([LICENSE-APACHE](LICENSE-APACHE))
|
||||||
|
## * MIT license ([LICENSE-MIT](LICENSE-MIT))
|
||||||
|
## at your option.
|
||||||
|
## This file may not be copied, modified, or distributed except according to
|
||||||
|
## those terms.
|
||||||
|
|
||||||
|
{.push raises: [].}
|
||||||
|
|
||||||
|
import pkg/chronos
|
||||||
|
import pkg/questionable/results
|
||||||
|
|
||||||
|
import ../../stores
|
||||||
|
import ../types
|
||||||
|
|
||||||
|
type
|
||||||
|
ProverBackend*[H, P] = ref object of RootObj
|
||||||
|
|
||||||
|
ProofBackend*[H, P] = ref object of ProverBackend[H, P]
|
||||||
|
VerifyBackend*[H, P] = ref object of ProverBackend[H, P]
|
||||||
|
|
||||||
|
method release*[H, P](self: ProverBackend[H, P]) {.base.} =
|
||||||
|
## release the backend
|
||||||
|
##
|
||||||
|
|
||||||
|
raiseAssert("not implemented!")
|
||||||
|
|
||||||
|
method prove*[H, P](
|
||||||
|
self: ProofBackend[H, P],
|
||||||
|
input: ProofInput[H, P]): Future[?!seq[byte]] {.base, async.} =
|
||||||
|
## prove the input using a backend
|
||||||
|
##
|
||||||
|
|
||||||
|
raiseAssert("not implemented!")
|
||||||
|
|
||||||
|
method verify*[H, P](
|
||||||
|
self: VerifyBackend[H, P],
|
||||||
|
proof: sink seq[seq[byte]]): Future[?!bool] {.base, async.} =
|
||||||
|
## verify the proof using a backend
|
||||||
|
##
|
||||||
|
|
||||||
|
raiseAssert("not implemented!")
|
Loading…
Reference in New Issue