From 3b83506a2ea53935eb73817d7a62766c28a69f4c Mon Sep 17 00:00:00 2001 From: Henrique Dias Date: Thu, 3 Aug 2023 11:34:08 +0200 Subject: [PATCH] make empty root a variable --- gateway/blocks_backend.go | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/gateway/blocks_backend.go b/gateway/blocks_backend.go index 0a897d7a0..f3e93162d 100644 --- a/gateway/blocks_backend.go +++ b/gateway/blocks_backend.go @@ -283,6 +283,11 @@ func (bb *BlocksBackend) Head(ctx context.Context, path ImmutablePath) (ContentP return ContentPathMetadata{}, nil, fmt.Errorf("unsupported UnixFS file type") } +// emptyRoot is a CAR root with the empty identity CID. CAR files are recommended +// to always include a CID in their root, even if it's just the empty CID. +// https://ipld.io/specs/transport/car/carv1/#number-of-roots +var emptyRoot = []cid.Cid{cid.MustParse("bafkqaaa")} + func (bb *BlocksBackend) GetCAR(ctx context.Context, p ImmutablePath, params CarParams) (ContentPathMetadata, io.ReadCloser, error) { pathMetadata, err := bb.ResolvePath(ctx, p) if err != nil { @@ -292,7 +297,7 @@ func (bb *BlocksBackend) GetCAR(ctx context.Context, p ImmutablePath, params Car } var buf bytes.Buffer - cw, err := storage.NewWritable(&buf, []cid.Cid{cid.MustParse("bafkqaaa")}, car.WriteAsCarV1(true)) + cw, err := storage.NewWritable(&buf, emptyRoot, car.WriteAsCarV1(true)) if err != nil { return ContentPathMetadata{}, nil, err }