I’m developing a simple peer-to-peer app in .Net which should enable users to share specific content (text and picture files). Inappropriate content can “relatively” easily be identified / controlled in a centralized environment. But what about a peer-to-peer network, what are the best methods to protect a decentralized system from unwanted (illegal) content?

At the moment I only see the following two methods:

  1. A protocol (a set of rules) defines what kind of data (e.g. only .txt and jpg-files, not bigger than 20KB etc.) can be shared over the p2p-network and all clients (peers) must implement this protocol. If a peer doesn’t, it gets blocked by other peers. Pro: easy to implement. Con: It’s not possible to define the perfect protocol (I think eMail-Spam filters have the same problem)

  2. Some kind of rating/reputation system must be implemented (similar to stackoverflow), so “bad guys” and inappropriate content can be identified / blocked by other users. Pro: Would be very accurate. Con: Would be slow and in my view technically very hard to implement.

Are there other/better solutions?

  • 3
    How do you define "inappropriate"? Naughty jokeS? Extreme porn? Things like the Anarchist's Cookbook? Or gasp copyrighted media? Is it stuff that could be procedurally identified (search for keywords, etc) or stuff that is subjective and needs a human with a good sense of "appropriateness" to decide on? Nov 11, 2011 at 21:14
  • 1
    Ok, so if you got a block of text. How could you know if it's copyrighted material? Are you just taking text as a stream of ASCII characters, or in a special file with markup and header data to indicate copyright? The second issue (tagging Anarchist's Cookbook incorrectly) seems to require human intervention. Nov 11, 2011 at 21:39
  • 2
    Almost all content is copyrighted. It may be legally posted by the copyright holder or somebody with a license, so it's not a matter of what it is so much as who posted it. Unless you can identify what the text or picture is, and figure out the license, you need human intervention. Nov 11, 2011 at 21:59
  • 1
    @Mike: So to identify a simple picture as being copyrighted, you'd have to match it to a database of other copyrighted images. Simiarly, with simple text. I hope you have a lot of storage space for this database. ;) Nov 11, 2011 at 22:10
  • 2
    "The Net interprets censorship as damage and routes around it." -- John Gilmore. You can attempt to censor content, but the better (bigger and more efficient) your p2p network is, the less the censorship will be effective.
    – Zach
    Nov 11, 2011 at 22:34

2 Answers 2


peer-to-peer app

Apps are legal in the same sense that browsers are legal. Legal issues relate to trackers and distributing torrents. If you're only developing the app, not the tracker then you shouldn't be too concerned.

only .txt and jpg-files, not bigger than 20KB etc.

Why do you need p2p for 20KB files? If I need to upload an image then I use a site like imgur. If I need to upload a text file then I use something like pastebin. I don't see any benefit to this when .torrent files their self can be 20KB.

Anyway, I think the best solution is to have moderators and prohibit illegal file sharing. Pirates (and friends) will take note and move to a different site if they see their uploads being removed.

  • Thanks for the answer. Similar to Bitcoin, there are some reasons why my app can't have a centralized architecture. The "problem" in my p2p-app is, that at the moment every peer acts like a router: it automatically receives and forwards data.
    – Mike
    Nov 11, 2011 at 21:42

check out freenet. They deal with it another way: everything is encrypted, so you cannot know what's on you machine, even if you put it there yourself, since it may be stored elsewhere.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.