- Component: Forums
- Development: April. 2008 – Jan. 2010
- Status: released
This is my first blog as part of the Retroshare (RS) development team. Firstly if you are an RS user, hope you are loving the software, and if you are not, really do give it a try. I am going to describe Forums, one of Retroshare’s most used service.
Retroshare’s Forums is a decentralised message distribution service which bares many similarites to the more familiar web forum. Like web forums it allows users to post a topic and, users to subsequently post messages about the topic (which are called threads). The interesting bit about RS Forums is how topics are published, administered and distributed among peers.
The distribution of topics and messages in Forums are done through the synchronisation of Forum data between RS peers. Once a topic is published by a peer, it is shared to all peers directly connected to the peer. The peers who subscribe to the topic then distribute it to peers they are directly connected to and so on.
Messages for a given topic is shared amongst networked peers in the same way. A depiction of an instance of Forum message distribution is shown in Figure 1. Here the purple circles depict peers who have subscribed to a topic published by Peer A. The purple peer’s propagate the topic and its messages along the network. Yellow peers have received the messages and the topic of peer A but haven’t subscribed.
Note that peer G is aware of neither topic or messages as he is not part of the network initially. Once he joins A’s network through peer F he is immediately updated with peer F’s current topics and become’s aware of A’s topic. Again, it is important to note that a peer must be subscribed to a topic in order to forward messages of that topic as well as the topic itself.
Forums Privacy and Authentication Policy
Forums topics are published with a combination of privacy and authentication policy. The two policies have no effect on each other. There are two types of privacy policies available:
A public topic allows anyone to post to it. A private topic only allows privileged peers chosen by the author to post. This is implemented via public key cryptography which allows messages to be encrypted using a public publish key. The message can only be decrypted by peers who have the private publish key.
There are two types of authentication policy available:
- Authenticated (PGP)
Authenticated topics require peers to sign messages, before they can be published, with their private PGP key (synonymous to Retroshare identity). This allows peers with the public PGP key of the publishing peer to be able to authenticate the message, and confirm the message’s author . In Retroshare only direct friends of the peer, and “friends of friends” typically have a peer’s public PGP key. Anonymous Forum topics do not require such a signature.
Self Regulation and Localisation
Popular Forum topics are more likely to be subscribed to, and this enhances their distribution throughout the network. This characteristic of Forums leads to self-regulation of topic availability on the network. A positive by-product of this self regulation is the efficient use of bandwidth by not distributing unpopular or spammy topics.
Localisation is a characteristic seen primarily in authenticated Forum topics. It means that topic messages are only received that originate from a few hops away on one’s Retroshare network. This serves to keep the discussion relevant to a peer’s circle of friends, and enhance your privacy. Localisation is caused by peers not distributing messages which they cannot authenticate (i.e they don’t have the author’s PGP Key). Typically, these are messages from authors 3 or more hops away.
Authenticated Forums significantly reduce spam levels. Firstly, people are generally more considerate when they are not anonymous. Additionally, localisation prevent spamming a popular topic from far afield.
Popularity of a topic is calculated as the percentage of direct peers who are subscribed to the topic. This method of calculating popularity arises naturally from Retroshare’s decentralised nature. Consider Figure 2 and the table 1 below that. They consider a single topic which peers A-K all have, but of which A, E, H and K are subscribed to.
It is important to note that peers on the network do not necessarily see the same value for this popularity metric. This can be seen in table 1 which shows the calculated popularity values for the peers shown in figure 2.
Table 1: Popularty of a Topic for a Few of the Peers in Figure 2
|Peer||# Friends||# Subscribers||Local popularity|
The key points to take from Forum’s localisation and self-regulating properties are:
- Interesting stuff get shared
- Rubbish stuff gets dropped
- Popularity is local to peer
Resistance to Censorship
In keeping with Retroshare’s ideals , Forums is highly resistant to censorship. Its decentralised structure makes it extremely hard for any one peer to suppress a message or topic distributed in Retroshare’s network. Secondly with anonymous topics users have the choice not to associate their Retroshare identity with any posts they might make.
Back End: The Cache System
A little technical aside is made on the back-end of Forums, the Cache system, which powers a few other services in Retroshare. It is quite simple in design and effectively synchronises files (called “caches”) between peers in a network. All peers operating the cache based service have a remote and local cache. The local cache represents a set of cache files created by the peer which are synchronised to other peers. The remote cache represents effectively the local cache of all peers on the peer’s network.
The distribution policy of Forums is enforced here which pushes topics peers subscribe to into their local cache (as well as messages for the topic). The sum effect of this is a certain amount of duplication of Forum data between peers. This duplication enhances the distribution of Forum data through the network as not all peers on the network may be on-line to synchronise their caches. There is a downside to this which is spoken about next in issues with the current Forums.
Issues with Forums
- Redundancy: There is a huge amount of redundancy of Forum data held by peer. This is not a problem with the Forum concept, but rather its underlying implementation using Retroshare’s Cache system. Cache lacks the ability for more fine grained synchronisation (i.e. you would not want to receive topics or messages you already have).
- Missing Messages: This occurs with authenticated forums because of not having the public PGP key which is needed to authenticate its author. This disrupts the continuity of a thread.
- Single PGP identity to publish with: While one may not want to compromise their Retroshare identity with a post, they may want to maintain a handle for say a controversial topic they are discussing. It would be useful for peers to be able to create pseudonyms they can use when posting messages.
- Spam: While not so much an issue with authenticated Forum topics, it can be an issue with anonymous Forum topics in which spam can travel across the whole RS network to which the spamming peer belongs to.
- The fact that unpopular topics do not get distributed as widely is a double edged sword. A peer might be interested in such a topic and it may not reach them simply because it is not popular.
The RS development team is currently working on a replacement for the back-end of many of its distributed message services like Forums. It is called GXS (General Exchange Service) which aims to address many of the deficiencies highlighted above. All in all watch this space!
Edit: Fixed table calculations