Simplify cid usage

This commit is contained in:
Arnaud 2025-01-31 09:54:48 +01:00
parent 9a4fc315db
commit 5c5bbd0d87
No known key found for this signature in database
GPG Key ID: 69D6CE281FCAE663
8 changed files with 15 additions and 22 deletions

View File

@ -495,16 +495,14 @@ proc onStore(
## store data in local storage ## store data in local storage
## ##
let cid = request.content.cid
logScope: logScope:
cid = request.content.cid cid = $cid.data.buffer
slotIdx = slotIdx slotIdx = slotIdx
trace "Received a request to store a slot" trace "Received a request to store a slot"
without cid =? Cid.init(request.content.cid.data.buffer).mapFailure, err:
trace "Unable to parse Cid", cid
return failure(err)
without manifest =? (await self.fetchManifest(cid)), err: without manifest =? (await self.fetchManifest(cid)), err:
trace "Unable to fetch manifest for cid", cid, err = err.msg trace "Unable to fetch manifest for cid", cid, err = err.msg
return failure(err) return failure(err)
@ -623,14 +621,9 @@ proc onProve(
failure "Prover not enabled" failure "Prover not enabled"
proc onExpiryUpdate( proc onExpiryUpdate(
self: CodexNodeRef, rootCid: seq[byte], expiry: SecondsSince1970 self: CodexNodeRef, rootCid: Cid, expiry: SecondsSince1970
): Future[?!void] {.async.} = ): Future[?!void] {.async.} =
without cid =? Cid.init(rootCid): return await self.updateExpiry(rootCid, expiry)
trace "Unable to parse Cid", cid
let error = newException(CodexError, "Unable to parse Cid")
return failure(error)
return await self.updateExpiry(cid, expiry)
proc onClear(self: CodexNodeRef, request: StorageRequest, slotIndex: UInt256) = proc onClear(self: CodexNodeRef, request: StorageRequest, slotIndex: UInt256) =
# TODO: remove data from local storage # TODO: remove data from local storage
@ -653,7 +646,7 @@ proc start*(self: CodexNodeRef) {.async.} =
self.onStore(request, slot, onBatch) self.onStore(request, slot, onBatch)
hostContracts.sales.onExpiryUpdate = proc( hostContracts.sales.onExpiryUpdate = proc(
rootCid: seq[byte], expiry: SecondsSince1970 rootCid: Cid, expiry: SecondsSince1970
): Future[?!void] = ): Future[?!void] =
self.onExpiryUpdate(rootCid, expiry) self.onExpiryUpdate(rootCid, expiry)

View File

@ -1,6 +1,7 @@
import pkg/questionable import pkg/questionable
import pkg/questionable/results import pkg/questionable/results
import pkg/upraises import pkg/upraises
import pkg/libp2p/cid
import ../market import ../market
import ../clock import ../clock
@ -30,7 +31,7 @@ type
OnProve* = proc(slot: Slot, challenge: ProofChallenge): Future[?!Groth16Proof] {. OnProve* = proc(slot: Slot, challenge: ProofChallenge): Future[?!Groth16Proof] {.
gcsafe, upraises: [] gcsafe, upraises: []
.} .}
OnExpiryUpdate* = proc(rootCid: seq[byte], expiry: SecondsSince1970): Future[?!void] {. OnExpiryUpdate* = proc(rootCid: Cid, expiry: SecondsSince1970): Future[?!void] {.
gcsafe, upraises: [] gcsafe, upraises: []
.} .}
OnClear* = proc(request: StorageRequest, slotIndex: UInt256) {.gcsafe, upraises: [].} OnClear* = proc(request: StorageRequest, slotIndex: UInt256) {.gcsafe, upraises: [].}

View File

@ -53,8 +53,7 @@ method run*(state: SaleFilled, machine: Machine): Future[?State] {.async.} =
raiseAssert "onExpiryUpdate callback not set" raiseAssert "onExpiryUpdate callback not set"
let requestEnd = await market.getRequestEnd(data.requestId) let requestEnd = await market.getRequestEnd(data.requestId)
if err =? if err =? (await onExpiryUpdate(request.content.cid, requestEnd)).errorOption:
(await onExpiryUpdate(request.content.cid.data.buffer, requestEnd)).errorOption:
return some State(SaleErrored(error: err)) return some State(SaleErrored(error: err))
when codex_enable_proof_failures: when codex_enable_proof_failures:

View File

@ -98,7 +98,7 @@ asyncchecksuite "Test Node - Host contracts":
expectedExpiry: SecondsSince1970 = clock.now + DefaultBlockTtl.seconds + 11123 expectedExpiry: SecondsSince1970 = clock.now + DefaultBlockTtl.seconds + 11123
expiryUpdateCallback = !sales.onExpiryUpdate expiryUpdateCallback = !sales.onExpiryUpdate
(await expiryUpdateCallback(manifestCid.data.buffer, expectedExpiry)).tryGet() (await expiryUpdateCallback(manifestCid, expectedExpiry)).tryGet()
for index in 0 ..< manifest.blocksCount: for index in 0 ..< manifest.blocksCount:
let let

View File

@ -36,7 +36,7 @@ checksuite "sales state 'filled'":
market.requestEnds[request.id] = 321 market.requestEnds[request.id] = 321
onExpiryUpdatePassedExpiry = -1 onExpiryUpdatePassedExpiry = -1
let onExpiryUpdate = proc( let onExpiryUpdate = proc(
rootCid: seq[byte], expiry: SecondsSince1970 rootCid: Cid, expiry: SecondsSince1970
): Future[?!void] {.async.} = ): Future[?!void] {.async.} =
onExpiryUpdatePassedExpiry = expiry onExpiryUpdatePassedExpiry = expiry
return success() return success()

View File

@ -66,7 +66,7 @@ asyncchecksuite "Sales - start":
return success() return success()
sales.onExpiryUpdate = proc( sales.onExpiryUpdate = proc(
rootCid: seq[byte], expiry: SecondsSince1970 rootCid: Cid, expiry: SecondsSince1970
): Future[?!void] {.async.} = ): Future[?!void] {.async.} =
return success() return success()
@ -177,7 +177,7 @@ asyncchecksuite "Sales":
return success() return success()
sales.onExpiryUpdate = proc( sales.onExpiryUpdate = proc(
rootCid: seq[byte], expiry: SecondsSince1970 rootCid: Cid, expiry: SecondsSince1970
): Future[?!void] {.async.} = ): Future[?!void] {.async.} =
return success() return success()

View File

@ -50,7 +50,7 @@ marketplacesuite "Bug #821 - node crashes during erasure coding":
check eventually(requestId.isSome, timeout = expiry.int * 1000) check eventually(requestId.isSome, timeout = expiry.int * 1000)
let request = await marketplace.getRequest(requestId.get) let request = await marketplace.getRequest(requestId.get)
let cidFromRequest = Cid.init(request.content.cid).get() let cidFromRequest = request.content.cid
let downloaded = await clientApi.downloadBytes(cidFromRequest, local = true) let downloaded = await clientApi.downloadBytes(cidFromRequest, local = true)
check downloaded.isOk check downloaded.isOk
check downloaded.get.toHex == data.toHex check downloaded.get.toHex == data.toHex

View File

@ -48,7 +48,7 @@ twonodessuite "Purchasing":
let request = client1.getPurchase(id).get.request.get let request = client1.getPurchase(id).get.request.get
check request.content.cid.len > 0 check request.content.cid.data.buffer.len > 0
check request.ask.duration == 100.u256 check request.ask.duration == 100.u256
check request.ask.reward == 2.u256 check request.ask.reward == 2.u256
check request.ask.proofProbability == 3.u256 check request.ask.proofProbability == 3.u256