diff --git a/dagger/storageproofs/bls.nim b/dagger/storageproofs/bls.nim index 71c312ea..21bff14e 100644 --- a/dagger/storageproofs/bls.nim +++ b/dagger/storageproofs/bls.nim @@ -80,9 +80,7 @@ import blscurve import blscurve/blst/blst_abi import ../rng -const sectorsperblock = 1024.int64 const bytespersector = 31 # r is 255 bits long -const querylen = 22 type ZChar = array[bytespersector, byte] @@ -214,9 +212,8 @@ proc generateAuthenticator(i: int64, s: int64, t: TauZero, ubase: openArray[blst # doAssert(a.blst_p1_is_equal(b).bool) return b -proc st*(ssk: SecretKey, filename: string): (Tau, seq[blst_p1]) = +proc setup*(ssk: SecretKey, s:int64, filename: string): (Tau, seq[blst_p1]) = let file = open(filename) - let s = sectorsperblock let n = split(file, s) var t = TauZero(n: n) @@ -249,7 +246,7 @@ type QElement = object proc generateQuery*( tau: Tau, spk: PublicKey, - l: int = querylen # query elements + l: int # query elements ): seq[QElement] = # verify signature on Tau @@ -261,9 +258,8 @@ proc generateQuery*( q.V = rndScalar() #TODO: fix range result.add(q) -proc generateProof*(q: openArray[QElement], authenticators: openArray[blst_p1], spk: PublicKey, filename: string): (seq[blst_scalar], blst_p1) = +proc generateProof*(q: openArray[QElement], authenticators: openArray[blst_p1], spk: PublicKey, s: int64, filename: string): (seq[blst_scalar], blst_p1) = let file = open(filename) - let s = sectorsperblock var mu: seq[blst_scalar] for j in 0 ..< s : diff --git a/dagger/storageproofs/testbls.nim b/dagger/storageproofs/testbls.nim index 3ac2792a..9f779303 100644 --- a/dagger/storageproofs/testbls.nim +++ b/dagger/storageproofs/testbls.nim @@ -11,20 +11,23 @@ import bls import benchmark import strutils +const sectorsperblock = 1024.int64 +const querylen = 22 + proc testbls() : bool = benchmark "Key generation": let (spk, ssk) = bls.keygen() benchmark "Auth generation": - let (tau, authenticators) = bls.st(ssk, "example.txt") + let (tau, authenticators) = bls.setup(ssk, sectorsperblock, "example.txt") #echo "Auth: ", authenticators benchmark "Generating challenge...": - let q = bls.generateQuery(tau, spk) + let q = bls.generateQuery(tau, spk, querylen) #echo "Generated!" #, " q:", q benchmark "Issuing proof...": - let (mu, sigma) = bls.generateProof(q, authenticators, spk, "example.txt") + let (mu, sigma) = bls.generateProof(q, authenticators, spk, sectorsperblock, "example.txt") #echo "Issued!" #, " mu:", mu, " sigma:", sigma benchmark "Verifying proof...":