ArticleslgStudy

computer science

RetroShare

RetroShare is a computer science topic covered in the lgStudy science library. This page brings together a partial reference excerpt, illustrations, worked examples, real-world applications and a short study plan, so you can understand RetroShare rather than just read about it. In short: Retroshare is a free and open-source peer-to-peer communication and file sharing app based on a friend-to-friend network built by GNU Privacy Guard (GPG). Optionally peers may exchange certificates and IP addresses to their friends and vice versa.

RetroShare — main illustration
RetroShare — illustration

Key takeaways

  • RetroShare belongs to computer science; place it in that map before memorising details.
  • Learn the definition first, then one example that makes the definition concrete.
  • Connect RetroShare to a quantity you can measure, compute or draw — that is where exam questions come from.
  • Reproduce the core statement of RetroShare from memory before moving on to harder problems.

Reference excerpt

Retroshare is a free and open-source peer-to-peer communication and file sharing app based on a friend-to-friend network built by GNU Privacy Guard (GPG). Optionally peers may exchange certificates and IP addresses to their friends and vice versa.

History Retroshare was founded in 2004 by Mark Fernie. An unofficial build for the single-board computer Raspberry Pi, named PiShare, was available since 2012. On 4 November 2014, Retroshare scored 6 out of 7 points on the Electronic Frontier Foundation's secure messaging scorecard, which is now out-of-date. It lost a point because there had not been a recent independent code audit. In August 2015, Retroshare repository was migrated from SourceForge to GitHub. In 2016, Linux Magazine reviewed security gaps in Retroshare and described it as "a brave effort, but in the end, an ineffective one."

Design Retroshare is an instant messaging and file-sharing network that uses a distributed hash table for address discovery. Users can communicate indirectly through mutual friends and request direct connections.

Features

Authentication and connectivity After initial installation, the user generates a pair of (GPG) cryptographic keys with Retroshare. After authentication and exchanging an asymmetric key, OpenSSL is used to establish a connection, and for end-to-end encryption. Friends of friends cannot connect by default, but they can see each other, if the users allow it. IPv6 was released in November 2018.

File sharing 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.

Communication Retroshare offers the following services for communication:

a private chat; a private mailing system that allows 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, similar to RSS feeds; a posted links system, where links to important information can be shared; VoIP calls; Video calls (since version 0.6.0); Tor and I2P networks support, for further anonymisation (since version 0.6.0).

User interface The core of the Retroshare software is based on an offline library, into which two executables are plugged:

a command-line interface executable which offers nearly no control, but it is useful to run "headless" on a server a graphical user interface written in Qt is the one most users 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 neighbouring 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.

Anonymity 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. The degree of anonymity may be improved further by deactivating the DHT and IP/certificate exchange services, making the Retroshare network a real dark net. Friends of friends may not connect directly with each other; however, a user may enable the anonymous sharing of files with friends of friends. Search, access, and both upload and download of these files are made by "routing" through a series of friends. This means that communication between the source of data (the up-loader) and the destination of the data (the down-loader) 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 the original source and ultimate destination are able to see what data is transferred.

Caveats While Retroshare's encryption makes it virtually impossible for an ISP or another external observer to know what one is downloading or uploading, this limitation does not apply to members of the user's Retroshare circle of trust; adding untrusted people to it may be a potential risk. In 2012, a German Court granted an injunction against a user of Retroshare for sharing copyrighted music files. Retroshare derives its security from the fact that all transfers should go through “trusted friends” whom users add. In this case, the defendant added the anti-piracy monitoring company as a friend, which allowed him to be traced through aggregation of bad Opsec.

See also

Comparison of file-sharing applications

References

External links Official website

Illustrations

RetroShare illustration
RetroShare illustration
RetroShare illustration

Worked examples

Example 1 — a first encounter with RetroShare

Start with the simplest possible case. Write down what RetroShare claims or describes in one sentence, then invent the smallest concrete situation in which that sentence is true. In computer science, the smallest case is usually a single object, a single equation or a single measurement. Check that every symbol or term in your sentence has a meaning in that case.

Example 2 — changing one variable

Take the situation from Example 1 and change exactly one quantity: double it, halve it, or set it to zero. Predict what should happen to RetroShare before you calculate. Comparing your prediction with the result is the fastest way to find out whether you understand the idea or only the words.

Example 3 — an exam-style question

Typical questions about RetroShare ask you to (a) state it precisely, (b) apply it to given data, and (c) explain a limitation. Practise writing all three answers in under five minutes; the third part is what separates a full-mark answer from an average one.

Applications of RetroShare

In research
RetroShare appears in computer science research whenever the underlying quantities have to be modelled precisely. Papers usually cite it as a starting assumption and then explore where it breaks down.
In technology and industry
Engineering practice reuses RetroShare in design rules, simulations and safety margins. Knowing the idea lets you read a specification sheet and understand why the numbers look the way they do.
In the classroom
RetroShare is common in secondary-school and first-year university syllabi. It links to neighbouring topics 2006 software, Anonymous file sharing networks, Cross-platform free software, so understanding it makes those chapters shorter.
In everyday life
Look for RetroShare outside the textbook — in sport, cooking, traffic, electronics or the sky above you. An example you found yourself is remembered far longer than one you were given.

Affiliate

Preply — study more efficiently by working with a personal tutor. 50% off.

How to study RetroShare in 20 minutes

  1. Read the reference excerpt below once, without taking notes.
  2. Close the page and write down what RetroShare means in your own words.
  3. Compare your version with the excerpt and mark what you missed.
  4. Work through the three examples above with pen and paper.
  5. Explain RetroShare out loud to somebody else — or to Teacher Smith in the lgStudy chat.

Frequently asked questions

What is RetroShare in simple terms?

Retroshare is a free and open-source peer-to-peer communication and file sharing app based on a friend-to-friend network built by GNU Privacy Guard (GPG). Optionally peers may exchange certificates and IP addresses to their friends and vice versa.

Why does RetroShare matter?

Because it connects several computer science ideas at once: it gives you a definition you can apply, a quantity you can calculate, and a way to check whether a result is plausible.

How should I study RetroShare?

Read the excerpt, restate it from memory, then work through the examples and applications listed on this page. The five-step study plan above takes about twenty minutes.

What does this page cover?

It gives you a compact reference excerpt plus original lgStudy explanations, examples, applications and study material on RetroShare.

Tags

  • 2006 software
  • Anonymous file sharing networks
  • Cross-platform free software
  • Cryptographic software
  • Free Internet forum software
  • Free file sharing software
  • Free file transfer software
  • Free instant messaging clients
  • Free software programmed in C++
  • Instant messaging clients that use Qt
  • Internet privacy software
  • MacOS instant messaging clients

Keep exploring