remarema / ideas

Ideen für unser Projekt
0 stars 0 forks source link

open-source library for P2P based file sharing #1

Open rebeccavl1 opened 9 years ago

rebeccavl1 commented 9 years ago

Hive2Hive is an open-source library, written in Java, for secure, distributed, P2P-based file synchronization and sharing. It focuses on maximum privacy and security of both users and data. It is built on top of TomP2P which is an advanced, high-performance DHT for multi-key-value pairs. The Hive2Hive project is licensed under the MIT License and any contribution is welcome.

Link: http://hive2hive.com/ https://github.com/Hive2Hive/Hive2Hive

mrodler commented 9 years ago

Some very interesting libraries. I've read a little time in their documentations and I think it possible to use hive2hive as a base for our product. It seems that the main contributors are located at zurich. maybe we can ask them for a little help. Like Is it possible to realize file distribution with given constraints?

So, I think this could really save us some time. Otherwise we would need to build a small sample app, to check if the hive2hive is the right tool for us.

Great Work!

Cynthion commented 9 years ago

Hi there, I'm from the Hive2Hive team and just found your project.

main contributors are located at zurich

Yes, we all come from Zurich and also speak German :-)

was genau verstehst du unter "with given constraints"?

That's the question I asked Rebecca in the email she wrote... We are not sure either what you mean by it.

Otherwise we would need to build a small sample app, to check if the hive2hive is the right tool for us.

There are some projects already using H2H. You might want to check out "Peerbox", which is developed by some colleagues of ours, also here on GitHub: https://github.com/Hive2Hive/PeerBox

There is also our console-based "app", which is included in the core project.

Best regards, Chris

mrodler commented 9 years ago

Hi,

thank you chris for your support.

Our goal is to distribute files to all workstations of our tenants. Each tenant is a unique company, with a lot of branches. The constraints are, that all these workstations build a hierarchy. Every node of this hierarchy represents a network with workstations. Each Leaf must only use the path to the root of that hierarchy, but the may not use siblings. I'think this is possible, because we can control the list of available nodes for each workstation.

Another constraint is, that we have to reduce network traffic. So, a workstation should try first, if the required file is available from the peers on the same network (lan). And if a file is not available, only one workstation should request the file from the parent network-node. (and it's totally random which workstations are turned off).

Regards, Mario

Cynthion commented 9 years ago

No problem, we are glad you like our project.

Let me recap and see if I understood correctly: You basically have a company structure that is very hierarchic. Each company has an own file-sync system for internal uses. Now, if a higher company creates a file, it should be distributed to all lower companies. In order to avoid multiple file movements from a company to different workstations in another company, just one workstation gets the file and distributes it to the others in the LAN.

If this is correct, then there might be some approach that can work:

  1. Each company shall have an own network (DHT). There shall be 1 node (peer) per DHT, which is also contained in the network (DHT) of the parent company. This means, that there are two peers on the same machine. (This can be achieved by using the H2H API. Handle the hierarchy structure in your application.)
  2. Each company is a "user". This user/company works with shared folders. All sub-companies shall have access to these folders. (This means, that each company has as many folders, as its depth in the hierarchy.)

Cheers, Chris

PS: Make sure to take a look to our GitHub Wiki, where we tried to explain the whole architecture and logic of H2H. (https://github.com/Hive2Hive/Hive2Hive/wiki) You're also welcome to star our project and spread the word, if you like it ;-) Thanks!