Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

I’m developing a simple peer-to-peer app in .Net which should enable users to share specific content (text and picture files). As I've learned with my last question, 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? Any answer or comment is highly appreciated.

share|improve this question
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? –  FrustratedWithFormsDesigner Nov 11 '11 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. –  FrustratedWithFormsDesigner Nov 11 '11 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. –  David Thornley Nov 11 '11 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. ;) –  FrustratedWithFormsDesigner Nov 11 '11 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 '11 at 22:34

2 Answers 2

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.

share|improve this answer
    
Interesting! Thanks for your answer :-) –  Mike Nov 11 '11 at 23:40

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.

share|improve this answer
    
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 '11 at 21:42

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

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