Are direct/recursive/indirect pins treated differently?

When I do a pin ls on my server, each CID is labelled with one of direct/recursive/indirect. Since the server makes the effort to memorize the difference, I suspect they are in some circumstances treated differently. But I couldn’t find any documentation on this. Does anyone here know?

The reason I ask is that I find recursive pinning unsuitable for my use case, and therefore I traverse my data structures myself for pinning each piece of the puzzle. And I am wondering if I am missing out on something because of this.

There’s some documentation on the different kinds of pins here:

There are three types of pins in the ipfs world; direct pins, which pin just a single block, and no others in relation to it. recursive pins, which pin a given block and all of its children, and indirect pins, which are the result of a given blocks parent being pinned recursively.

Thanks for the pointer! This example suggests that the main point of tracking how blocks were pinned is to ensure consistency when unpinning and removing. That makes sense.

1 Like