Skip to content

car-mirror: Edge cases of receiving blocks you already have possible #32

@matheus23

Description

@matheus23

Came up in a meeting with @expede: There does exist an edge case where CAR mirror will send blocks that the recipient already has, even outside the cold call.

Specifically, if the receiver has a disjoint graph root that it doesn't know is connected to the DAG they're requesting, then the batch from the sender may contain blocks from that previously disjoint graph root.

E.g. a simple (and admittedly weird) case where the receiver has every second block in a blockchain and is asking for the root.
The sender will respond with a certain depth of the blockchain. Every second of these blocks will be redundant.

So in some cases bitswap will actually be 'more precise'. But the same can be said of CAR mirror in the mode without a bloomfilter.


Mostly I filed this for @expede to go through the spec in case there's any mention of never sending a block the receiver already has.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions