From f2d2d9cfb2d1c6d5839ad44bf1c9418e08fcb2e8 Mon Sep 17 00:00:00 2001 From: Robert Raynor <35671663+mooselumph@users.noreply.github.com> Date: Mon, 12 Aug 2024 09:55:26 -0700 Subject: [PATCH] Check if blobs are expired before returning (#695) Co-authored-by: Robert Raynor --- disperser/apiserver/server.go | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/disperser/apiserver/server.go b/disperser/apiserver/server.go index eda055338..4dbf48de2 100644 --- a/disperser/apiserver/server.go +++ b/disperser/apiserver/server.go @@ -727,6 +727,12 @@ func (s *DispersalServer) RetrieveBlob(ctx context.Context, req *pb.RetrieveBlob return nil, api.NewInternalError("failed to get blob metadata, please retry") } + if blobMetadata.Expiry < uint64(time.Now().Unix()) { + s.metrics.HandleNotFoundRpcRequest("RetrieveBlob") + s.metrics.HandleNotFoundRequest("RetrieveBlob") + return nil, api.NewNotFoundError("no metadata found for the given batch header hash and blob index") + } + // Check throughout rate limit blobSize := encoding.GetBlobSize(blobMetadata.ConfirmationInfo.BlobCommitment.Length)