Skip to main content


Fedi aufsplitten in Clients und Server ?


Bild/Foto

@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 Agent

About 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 is

The 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 graph

The 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 federation

As 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 Vocata

Assuming 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.

https://codeberg.org/Vocata/vocata

This entry was edited (3 weeks ago)

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.

„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 ja gut - es ist glaube ich bei solid so: Man kann die Identität von einem auf den andern Sever portieren aber sie kann immer nur auf einem Sever existieren - also z.B. nicht gleichzeitig auf zweit als Backup oder so. Schmiert der eine Sever ab ist deine Identität weg. Die Solid Identität existiert nicht auf deinen Endgeräten, oder?
Ich gehe stark davon aus, dass es möglich ist, eine Kopie seines Pods lokal zu speichern und bei Bedarf dann wieder bei einem anderen Provider zu hosten. Wenn Du denn Deinem Provider nicht vertraust, dass der verantwortungsvoll damit umgeht.

@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 🎸🚴@𝓒𝓱𝓻𝓲𝓼

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.

This entry was edited (3 weeks ago)

@Reiner Jung

"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."

dann wäre man bei #nostr angelangt, oder?

@𝓒𝓱𝓻𝓲𝓼@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:

"In der Summe scheint dort die nomadische Identität inkompatibel mit einer klassischen Identität zu sein;"

@𝓒𝓱𝓻𝓲𝓼 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.

@Admin Istrator du redest von zot und nomad... und ich verstehe noch nicht warum sich eine
"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.

This entry was edited (2 weeks ago)

@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

This entry was edited (2 weeks ago)
@𝓒𝓱𝓻𝓲𝓼 Hmm. Gleichzeitig auch eine gute Idee ;)

@𝓒𝓱𝓻𝓲𝓼 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.

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.


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


Geht nicht, gibt's nicht - Geklonte Benutzerkonten


Ein außergewöhnliches Alleinstellungsmerkmal von Streams und Hubzilla.

Du kannst Dein Benutzerkonto auf mehrere Server klonen. Klone synchronisieren sich live untereinander - ALLES, Post, Kommentare, Kontakte, Dateien, Termine, Berechtigungen,...

Warum Deine Benutzerkonto klonen?
Live-Backups, Umzug von Server zu Server, Resilienz.

Deine Klone können mit einem Klon Deiner Kontakte kommunizieren.
Dein Kontakt merkt nicht, ob er gerade mit einem Klon oder dem primären Konto kommuniziert, für ihn siehst Du immer gleich aus.

Was ist ein Klon - auf das Wesentliche reduziert?


  • Ein Benutzerkonto ist eine uid (globale eindeutige ID) mit dazugehörigem public-private key.
  • Auf jedem Server gibt es um diesen Kern herum eine weitere Schale mit Namen, Adresse des Kontos usw.
  • Auch alle "Ressourcen" wie Posts, Dateien, Berechtigungen, Webseiten, Termine usw. haben alle eine uid und sind über das gesamte Fediverse eindeutig (was beim Synchronisieren zwischen Klonen ein Muss ist).


Du kannst Dein Benutzerkonto (oder einen Deiner Klone) in eine Datei exportieren.
Vorteil. Selbst, wenn Du Dein primäres Benutzerkonto mit all seinen Klone von allen Servern entfernst, kannst Du später wieder auf einem ganz anderen Server auftauchen, Dein Benutzerkonto von der Datei importieren, inklusive Deiner Kontakte, deren Berechtigungen usw. Für die Kontakte sieht das Konto wie immer aus. Für sie warst Du nur kurz weg.

Inhalt des Videos
00:00 Klone laufen seit Jahren stabil "in Produktion"
00:30 Erkannte Gesichter synchronisieren sich zwischen Klonen
02:35 Hochgeladene Bilder synchronisieren sich
03:35 Berechtigungen synchronisieren sich
04:55 Der Klon erkennt das neue Gesicht im gerade hochgeladenen (und synchronisierten) Bild
05:25 Posts synchronisieren sich
05:50 ...am Beispiel einer Direktnachricht eines Kontaktes
06:20 Die Kommentare synchronisieren sich
07:00 Klon-Adressen verwalten