Fediverse | Wie steht es eigentlich in Sachen ActivityPub C2S (Client-to-Server) Schnittstelle?
Derzeit läuft die gängige Kommunikation im Fediverse ja über eine Server 2 Server (S2S) API, also die verschiedenen Installationen der Plattformen kommunizieren/federieren miteinander und die Benutzer nutzen die Weboberfläche oder eine App die über spezifische Schnittstellen mit den Plattformen kommuniziert. Eine Umsetzung von C2S ist mir jedoch nicht bekannt, wo das doch wirklich schlanke Fediverse Server die nicht den Ballast eines Frontends mit sich schleppen müssten erlauben würde. Sprich es würde zu einer noch sehr viel weitergehenden Dezentralisierung kommen. Natürlich könnte man wenn man das will auch weiterhin einen Fediverse Server und ein Webfrontend auf einen Server packen.
#Fediverse #ActivityPub #C2S #Client-to-Server #Schnittstelle #API #Frage #Kommunikation #Dezentralität @dach
@sascha @dach wir haben gerade erst die erste Implementierung von C2S bei @lauti gemacht. LAUTI läuft dabei weiter als Server, Veranstaltungen werden dann aber mit C2S auf einem anderen fediverse veröffentlicht. Bisher haben wir das erfolgreich mit @Bonfire getestet. Es sollte aber auch mit anderen Servern funktionieren, solange die eine C2S authentikation mittels HTTP Signatur unterstützen. Mehr dazu gibt es auch bald in einem Blog post auf https://lauti.org/
Na ja, Lemmy funktioniert so. Der Server selbst enthält keine Benutzeroberfläche. Die wird stattdessen von lemmy-ui bereitgestellt, was separat gehostet wird und die gleiche API wie alle anderen Clients verwendet.
Ein Standard, wie die C2S-API aussehen sollte (so wie Matrix das hat), ist mir allerdings nicht bekannt. Bei den APIs ändert sich ja im Moment auch noch viel (besonders im Hinblick auf Lemmy 1.0.0, was die API-Version 4 mit sehr vielen Änderungen mit sich bringt).
Alle anderen Fediverse-Server, die ich kenne, enthalten bereits von sich aus eine Weboberfläche. Da ist die C2S-API bei neuen Funktionen vermutlich nicht der erste Gedanke.
Die offizielle ActivityPub Spezifikationen enthalten auch eine rudimentäre C2S API, aber diese wurde nicht von Mastodon implementiert.
@poVoq @mschae Genau die meine ich. Den die würde wenn man das voran bringt sehr schlanke Fediverse Server und Clienten/Frontends aller Couleur erlauben. Sprich jeder könnte wenn es sich nur um wenige Benutzer handelt (was ja an sich dem dezentralen Gedanken des Fediverse entspricht) einen Server auf einen Raspi knallen der ständig mit dem Netz verbunden ist und den Clienten/Frontend nutzen das er oder sie will.
Naja, auch ohne die ActivityPub C2S API ist das ja schon im Grunde der Fall, nur halt mit Reimplementationen der Mastodon C2S API. GoToSocial z.B läuft problemlos auf einem RasberryPi 3/4/5 und kann mit quasi sämtlichen Mastodon apps als Backend genutzt werden.
@poVoq Der Gedanke bei C2S ist aber wenn ich es recht verstehe bei ActivityPub ein anderer, eben eine total neutrale einheitliche API zu haben die unabhängig von den Eigenheiten einer Plattform läuft. Sprich die totale Entkopplung von Server und Client.
Ich glaube das die Idee jeden Client mit jedem Backend verwenden zu können in der Praxis nicht so gut funktionieren würde, weil letzlich muss die Nutzeroberfläche ja für irgendeinen bestimmten Anwendungsfall entworfen werden, da kann man nicht so leicht sagen das soll für alles sein. Die verschiedenen Server haben ja auch jeweils ihre Spezialisierungen. Das Fediverse besteht ja nicht nur aus Twitterklonen
@waldfee Das geht durchaus, mit kleinen nicht spezifischen Servern. Sprich der Client/Frontend bestimmt wie es aussieht. Der Server konzentriert sich auf die Federation und andere grundsätzliche Aufgaben. Natürlich ist das das totale Gegenteil von dem was heute die meisten Fediverse Plattformen darstellen. Der Vorteil läge darin das der Nutzer entscheiden kann was für einen Clienten/Frontend er nutzt, mit welchen Server er es nutzt, das die Dezentralität massiv erhöht würde und es zusammen mit anderen Ansätzen die derzeit noch nicht groß genutzt aber bereits in AP angelegt sind auch möglich wäre seinen Account von einen Fediverse Server auf jeden anderen Fediverse Server zu migrieren, wobei das wahrscheinlich noch etwas dauern wird.
Mit einem unspezifischem Server würde das wohl gehen, das würde dann aber auch nur Einzelnutzerinstanzen ermöglichen, weil auf einer Mehrnutzerinstanz der Server verstehen muss wer zu welcher Aktion berechtigt ist und er dazu auch quasi die ganze Anwendungslogik verstehen können muss. Auch jetzt schon möchten die allermeisten Nutzer keine eigene Instanz hosten; ich denke nicht das sich das ändern würde wenn man eine kompliziertere Server/Client Beziehung einführt.
Die nomadische Identität die du angesprochen hast ist aber auch nochmal ein separates Konzept das von C/S AP nicht abhängig ist.
@waldfee Und natürlich hätte es noch einen Vorteil. Entwickler die gerne Frontends entwickeln könnten sich darum kümmern, Entwickler die gerne an Servern und Backends entwickeln darum. Heute ist eine getrennte Entwicklung auf Grund der meist engen Verzahnung von Client/Frontend und Server meist nicht möglich.
In my last blog post I delved into the state of C2S / ActivityPub API…
https://coding.social/blog/prosocial-web/
And also I keep track of implementations in…
https://codeberg.org/fediverse/delightful-fediverse-experience/issues/130
@mschae Benutzt Lemmy da die C2S Sache aus ActivityPub oder etwas eigenes?
Soweit ich weiß, etwas eigenes. Dass ActivityPub eine C2S-API spezifiert, wusste ich tatsächlich gar nicht.
@feb Ich glaube das es einer der Probleme von AP ist das die Spezifikationen zu viel Spielraum lassen und dadurch lange jedes Projekt sich viel nach eigenen Gusto stricken konnte ohne das ganze Fediverse mitzudenken. Klar hat das viel Innovatives gebracht, aber eben auch gewissen Probleme.
@sascha GoToSocial erfüllt die Kriterien doch … da nutzt man die Weboberfläche nur für die Einstellungen.
Für die persönliche Timeline, Beiträge schreiben, Antworten und ähnliche Interaktionen nutzt man einen separaten Client – eine App oder ein zusätzliches Webfrontend.
@oldkid Es dreht sich nicht nur um die Trennung zwischen Server und Client/Frontend, sondern um eine einheitliche Schnittstelle zwischen beiden, so das für jeden Server jede Client/Frontend das die Schnittstelle unterstützt werden kann.
Ich kann auf meine GtS-Instanz mit mindestens 6 verschiedenen von mir mal getesteten Clients zugreifen. Irgendeine Art von “standardisierter Schnittstelle” scheint es da also zu geben.
Ich hab hier einen Blog Post zu dem Thema gefunden wie man c2s umsetzen kann. So wie ich das verstehe erreicht man mit c2s entweder nichts, oder man macht alles fünf mal so kompliziert wenn man so Sachen wie Mehrnutzerinstanzen oder Moderation behalten möchte, damit…? man Emojireaktionen setzen kann ohne das der Server das explizit unterstützt?
@waldfee Ich denke das eine konsequente Umsetzung auf c2s vor allen ein Paradigmenwechsel wäre. Was die Moderation betrifft so kann man sicher auch alles über ein Frontend für den Server Admin machen, nur macht das bei diesem Ansatz eben nicht mehr so viel Sinn. Also gibt man die entsprechenden Rechte komplett in die Hände die User und die blocken wie aktuell auch die User und Server die ihnen auf die Nerven gehen. Was Lokale Gemeinschaften betrifft stimme ich Dir zu, die währen dann wohn nicht mehr Serverbasiert, sondern Gemeinschaften würden über Servergrenzen hinweg bestehen. Sie würden auch nicht automatisch verschwinden wenn ein Server für immer off geht. Derzeit ist wie Matthias weiter oben angerissen und wie ich es verstanden habe bei den Spezifikationen noch vieles offen, was wohl spezifiziert und genauer gefasst werden müsste. Aber ich habe Hoffnung das auch das kommen wird.
Das hört sich so an als wolle man das Usenet neuerfinden, nur das man noch Blocklisten abonnieren kann. Letztere wären aber tatsächlich sinnvoll
@waldfee Naja Dezentralität ist eines der Ziele des Fediverse, C2S kann das massiv voran bringen, bringt aber dafür tiefgreifende Veränderungen mit sich. Blocklists wären in der Tat sinnvoll, wie auch so manches anderes.
@sascha Evan Prodromou ist übrigens seit ein paar Monaten dabei C2S unter dem Begriff “ActivityPub API” wiederzubeleben. Bin gespannt, ob das bei den Projekten großen Anklang finden wird.
@hamiller_friendica @waldfee Hey danke Dir, da werde ich gleich mal ein wenig rein schnuppern. Bei den bestehenden Projekten weiß ich nicht, da diese weitgehend aus monolithischen Blöcken bestehen. Eine c2s API würde je genau das aufsprengen.
@heluecht Hey Michael schön von Dir zu hören/lesen. Eben stand ich ein wenig ratlos for Deiner Antwort weil sie direkt hinter den Erwähnungen steht. Liegt aber evtl. auch am Theme hier.
@sascha @ Fediverse @dach - Deutschsprachige Community für Deutschland, Österreich, Schweiz Friendica unterstützt C2S.
Gibt es den schon Clienten die mit C2S arbeiten?








