Fedi aufsplitten in Clients und Server ?
@Klampfradler 🎸🚴 hat ein neues Modell wie das Fediverse in Zukunft funktionieren könnte entworfen.
https://codeberg.org/Vocata/vocata
Clients und Server werden (so wie wir heute z.B. Emails nutzen) in zwei verschiedenen Applikationen aufgeteilt.
Ein Server übernimmt das Speichern und Transportieren und ein davon unabhängig Client übernimmt das Darstellen und Präsentieren des Contents.
Mit einer Identität (die nach meinem Verständnis an den "Vocata" Server gebunden ist ?? ) könnte man also allen möglichen Content mit verschiedenen Clients darstellen - mit einer Identität ohne weiteres Login also gleichzeitig das was Masto, Pixelfed oder Funkwhale kann im Netzwerk mit verschiedenen Clients erledigen. Das wäre super und würde ein "Konstruktionsfehler" des Fedi lösen.
Bleibt das Problem dass dabei eine Identität an EINEN Server gebunden ist 🙁
Wie käme ich von einem Vocata Server zu einem anderen?
Vocata – Vocabulary-Agnostic Transport AgentAbout Vocata and the Fediverse
Vocata is a vocabulary-agnostic ActivityPub server. That means that, in contrast to other server software on the Fediverse, Vocata does not limit what types of content can be handled by it, and how it is presented to users.
As a transport agent, Vocata merely stores and forwards content, and leaves any presentational decisions to a client.
The principle of a transport agent is not new:
In e-mail, an MTA (Mail transport Agent) is responsible for storing and forwarding e-mail, and users use a MUA (Mail User Agent, colloquially: an e-mail program, or webmail) to send and receive mailIn Matrix, a homeserver is responsible for handling the rooms and events of users, and users use any Matrix client to log in to their homeserver
Benefits of separating client and server
The Fediverse, at the time of writing, is build on platforms that blend the ActivityPub protocol with an opinionated presentational layer:
Mastodon offers a micro-blogging platformPixelfed offers a photo community platformPeerTube offers a video hosting and streaming platform…and many more…
All these platforms are, to some extent, interoperable, because they all rely on the ActivityPub protocol. However, they all have a baked-in concept, dictating how content is presented to users, and this unification implies some limitations:
An identity on the Fediverse is inextricably linked with the platform. Identities (e.g. accounts) cannot be ported between platforms. So, if a user wants a microblog-style presentation and a gallery-style presentation, they are forced to use two identities.Client-server interoperability is very limited, because each platform implements its own client-server protocol, considering the presentational concept of the platform
By shifting the Fediverse towards a separation between servers and clients, or transport agents and user agents in e-mail terms, it can overcome these limitations.
Conclusion: What is Vocata?Vocata implements an ActivityPub server, and nothing more. It offers an interface for clients to send and receive content to and from the Fediverse with an identity, and handles federation with other servers on behalf of users.
With an account on a Vocata server, a user gains access to the Fediverse with a chosen identity, and can then use any client to act with that identity.
Technical: What the Fediverse really isThe network that is colloquially called the Fediverse, or more precisely, the network of servers using the ActivityPub protocol, builds on a very well-established foundation.
ActivityStreams: The social graphThe content on the Fediverse, technically defined by the ActivityStreams vocabulary, comprises the social graph.
This social graph is, from an information science perspective, a directed graph, consisting of triple statements describing the relations between its nodes. The concept, as well as the technical implementation employed by ActivityPub, is anything but new: it is the well-known RDF (Resource Description Framework) graph model, which is also the foundation of some established standards and tools on the web:
RSS and Atom for blog and podcast feedsOpenGraph meta-data for websitesOntological databases like WikiData…and many more…
In ActivityStreams, this graph structure is used to model relationships between Actors (users, groups, anyone who does something), Activities (create, update, delete, follow,…) and Objects (notes, attachments, events,…), all of which have unique IRIs (web addresses, colloquially speaking).
If we got hold of all information from all instances on the Fediverse at once, it could be put together in one big, consistend graph.
ActivityPub: Sub-graphs and federationAs the name suggests, the Fediverse is a federated system, which means that it is comprised of several instances that handle parts of it.
Relating this to the concept of the social graph, the implication is that every instance handles a sub-graph of the global social graph.
The role of ActivityPub is to ensure that the sub-graph an insance sees includes all nodes that are relevant for the actors on the instance. For that purpose, objects (actors and activities) can be pulled from other instances (using an HTTP GET request to the URI of the desired node), and pushed (using an HTTP POST request to a special node (an inbox) on another instance).
In every pull and push, an even smaller sub-graph is transferred between instances, containing exactly the nodes and statements relevant to merge the desired object with the other instance's sub-graph (technically, what is transferred is the CBD (Concise Bounded Description) of the object).
To conclude, ActivityPub servers keep pushing and pulling sub-graphs, so-called Concise Bounded Descriptions, of objects that are relevant for their users.
Implementation details of VocataAssuming the graph structure of the Fediverse, Vocata uses rdflib to store its sub-graph. In contrast to other ActivityPub servers, it does not derive its own data structures from the objects it handles, but plainly processes the graph operations defined by the protocol to traverse and transform its sub-graph of the Fediverse.
like this
Martin Schmitz
Verstehe das nicht wirklich. Es ist doch bereits so, dass Client und Server im Fediverse weitgehend unabhängig voneinander agieren. Ich greife hier mit allen möglichen Clients auf meinen Friendica-Server zu, die meisten davon sind eigentlich von den Autoren als reine Mastodon-Clients entworfen worden.
Für die Identität und die eigenen Daten gibt es eigentlich bereits eine relativ ausgereifte, gut durchdachte Lösung, die leider bislang so gut wir nirgends implementiert wurde. DEN Ansatz sollte man meiner Meinung nach unbedingt verfolgen: https://en.wikipedia.org/wiki/Solid_(web_decentralization_project)
𝓒𝓱𝓻𝓲𝓼
•@Martin Schmitz wovon du sprichst läuft über die proprietäre Mato API die erst mal nichts mit AP an sich zu tun hat. Kannst Du über diese Clients etwa auch Peertube nutzen? Eher nicht
Bitte berichte mehr über Solid und sage ob man von einem Server auf den andern wechseln kann? Wer verwaltet die Identität? Alles was hier nicht P2P bzw über das Endgerät läuft taugt nicht wirklich, glaube ich.
Hamiller Friendica likes this.
Martin Schmitz
„With Solid, you won't be tied to the provider you choose now. That is, you have the ability to move your data elsewhere if you want.“
https://solidproject.org/users/get-a-pod
𝓒𝓱𝓻𝓲𝓼
•Martin Schmitz
Hamiller Friendica
•@Martin Schmitz Richtig, aber alle diese Plattformen haben auch eine eigene und spezifische Web-Oberfläche und ich gehe davon aus, dass diese in dem Post gemeint sind.
Vocata scheint als reines Backend ohne eigenes User-Interface geplant zu sein.
@Klampfradler 🎸🚴@𝓒𝓱𝓻𝓲𝓼
Martin Schmitz likes this.
Reiner Jung
•sehr interessant. Ich würde das #Fediverse aber eher als Peer-to-Peer Netz sehen mit zwei Node-Ebenen. Und unterschiedlichen Node Typen für bestimmte Aufgaben.
In dem Vorschlag gäbe es dann anstelle von Mastodon und Pixelfed Nodes nur noch Vocata Transport Nodes und verschiedene Präsentation Nodes als Dienst wie auch als App.
𝓒𝓱𝓻𝓲𝓼
•@Reiner Jung
dann wäre man bei #nostr angelangt, oder?
Hamiller Friendica likes this.
Admin Istrator
•@𝓒𝓱𝓻𝓲𝓼@Klampfradler 🎸🚴
Das Problem mit der Serverbindung existiert auch bei der Email: USER@SERV.ER
Nichtsdestotrotz ist das lösbar und wurde schon vor über einem Jahrzehnt gelöst, in Freenet. Dort ist eine Identiät nur ein zufälliger langer Hash mit Publik/Private Crypto obendrauf. Und damit einher geht eine komplette Trennung von Idenditäten und 'Angeboten' sowie Servern. Alle Server sind ein Pool, der Pool enthält 'Angebote' wie Foren, Webweite, ... und Identitäten können (nach Rechtesystem) 'Angebote' erzeugen oder darin schreiben.
Das ist recht komplex und hat ein paar Jahre gedauert bis das in einem Client - den auch Normalos verstehen können - zusammen gelaufen ist. Der Client hieß: Frost - falls sich da wer schlau machen möchte.
In der Summe ist das weitgehend in der Versenkung verschwunden, weil es sehr sicher ist, aber leider auch zu komplex für die Anwender und die Java-Basierte Server-Software wegen der ganzen Crypto etwas schwerfällig. Da dauert das schon mal einen Tag bis ein GB durch ist. Frost hat im Messaging Bereich aber schon sehr zeitnahe Kommunikation erlaubt - so im Minuten Takt, aber da hat ja heute niemand mehr die Zeit dafür. 😉
IMHO könnten Teile des Feenet- und Teile des Matrix-Protokolles kombiniert eine moderne, sichere und schnelle Lösung im Sinne eines einheitlichen Protokoll-für-Alles ergeben.
Ist nur ein Haufen Arbeit und wurde nie für das Fediverse bedacht.
Ein schönes Beispiel hierzu ist die Reise von RED zu Hubzilla, zu Z.. da hat der Entwickler die Schwierigkeiten, mit weiteren Entwicklern, durchdekliniert. In der Summe scheint dort die nomadische Identität inkompatibel mit einer klassischen Identität zu sein; was eigentlich auf der Hand liegt und nicht beweist, das es nicht möglich ist beide Welten zu vereinen.
𝓒𝓱𝓻𝓲𝓼
•@Admin Istrator bitte berichte doch noch was mehr über Freenet und Frost.
und was meist du mit:
Admin Istrator
•@𝓒𝓱𝓻𝓲𝓼 Der Hauptinitiator hat das in mehreren Projekten weiterentwickelt bis hin zu Zott und einem Nachfolgeprotokoll? Bin da nicht mehr auf dem laufenden. Eines der Hauptprobleme war/ist halt sich das, was Du zB auf Hubzilla kannst, mit der Definition der Nomadischen Identität, dort nicht verträgt. Ob es primär mit dem Protokoll zusammen hing kann ich nicht sagen. Fakt - für mich- ist aber das eine losgelöste Identität von vornherein anders gehandelt werden muss; und das war dort eben nicht der Fall. Denke da gibt es viel Lesestoff, in alten Foren, Mailinglisten GIT, ...
Ist halt ein Problem, wenn eine Plattform existiert und dann plötzlich das Gegenteil gemacht werden soll. 😕
Ist kein Bashing, die Gesamtleistung ist großartig.
Mit Freenet meine ich das hier https://freenetproject.org/ zu Frost finde ich keinen Link, evtl. im Internetarchiv suchen.
𝓒𝓱𝓻𝓲𝓼
•"Definition der Nomadischen Identität, dort nicht verträgt."
Admin Istrator
— (52.2646577 10.5236066) •@𝓒𝓱𝓻𝓲𝓼 Es ändert sich immer der Hostteil, bei einer Email also der Domainenteil USER@DOMAIN
Eine vollständig lösgelöste Identität bliebe immer gleich: klaus@klausensens
Das ist ein Kern des großen Problemes beim Umziehen des Envirements auf einen anderen Server. Es muss ja sich gestellt sein, das alles anderen genau gar nichts von dem Umzug bemerken.
Ja auf Hubzilla kann die Datenbasis auf andere Server gezogen werden um dann dorthin umzuschalten, aber das ist teuer und es ist hinterher eine neue Adresse und ein paar Sachen sind dann kaputt. (Fragt Mike, ich bin da nur am Rande)
Deswegen hat Mike dann ja noch ein/zwei Nachfolge Projekte gestartet, die im Umfang ihres Könnens auch kleiner ausfallen, weil sich die weggefallenen Teile nicht mit dem was dort als nomadische Identität definiert wird vertragen.
𝓒𝓱𝓻𝓲𝓼
•@Admin Istrator nein nach dem umschalten ist nichts kaputt... eine Identität ist zu 100℅ geclont...
nomad gibt es nur weil mike dinge mit AP in Einklang realisieren möchte
Grischa Test likes this.
_jayrope
•Admin Istrator
•@𝓒𝓱𝓻𝓲𝓼 Vielleicht noch ein Beispielproblem:
Eine losgelöste Identität ist per se erstmal annonym, es braucht jedoch verifizierbare Identiver, und die sollten sich auch austauschen lassen, ohne Sicherungsketten zu brechen, like: Beweis das die Überweisung von Peter@0815 vor 6 Jahren auch stattgefunden hat und auch tatsächlich von der damals gültigen Ident ausgeführt wurde.
Sowas darf nie brechen, nur weil ein Ident zB als ungültig erklärt wurde.
So ein Verfahren ist schön in https://retrosharedocs.readthedocs.io/en/latest/ zu sehen/umgesetzt.
Ein anderes Problem, das damals auch in Freenet zu beobachten war, wie auch einigen weiteren Plattformen: Wenn die Identität vollkommen annonym ist, kommen über kurz oder lang die ganzen Spinner an um das System für sich zu nutzen, bis hin zu Vollpfosten und gemeinen Trollen, welche das Netz mit ihrem ausgekotzen Müll fluten.
Das hat etwa so ein Jahr gedauert bis die Entwickler von Frost (Freenet-Client) ein Verfahren hatten, mit dem sich User davor schützen konnten.
Andere Netzwerke sind daran gleich komplett untergegangen.
Einer von Vielen
•Genau das trifft auch auf Benutzerkonten in Streams und Hubzilla zu, auch schon seit Jahren stabil in Produktion - seltsamerweise praktisch unbemerkt von der Öffentlichkeit.
Einpaar mehr Details hier
https://digitalesparadies.de/channel/forumfaces?mid=https://digitalesparadies.de/item/8b1440e2-b60b-4d75-86cd-c6025c55cf59
forum-faces
2023-05-21 10:23:47