The short version

PeerLoom apps connect your devices straight to each other. On some networks that direct connection cannot be made. When that happens, and only then, the app can route the connection through a relay computer that PeerLoom runs. The relay passes along scrambled data it cannot read, keeps no copy of it and can be turned off in the app.

Why a relay exists at all

Two devices on different networks have to find a path through the routers in between. Almost always they can. On some mobile carriers and some home routers they cannot, no matter how many times they try.

Before the relay, those people simply could not connect, and the app looked broken through no fault of their own. The relay is the floor under the promise that your devices can reach each other from anywhere.

Direct first, always

Every connection starts as a direct one. The relay is only tried after a direct connection to that device has already failed. If a direct path opens up later, the connection moves back onto it by itself.

On a normal network the relay is never touched.

What the relay can see

The relay carries exactly the same encrypted traffic your two devices would have exchanged directly, and it does not hold the key to it. It cannot read your calendar, your lists, your location, your photos or anything else inside the app. Neither can we.

What it does handle, because any relay must:

  • That two devices are talking, identified by random public keys, not names, email addresses or phone numbers
  • When they connected and for how long
  • How much data passed through

That is the honest limit of what a relay can promise. We would rather say it plainly than claim more than the technology delivers.

What we keep

Nothing about you. The relay writes no data to disk, so a restart leaves nothing behind. Its log records running totals used to check that it is healthy, such as how many connections are currently open. It does not record which devices connected, or when.

You can turn it off

Using the relay is a setting you control, and it is on by default, because for most people it is the difference between the app working away from home and not working at all.

Turn it off and the app is purely device to device. Our relay is never involved, and on the small number of networks where a direct connection is impossible, the app will simply not connect.

It is best effort, not a guarantee

Worth being straight about, because it is the one part of PeerLoom that costs money to run. Every byte the relay forwards is bandwidth PeerLoom pays a hosting provider for. Nobody pays to use it and there is no subscription behind it.

That has a consequence: it is a shared, best-effort service rather than a guaranteed one. When a lot of people are using it at once it can be slower. If usage grows faster than we can fund it, we may have to cap how much it carries, and there may be times it is unavailable.

Video is the demanding case, and it moved there when PearCinema shipped. A calendar entry or a location update is a few kilobytes; an album is hundreds of megabytes; a film is gigabytes. So the two apps that can move real volume both ask first and remember your answer for that library - PearTune before it sends a library’s music this way, PearCinema before it sends a film. PearCinema also holds the picture quality down while a film is coming through the relay, and never sends a download through it at all: a download is watched again months later, so a moment spent off wifi would otherwise follow the film around for ever.

If the relay is ever unavailable, none of your own data is affected, because it holds none of it. Direct connections keep working exactly as they do now, which is how the overwhelming majority of connections happen anyway. What you lose is reaching a machine on the networks where a direct connection cannot be made at all.

One relay, every app

The relay does not know or care which app is using it. It forwards scrambled bytes. The same relay backs every PeerLoom app that needs one.

The DHT is a different thing

Worth separating, since both sound like network plumbing.

The distributed hash table is how devices find each other. No company runs it. It is spread across thousands of devices worldwide and it never sees your data. Every PeerLoom app uses it, and it is not something we operate.

The relay is the one piece PeerLoom does operate. It is optional and it is used only when a direct connection has already failed.

Open source

The relay is a small program, roughly 150 lines. You can read exactly what it does, and run your own instead of ours. The source lives with the rest of our code at github.com/peerloomllc.

Questions

Anything here unclear, or something you think we have stated too generously? Write to peerloomllc@proton.me.