Es gibt immer mal wieder Kritik daran, dass man mit seinem Fediverse Account keine Suche über alle Instanzen im Fediverse starten kann.
Diese Kritik möchte ich aufgreifen und hier mit euch zusammen ein Konzept für eine Fediverse-Suchmaschine zu erarbeiten.
Problemstellung
Das Fediverse ist eine dezentrale Struktur, von Plattformen und deren Instanzen, die über das technische Protokoll ActivityPub kommunizieren.
Dabei ist es systembedingt so, dass eine Instanz immer nur dann eine Verbindung mit einer anderen Instanz aufbaut, wenn durch die User Interaktionen zwischen den Instanzen ausgelöst werden.
Die meisten Instanzen haben also nur Verbindungen zu einer Teilmenge aller Instanzen.
Zusätzlich speichert jede Instanz, nur die Kommunikation, die direkt mit ihr stattfindet, also wiederum auch nur eine Teilmenge dessen, was an Inhalten bei den Instanzen steht, mit denen sie verbunden ist.
Die Suche einer Instanz liefert deshalb immer nur eine kleine Teilmenge der Inhalte, die im Fediverse veröffentlicht werden.
Lösungsvorschlag
Es wird ein großer Server aufgesetzt, der die Möglichkeiten von ActivityPub und den anderen Fediverse Protokollen voll ausreizt. Dieser Server scannt ständig nach neuen Instanzen im Fediverse und stellt dann von sich aus, selbstständig eine Verbindung zu neu gefundenen Instanzen her.
Dann liest er alle verfügbaren öffentlichen Inhalte dieser Instanz aus und speichert diese Daten lokal in einer Datenbank, die mit umfassenden Indizes versehen wird.
An diesen Server können dann alle Instanzen im Fediverse eine Suchabfrage abschicken und so ihre User mit einer vollständigen Suchfunktion versorgen.
Offene Punkte
- Nicht öffentliche Inhalte kann so ein Server nicht durchsuchen.
- Der Server müsste eigentlich Nachrichten, die auf den Instanzen gelöscht wurden, auch löschen, wie kann das sichergestellt werden?
- Der Server würde sehr viel Plattenplatz und CPU Leistung für seinen großen Index und die Suchanfragen darauf benötigen, wie soll das finanziert werden?