From Wikipedia, the free encyclopedia
  (Redirected from Retroshare)
Jump to: navigation, search
Developer(s) RetroShare-Team
Initial release 2006[1]
Stable release 0.5.5c / April 11, 2014 (2014-04-11) (Heartbleed fix)
Development status Active
Written in C++
Operating system Microsoft Windows, Linux, Mac OS X, FreeBSD
Available in English, French, Italian, Polish, German, Swedish, Chinese, Japanese, Spanish, Czech, Dutch, and many more[2]
Type Anonymous P2P, Friend-to-friend, Chat, Instant Messenger, Newsgroups, Voice over IP, Darknet, Social network, Email client
License GNU General Public License
As of may 2014

RetroShare is free software for encrypted filesharing, serverless email, instant messaging, chatrooms, and BBS, based on a friend-to-friend network built on GPG (GNU Privacy Guard). It is not strictly a darknet since optionally, peers may communicate certificates and IP addresses from and to their friends.[3][4]

The number of simultaneous users is, in January 2014, more than 5800.[5]

Authentication and connectivity[edit]

After intial installation, the user generates a pair of (GPG) cryptographic keys with RetroShare.

After authentication and exchanging an asymmetric key, SSH is used to establish a connection. End to end encryption is accomplished by using OpenSSL. Friends of friends cannot connect by default, but they can see each other, if the users allow it.

IPv6 support is planned for the RetroShare 0.6 release branch with a possible release in 2015.

File sharing[edit]

It is possible to share folders between friends. File transfer is carried on using a multi-hop swarming system (inspired by the "Turtle Hopping" feature from the Turtle F2F project, but implemented differently). In essence, data is only exchanged between friends, although it is possible that the ultimate source and destination of a given transfer are multiple friends apart. A search function performing anonymous multi-hop search is another source of finding files in the network.

Files are represented by their SHA-1 hash value, and HTTP-compliant file and links may be exported, copied, and pasted into/out of RetroShare to publish their virtual location into the RetroShare network.


The services that RetroShare offers for communication are :

  • a private chat
  • a private mailing system allow secure communication between known friends and distant friends.
  • public and private multi-user chat lobbies.
  • a forum system allowing both anonymous and authenticated forums which distributes posts from friends to friends.
  • a channel system offers the possibility to auto-download files posted in a given channel to every subscribed peer.
  • a Posted links system, where links to important information can be shared.

User interface[edit]

The core of the RetroShare software is based on an offline library, to which two executables are plugged :

  • a command-line interface executable, that offers nearly no control.
  • a graphical user interface written in Qt4, which is the one most users would use. In addition to functions quite common to other file sharing software, such as a search tab and visualization of transfers, RetroShare gives users the potential to manage their network by collecting optional information about neighbour friends and visualizing it as a trust matrix or as a dynamic network graph. The appearance can be changed by choosing one of several available style sheets.


The friend-to-friend structure of the RetroShare network makes it difficult to intrude and hardly possible to monitor from an external point of view.[citation needed] The degree of anonymity may be improved further by deactivating the DHT and IP/certificate exchange services, making the Retroshare network a real Darknet.

Friends of friends may not connect directly with each other; however, the possibility exists of anonymously sharing files with friends of friends, if enabled by the user. Search, access, and both uploading and downloading of these files is made by "routing" through a series of friends. This means that communications between the source of data (the uploader) and the destination of the data (the downloader) is indirect through mutual friends. Although the intermediary friends cannot determine the original source or ultimate destination, they can see their very next links in the communication chain (their friends). Since the data stream is encrypted, only original source and ultimate destination are able to see what data is transferred.


  • Search for friends
  • Search for files
  • Instant messaging
  • Groupchat
  • IRC-like channels
  • Anonymous/authenticated forums
  • Multi-hop search for files
  • NAT hole punching
  • Swarming as in BitTorrent
  • Qt4 platform independent GUI
  • Localisation for 11 languages (2014)
  • Anonymous file sharing with friends
  • URL scheme for shared files
  • Completely decentralised
  • Optional IP localization using Kademlia DHT
  • UPnP / NAT-PMP port forwarding support
  • Overview of all shared files
  • Multiple simultaneous downloads / uploads
  • Plugin support
  • Voice chat via VoIP plugin
  • Integration into the taskbar
  • Support for resuming downloads after exiting the program
  • Adding downloads via website links
  • Overview of internal router statistics
  • Quick Start Wizard (for quick and easy setup of RetroShare)
  • Setting (forward) and the ports of the router is automatically inherited from RetroShare
  • Public or anonymous data sharing with friends


Since 2013, the web site PRISM Break recommends RetroShare for anonymous file sharing.[6]

Technical criticism[edit]

Future Developments[edit]

Decentralised voicemail and videochat are implemented with RetroShare and its Plugin infrastructure. The plugins are being updated using OpenCV.

A web-based user interface to control the software from a distant machine also stands among future plans.

Since 2012, there is an unofficial build for the single-board computer Raspberry Pi, named PiShare.[7]

An improved communication protocol is being implemented for version 0.6.*, which is under active development.

See also[edit]


External links[edit]