hearsay
Posts that travel at walking speed. Your audience is everyone within earshot, and nobody beyond it.
What it is
A LoRa radio in your window, holding what it has heard. When another one comes into range they compare notes and hand over what the other lacks. Nothing is routed and nobody forwards anything on your behalf: a post reaches you because a person moved.
So a post from three towns over arrives because somebody carried it, and you can see who. It runs on loraline, the same radio underneath catacomms and longshore.
Your audience is geography
You cannot build a following. There is no algorithm, no recommendation, and no reach beyond what the radios do. A post spreads because the people who already have it walk about, and it stops when they stop.
Which means there is nothing to optimise and no way to go viral past the horizon. The only thing that ever happened to a post is that somebody carried it, and that is already written on it.
What is provable, and what is not
A post is signed once by whoever wrote it and the signature travels with it for ever. The address it is signed under is the hash of both halves of that person's keys, so nobody can attach an invented signing key to a real name.
- A carrier cannot change a word of a post.
- A carrier cannot write one in somebody else's name.
- A carrier can drop it, refuse to pass it on, or lie about where they got it.
So the trail of who carried it is a claim rather than a proof. Signing every hop would make it provable and cost eighty-eight characters each time, against a budget of about forty posts an hour. Not a trade worth making.
The name is that caveat. Hearsay is what you have when the account is sound and the chain of telling is not.
Names and faces
A profile is a name and a thirty-two square picture in eight colours, signed and carried exactly as a post is. It has to be signed: whoever reads it has probably never met the person it describes.
It can be a photograph. Every picture brings its own eight colours, chosen from the image itself, and what comes out is roughly an icon from 1993, which is the honest answer to asking a photograph across a link that carries a few hundred bytes at a time.
The address is always shown beside the name, because a name is not verified and cannot be. Anybody can sign a profile calling themselves anything. Close up that does not matter, since the people in range mostly know you. At three hops it does, which is why the key is always on screen next to the label somebody chose for it.
What it is like
Slow, and small. Five people in a town write something like twenty posts across an evening, which is about five an hour between them.
What you are reading is complete up to roughly half an hour ago. The recent end is partial and filling in, as posts arrive with whoever walked past. That lag is not a fault to be fixed. It is what makes the thing feel like a place rather than a timeline.
A post is 140 characters. Under the European duty cycle a radio may speak for thirty-six seconds an hour, which works out at about forty posts, and nobody has ever come close. The radio is not what limits this. People are.
It wants to be always on
A node that only runs while you are looking at it carries nothing. The whole mechanism is holding posts between meetings and handing them on when somebody passes, so it belongs on something that stays on: a small computer with the radio in a window, serving a page to your house. You read it from a phone when you feel like it.
What it is carrying is kept on disk and picked up again when it starts, so a reboot does not empty anybody's pockets.
What it can't do
Reach anybody you cannot eventually be near
There is no bridge to the internet and there is not going to be one. The property this has is that the audience is geographic, and a web mirror would dissolve that quietly because it would be so useful.
Keep anything for long
A node holds two hundred posts and forgets the oldest. It is a pocket, not an archive. A post can die: if everybody holding it forgets before it reaches the next person, it is gone.
Be private from the people in range
Anybody within earshot with the passphrase can read and log everything. Posts travel and persist in other people's pockets. This is a village noticeboard, not a private channel.
Verify that you are you
Signatures prove which key wrote a post. Nothing proves the person behind the key is who the name says.
Running one
hearsay is inside the loraline app. One download, one radio, one setup. It is the panel that keeps working while you are looking at something else, because being there when somebody walks past is the whole mechanism, and the switcher says so.
From source instead:
git clone https://github.com/intervalplace/loraline
git clone https://github.com/intervalplace/hearsay
pip install -r hearsay/requirements.txt
cd hearsay && PYTHONPATH=../loraline python tests.py
Then, with a radio, and everybody in your town using the same passphrase:
export LORALINE_KEY="the phrase your town agreed"
PYTHONPATH=../loraline python -m hearsay --name yourname \
--port /dev/ttyUSB0 --band eu868
Open localhost:8080, or the machine's address from a phone on
the same network. Read loraline's
setup first: the band you transmit on is your responsibility.
Without a radio at all, --tcp-listen 4242 and
--tcp-connect somewhere:4242 are enough to try it between two
computers.