Midterms 2026Wer nach unseren Maßstäben Ihre Stimme verdientZum Leitfaden →
GESCHRIEBEN IN KLAREM DEUTSCH.
CLAY TRIBUNE.
Anzeige

Parley behebt den Fehler, der Nicknamen dazu brachte, alle im gesamten Bund aufzuwecken.

Ein Chat-System ohne zentralen Server, bei dem jede Person ihre eigene Instanz betreibt und Namen wie gezeigt gelesen werden. )

Von mitch·5 Min. Lesezeit
A diagram showing many small servers linked together, each bearing a distinct name.

Parley ist ein Chat-Netzwerk, das E-Mail-Funktionen nachempfunden ist und sich wie IRC verhält, ohne jeglichen zentralen Server. Jede Person betreibt ihre eigene kleine Instanz für ihre eigene Domain, und diese Instanzen finden sich gegenseitig über DNS und Identitätsnachweise, indem sie signierte Nachrichten über HTTPS austauschen. Das Ergebnis ist ein föderiertes Chat-System, mit dem Standard-IRC-Clients wie irssi, WeeChat oder Textual direkt ohne jegliche Plugins verknüpft werden können, wobei Identitäten im E-Mail-Adressenformat verwendet werden.

Eine kürzliche Reparatur korrigierte ein Problem, bei dem eine Notiz, die an eine Person gesendet wurde, mehrere Personen auf verschiedenen Servern mit demselben Handle aufwirbeln könnte. Die Korrektur ändert, wie Parley ein Handle innerhalb einer Nachricht verarbeitet, sodass ein reines Handle nun auf den Empfänger auf dem eigenen Server des Senders verweist, anstatt an alle, die dieses Handle tragen, ausgestrahlt zu werden.

Wie Namen kaputt waren

Prior to the correction, a message such as bob: lunch? coming from one server would trigger a notification for anyone carrying the handle bob, no matter which server they were attached to. The same held true for a specific handle like bob:bar.com: if bob was present on both foo.com and bar.com within the same chat, a message directed at bob:bar.com alerted both of them, rather than only the one on bar.com.

Anzeige

A fault was detected during testing. The test TestOnlyTheBobThatWasMeantIsPushed connects two cases, each bearing a bob, and verifies that each of the five lines pushes only to the bob it identifies. Running on main, it fails on the opening line: „a notification was pushed to /bar.com/bob and should not have been.“

Namen repariert durch Lesen, wie sie dargestellt wurden

Wie die Reparatur einen Namen liest, hängt davon ab, wie der Absender ihn dargestellt hat:

  • A qualified nickname such as bob:bar.com or bob@bar.com is treated as bob on bar.com, no matter who wrote it.
  • A bare nickname like bob is treated as the bob on the sender’s own instance, so it names an account here only when the sender is local.
  • bar inside alice:bar.com or alice@bar.com names nobody.

The update was recorded as R189. It alters how the pushConsidered function operates, switching to reading s.peers from within it, since the callers of that function already hold s.mu. The integration test ran 10 times in succession without issue, even when run with -race. Running bte check parley.bt shows the same 0 errors and the identical 7 warnings that appear on main, while bte fmt makes no changes to the file at all.

Was Parley tatsächlich tut

The Parley setup uses the client you already own. There are two servers: foo.com and bar.com, each running its own stock irssi session. Alice logs into her server; Bob logs into his. When Bob wants to reach Alice, he opens a query with /msg alice@foo.com hi, and the two servers link together right away. Alice then sees Bob as bob on bar.com; Bob sees Alice as alice on foo.com.

lobby is a global channel that copies itself across their instances, and it has no owner, no topic and no operators. The local channels, which carry a tilde (~) rather than a hash, remain within their own instance and stay hidden from other users — that is where the topic can actually be found.

IRCv3 features such as message-tags and echo-message are part of the system. When a message carries tags, those tags remain attached to it. This means that a +reply stays a reply even after it comes back out of history, and draft/multiline keeps a pasted paragraph together as one message instead of splitting it into eight. The scrollback follows the user personally, showing what they have not yet seen, and relies on draft/read-marker to track where they have already read up to.

The accounts themselves sit inside the instance’s data directory rather than in a config file. New ones can be created using parleyctl, the admin page, the HTTP API, or through single sign-on with any OpenID Connect provider, or identity headers from a reverse proxy. Users generate IRC tokens for their clients via their settings page; bots are accounts carrying the bot role.

Warum das wichtig ist

Parley remains a proof of concept rather than a finished product. It shows the design from start to finish and runs a genuine instance, though it has not been hardened yet. The correction is neat. Instead of altering the notification logic directly, Parley changed how it reads names, which stops the issue at the input stage. The test failure on main made the bug plain to see, and the correction reads names as the sender displayed them, covering every nickname a client could have been shown.

The architecture relies on DNS plus WKID, with _parley._tcp.<domain> SRV records directing traffic toward the server and https://<host>/.well-known/parley/instance.json exposing the ed25519 public key alongside the inbox. A user’s existence is confirmed through .well-known/parley/<user>.json. Each event gets delivered as a signed JSON document POSTed to the recipient’s inbox, with an ed25519 signature in headers verified against the key found by the receiver.

Wenn eine Instanz einer neuen Domain beitritt, kann sie angewiesen werden, sich automatisch mit einer anderen Instanz derselben Domain zu verbinden, und die beiden werden sich selbstständig miteinander verbinden. Sobald sie verbunden sind, teilen die verbundenen Instanzen die Peers, die sie bereits kennen, was dazu führt, dass sich ein Netzwerk bildet, ohne jegliche Einrichtung.

Quellenmaterial: „Parley: Federated, decentralised chat that speaks plain IRC“, mills.io.

Das Notizbuch

Das Notizbuch abonnieren.

Die besten Geschichten des Tages und jedes neue Urteil, in klarem Deutsch, um sieben im Postfach. Eine Mail am Tag, nicht mehr.

Wir schicken eine Bestätigungsmail. Jede Ausgabe hat einen Abmeldelink, ein Klick genügt.

Anzeige

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Als Amazon-Partner verdient Clay Tribune an qualifizierten Verkäufen.