Documentation ¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
View Source
var ( ErrMalformedCar = errors.New("malformed CAR") ErrBadVersion = errors.New("bad CAR version") ErrBadRoots = errors.New("CAR root CID mismatch") ErrUnexpectedBlock = errors.New("unexpected block in CAR") ErrExtraneousBlock = errors.New("extraneous block in CAR") ErrMissingBlock = errors.New("missing block in CAR") )
Functions ¶
This section is empty.
Types ¶
type BlockReader ¶ added in v0.11.0
type Config ¶
type Config struct { Root cid.Cid // The single root we expect to appear in the CAR and that we use to run our traversal against AllowCARv2 bool // If true, allow CARv2 files to be received, otherwise strictly only allow CARv1 Selector datamodel.Node // The selector to execute, starting at the provided Root, to verify the contents of the CAR CheckRootsMismatch bool // Check if roots match expected behavior ExpectDuplicatesIn bool // Handles whether the incoming stream has duplicates WriteDuplicatesOut bool // Handles whether duplicates should be written a second time as blocks MaxBlocks uint64 // set a budget for the traversal }
func (Config) VerifyBlockStream ¶ added in v0.11.0
func (cfg Config) VerifyBlockStream(ctx context.Context, cbr BlockReader, lsys linking.LinkSystem) (uint64, uint64, error)
func (Config) VerifyCar ¶ added in v0.11.0
func (cfg Config) VerifyCar(ctx context.Context, rdr io.Reader, lsys linking.LinkSystem) (uint64, uint64, error)
Verify reads a CAR from the provided reader, verifies the contents are strictly what is specified by this Config and writes the blocks to the provided BlockWriteOpener. It returns the number of blocks and bytes written to the BlockWriteOpener.
Verification is performed according to the CAR construction rules contained within the Trustless, and Path Gateway specifications:
type NextBlockLinkSystem ¶ added in v0.14.0
type NextBlockLinkSystem struct {
Error error
}
func NewNextBlockLinkSystem ¶ added in v0.14.0
func NewNextBlockLinkSystem( ctx context.Context, cfg Config, cr *carReader, bt *writeTracker, lsys linking.LinkSystem, ) (*NextBlockLinkSystem, linking.LinkSystem)
Click to show internal directories.
Click to hide internal directories.