A few questions about Tribler and Dispersy

  • Is there anything that would restrict Tribler or Dispersy from working over a non-IP network? At the moment I’m particularly interested in the possibility of running over non-6LoWPAN 802.15.4 links, particularly in a disconnected/store-and-forward topology. In a VANET deployment I can see this eliminating the overhead of IPv6/6LoWPAN as well as potentially requiring less time to construct/destroy the connections at higher protocol layers.

  • What, if any, simulation framework has been used in the research and development of Tribler and Dispersy? Of course nothing can measure up to a real-world network deployment but I assume that people still utilize NS-2, OMNET++, OPNET, or similar has been employed.

  • Why was PPSP removed? Was PPSP found to be insecure, inefficient, unadopted, etc…?

  • Will data only available as long as a user of the network is seeding it? How is data lifetime handled?

  • Has any research been done that would enable anonymous content addressable persistent storage on top of a Dispersy/Tribler network? I’m thinking about systems similar to Freenet, GNUnet, Camlistore, or Tahoe-LAFS which allow for data to persist even once the original host is no longer online or sharing the original data.

  • Is there a list of open research topics related to the project available anywhere?

  • Similar to the above question, is there a list of ongoing research projects related to Tribler, Dispersy, etcetera ?

  • Does Tribler use the BitTorrent protocol in an unmodified way or has it been enhanced or otherwise modified?

  • Are this forum and GitHub the primary (or only) venus used for development discussion?

I forgot one question:

  • What research has been done relating to mobile networks such as, but not limited to VANETs, to allow for communication with nodes that fall offline for a period of time but eventually reconnect? While ancient, the store and forward nature of protocols such as UUCP and NNTP do posses this interesting capability which is often overlooked in today’s world where universal and uninterrupted connections tend to be the norm.

I guess it could be done, dispersy uses bloom filters to know which messages the other peers have to avoid sending unnecessary messages around. If you managed to get this filters from the target peers, you could bundle all the messages that are interesting and then feed them to the target peer in any way you like.

There was some work done in the bundling front, a fast bootstrap system that would transfer bundled messages in big files through a faster protocol like PPSP when an empty peer joins the swarm and then it would collect the missing messages as usual. But that got abandoned.

For experiments we usually create our own dispersy swarms on the DAS clusters with Gumby.

We simply lacked maintainers, we used a modified version that allowed us to multiplex the PSPP socket for different protocols, but it was unstable and there was no one left to fix it up. The reference implementation is still maintained by Riccardo Petrocco but it’s not being updated that often anymore.

As long as you can find a peer that has the data you are interested in, that data will be available.
Re lifetime: That depends on how each community is implemented. It can be set up to keep all history, only a certain amount of messages, etc…

The only difference between the originator of a message and the rest is that it holds the private key used to sign that message. Once that message is out, it keeps propagating across all the peers interested in that particular swarm and also some other random peers. What can happen is that the owner of a given closed community disappears, which means that nobody else in that community has permission to publish messages in it so no more content will appear on it. But as long as there’s peers on that particular swarm, the already existing content will be available.

@root maybe you can help with that?

We use vanilla libtorrent but for the experimental anontunnel downloads we configure so it’s traffic goes trough a SOCKS5 proxy that will forward the data through the encrypted tunnels.

There’s also the IRC channel at freenode, but there is not a lot of movement there really. It’s mostly github for develoment and the forums for more general communication with our users.

In general Dispersy should work decently in this situations it will sync messages while there’s connectivity. Maybe some optimizations could be done such as triggering a peer discovery round whenever there’s network connectivity so the whole thing gets in movement ASAP. There’s already a known peer cache that helps with the bootstrap process (It will try talking first to peers that seem to be usually online at the same time that themselves) and it will also try to discover extra peers more aggressively at the beginning of the bootstrap process.

But probably some tuning could be done if you know you software will frequently run into that situation.

There was one of our master students who did some UAV experiments on the Arctic circle with multiple uplinks that where available depending on the area the UAV would fly over and also some drop points where more bandwidth was available via WIMAX or similar. I don’t know the details but @root will probably be able to give you more info on that too.

I just told him about this post so he will drop by when he can.

Thanks for the interest!

@whirm,

I really appreciate your quick detailed reply. It appears that there’s a ton of fascinating research being done around Dispersy and Tribler. You appear to have found a great application to base virtually endless research off of. The work that’s going into Dispersy and Tribler have applications that reach far beyond anonymous file-sharing. The projects have seriously increased the size of my reading list (that’s generally a good thing). Is the majority of this research being done at Delft or do you have collaborators from other institutions?

–adam

It’s mostly Delft, we’ve had some collaborators from elsewhere but so far it has been a minor thing.

If you are interested in collaborating you should contact Prof. Johan Pouwelse, I’m sure he will be happy to hear about it.