How to find out if content is pinned by a peer

Is it possible to find out if certain data is actually pinned by another peer?

example: If I want to know what peers are currently hosting a specific piece of content i can do
ipfs dht findprovs $ContentHash

but this does not tell me which of the peers have this content pinned and which do not. is this possible to find out?

1 Like

No. And even if there was there’s nothing to tell if another peer is lying about having something pinned or not.

2 Likes

Does this mean it is impossible for anyone to know what peers are pinning certain data?

In the case of nodes pinning banned/illegal/copyrighted content, does this mean there is not way for authorities to determine which nodes are hosting the content?

As far as I know, yes. But pinning is not a prerequisite for providing a given piece of content.

Government censors, authorities, copyright trolls, etc can currently get an idea of which nodes are hosting or requesting content the same way anyone else can.

  1. See who is advertising that they can provide a piece of content
  2. Try to retrieve the content and see who sends it to you
  3. Sniff DHT traffic to try to determine who is requesting content
1 Like

@leerspace

Are there any separate tools through which we can sniff DHT traffic?
Is it possible to that Node B (peer ) is able to know that Node A(Self) is requesting some content over the network.

I’m not sure what all is available. I know you can see the flurry of activity (among other things) from your node’s perspective by running the daemon with the --debug flag.

Given that Node A necessarily needs to ask other peers it’s connected to if they have content it wants, I think there’s a chance that Node B would know Node A is looking for something – especially if they’re directly connected.

Theoretically, it would be possible to build a service on top of IPFS to coordinate pinning, right?

A use case would be audio reading services sharing audio content, but also working together and with external “storage donors” (i.e., individuals or organizations who volunteer to pin a subset of the audio content) to reduce storage costs, add redundancy, etc. Obviously, volunteers can quit any time they please, so there should be a safeguard to re-pin the abandoned content by the reading services if no one else pins it. (This is a very naive description, but you get the gist.)

Collaborative IPFS clusters are probably closest to the above idea, but, as far as I can tell, participants have to pin everything (according to what I figured from reading how to host one). The IPFS pinning service API page also states that it “does not support streaming” (but it is highly probable that “streaming” means something else in that context than what I attribute to it).

I think that IPFS Cluster doesn’t require every nod eto store everything.