6
votes

I am developing a java application that will work peer-to-peer. At any given time, there will be over 5000 clients around the world online. Each of these clients will create small files over time. I would like these files to be distributed amongst all the clients and stored, so that anyone can connect and download the filesdump.

Is there any library that would help with that?

1
Do you need for there to be conflict resolution between nodes? Should nodes auto-discover each other, or would you be okay with each having to peer manually?halfer
You could check out the Pastry library freepastry.org But I'm will Bill K below. Think about using a client/server system. Any server solution could easily scale to 5K clients.selbie
I need to support 200 million client.Anon21
Got the same question here. I wanna make a fan-made tool for a game which has millions of users (around 10million). Looking for a free way to broadcast data from each user to users.thirdy

1 Answers

4
votes

(I'm rephrasing this to make it a little more serious since it's still the only answer)

Try finding a Java bit-torrent library, I just googled and there were a bunch of them--I don't want to list them here because I don't have any personal experience with any of them.

I can tell you that the way it normally operates, bit torrents still require some centralized coordination (The tracker). I'm quite sure that Vues works in a "Trackerless" purely p2p mode so I would look for that specifically when evaluating the libraries.

If this isn't some huge widely-distributed and heavily financed app you are creating I highly recommend looking into some other kind of shared file system like dropbox or even svn, they are not p2p but they are known to work reliably and at least dropbox can work completely in the background, unattended and ignored on any platforms for years without trouble.