
Die angebotene Informationsumgebung ist eine Art dezentrale Sozialnetzwerk. Im Gegensatz zu vielen bestehenden Lösungen bietet diese Umgebung jedoch eine Reihe von nützlichen Eigenschaften neben der Dezentralisierung und basiert auf relativ einfachen und standardisierten technischen Lösungen (E-Mail, JSON, Textdateien und ein wenig Blockchain). Dadurch ist es jedem mit grundlegenden Programmierkenntnissen möglich, eigene Dienste für diese Umgebung zu erstellen.
Universelle Identifikationsnummer
In jeder Online-Umgebung sind Benutzer- und Objektidentifikatoren eines der Schlüsselfeatures des Systems.
In diesem Fall fungiert die E-Mail als Benutzeridentifikator, der bereits faktisch zu einem allgemein anerkannten Identifikator für die Authentifizierung auf Websites und anderen Diensten geworden ist (Jabber, OpenID).
Der tatsächliche Benutzeridentifikator in dieser Online-Umgebung ist ein Paar aus Login+Domain, das zur besseren Übersichtlichkeit in einer für die meisten bekannten Form dargestellt wird. Für eine größere Dezentralisierung ist es wünschenswert, dass jeder Benutzer seine eigene Domain hat, was den Prinzipien des Indivweb entspricht, bei dem die Domain als Benutzeridentifikator verwendet wird. In unserem Fall fügt der Benutzer seinen Nicknamen zu seiner Domain hinzu, was es ermöglicht, mehrere Konten auf derselben Domain zu erstellen (zum Beispiel für Freunde) und das Adressierungssystem flexibler gestaltet.
Dieses Format des Benutzeridentifikators ist nicht an ein bestimmtes Netzwerk gebunden. Wenn ein Benutzer seine Daten im TOR-Netzwerk speichert, können Domains in der Zone .onion verwendet werden; wenn es sich um ein Netzwerk mit einem DNS-System auf Basis der Blockchain handelt, dann Domains in der Zone wie .bit. Letztendlich ist das Adressierungsformat der Benutzer und ihrer Daten unabhängig von dem Netzwerk, über das sie übertragen werden (es wird überall die Kombination aus Login+Domain verwendet). Wer die Verwendung von Bitcoin/Ethereum-Adressen als Identifikator wünscht, kann das System entsprechend anpassen, um Pseudo-Email-Adressen des Typs zu verwenden. xaca1b7c8126806f672f9dbee4951527bb0f2c4e4@ethereum.blockchain
Adressierung von Objekten
Diese Online-Umgebung besteht tatsächlich aus einer Sammlung von Objekten, die in strukturierter, maschinenlesbarer Form beschrieben sind, auf andere Objekte verweisen und einem bestimmten Benutzer (E-Mail) oder Projekt/Organisation (Domain) zugeordnet sind.
Als Identifikatoren für Objekte werden URNs im Namensraum urn:opendata verwendet. Beispielsweise hat das Profil eines Benutzers eine Adresse wie:
urn:opendata:profile:user@domain.comEin Kommentar des Benutzers hat eine Adresse wie:
urn:opendata:comment:user@domain.com:08adbed93413782682fd25da77bd93c99dfd0548wobei 08adbed93413782682fd25da77bd93c99dfd0548 — ein zufälliger SHA-1-Hash ist, der als ID des Objekts fungiert, und user@domain.com — der Eigentümer dieses Objekts.
Prinzip der Veröffentlichung von Benutzerdaten
Mit der Verwaltung seiner Domain kann der Benutzer seine Daten und Inhalte relativ einfach veröffentlichen. Im Gegensatz zu Indibeba ist es dafür nicht erforderlich, eine Website mit HTML-Seiten zu erstellen, die semantische Daten integriert haben.
Zum Beispiel werden grundlegende Informationen über den Benutzer in einer Datei datarobots.txt veröffentlicht, die unter einer Adresse wie folgt zu finden ist:
http://55334.ru/konstantin@55334.ru/datarobots.txtUnd hat einen Inhalt in folgendem Format:
Object: user
Services-Enabled: 55334.ru,newethnos.ru
Ethnos: newethnos
Delegate-Tokens: http://55334.ru/konstantin@55334.ru/delegete.txtDas heißt im Grunde — es handelt sich um eine Sammlung von Datenzeilen im Format Schlüssel->Wert, die für jeden mit grundlegenden Programmierkenntnissen einfach zu parsen sind. Und bei Bedarf können die Daten auch mit einem normalen Texteditor bearbeitet werden.
Komplexere Daten (Profil, Kommentar, Beitrag usw.), die eine eigene urn haben — werden als JSON-Objekt über die standardmäßige API (http://opendatahub.org/api_1.0?lang=de) bereitgestellt, die sowohl auf der Domain des Nutzers als auch auf einer externen Webseite liegen kann, der der Nutzer die Speicherung, Veröffentlichung und Bearbeitung seiner Daten delegiert hat (in der Zeile Services-Enabled der Datei datarobots.txt). Über solche externen Dienste wird weiter unten geschrieben.
Einfache Ontologie und JSON
Die Ontologie der Kommunikationsumgebung ist im Vergleich zu den Ontologien branchenspezifischer Wissensdatenbanken relativ einfach. In der Kommunikationsumgebung gibt es einen relativ kleinen Satz standardisierter Objekte (Beitrag, Kommentar, Like, Profil, Bewertung) mit einem vergleichsweise kleinen Satz von Eigenschaften.
Daher genügt es, um Objekte in einer solchen Umgebung zu beschreiben, JSON anstelle des komplexeren XML-Formats zu verwenden (wichtig ist, den niedrigen Eintrittsbereich und die Skalierbarkeit nicht zu vergessen).
Um ein Objekt mit einer uns bekannten urn zu erhalten, muss auf die Benutzer-Domain oder auf Drittanbieter-Services zugegriffen werden, denen der Benutzer die Verwaltung seiner Daten delegiert hat.
In dieser Online-Umgebung hat jede Domain, auf der ein Online-Service existiert, auch ihre eigene datarobots.txt, die unter einer Adresse wie example.com/datarobots.txt mit folgendem Inhalt verfügbar ist:
Object: service
Api: http://newethnos.ru/api
Api-Version: http://opendatahub.org/api_1.0Darüber können wir erfahren, dass die Daten zu einem Objekt unter einer Adresse wie folgt abgerufen werden können:
Das JSON-Objekt hat folgende Struktur:
{
"urn": "urn:opendata:profile:example@55334.ru",
"status": 1,
"message": "Ok",
"timestamp": 1596429631,
"service": "example.com",
"data": {
"name": "John",
"surname": "Gald",
"gender": "male",
"city": "Moscow",
"img": "http://domain.com/image.jpg",
"birthtime": 332467200,
"community_friends": {
"example1@domain.com": "1",
"example2@domain.com": "0.5",
"example3@domain.com": "0.7"
},
"interests_tags": "cars,cats,cinema",
"mental_cards": {
"no_alcohol@main": 8,
"data_accumulation@main": 8,
"open_data@main": 8
}
}
}Servicearchitektur
Drittanbieter-Services sind notwendig, um den Veröffentlichungs- und Suchprozess für Endbenutzer zu vereinfachen.
Eines der zuvor genannten Service-Modelle hilft Benutzern dabei, ihre Daten im Internet zu veröffentlichen. Es gibt viele ähnliche Dienste, die jedem Benutzer eine benutzerfreundliche Oberfläche zur Bearbeitung einer Art von Inhalt (Forum, Blog, Frage-Antwort usw.) bieten. Wenn der Benutzer jedoch Drittanbieter-Services nicht vertraut, kann er ein Datenservice-Skript auf seiner Domain installieren oder selbst entwickeln.
Neben den Services, die Benutzern ermöglichen, Daten online zu veröffentlichen oder zu bearbeiten, gibt es eine Reihe anderer Services, die vergleichsweise komplexe Aufgaben erfüllen, die es für Endbenutzer schwierig ist, sie selbst umzusetzen.
Eine solche Art von Service sind Daten-Hubs ( — ein Beispiel), die als eine Art Webarchiv fungieren, das alle öffentlichen maschinenlesbaren Daten von Benutzern sammelt und über eine API zugänglich macht.
Das Vorhandensein von Diensten in einer so offenen, dezentralen Online-Umgebung senkt die Einstiegshürde für Nutzer erheblich, da keine Notwendigkeit besteht, einen eigenen Knoten zu installieren und zu konfigurieren. Gleichzeitig behält der Nutzer die Kontrolle über seine Daten (er kann jederzeit den Dienst wechseln, dem die Veröffentlichung seiner Daten anvertraut ist, oder seinen eigenen Knoten erstellen).
Wenn der Nutzer überhaupt kein Interesse an der Verwaltung seiner eigenen Daten hat und keinen eigenen Domänen oder keine vertraute Domäne besitzt, werden seine Daten standardmäßig von opendatahub.org verwaltet.
Wer bezahlt das alles?
Das wohl größte Problem nahezu aller ähnlichen dezentralen Projekte ist die Unmöglichkeit ihrer Monetarisierung auf einem Niveau, das für eine stabile Entwicklung und Unterstützung ausreichend ist.
Zur Deckung der Kosten für Entwicklung und Marketing werden in dieser Online-Umgebung Spenden und Tokens verwendet.
Alle Spenden, die Benutzer in interne Projekte/Dienste einzahlen, sind öffentlich zugänglich, maschinenlesbar und an die E-Mail-Adresse gebunden. Dies ermöglicht es, sie beispielsweise bei der Berechnung des sozialen Ratings im Netzwerk zu berücksichtigen und auf den Benutzerseiten zu veröffentlichen. Wenn die Spenden nicht mehr anonym sind, spenden die Benutzer eigentlich nicht, sondern "legen zusammen" zur Unterstützung des gemeinsamen Informationsumfelds. Ähnlich wie Menschen für die Instandhaltung öffentlicher Bereiche zusammenlegen, mit einem entsprechenden Verständnis für diejenigen, die sich weigern, beizutragen.
Zusätzlich zu den Spenden werden zur Mittelbeschaffung Token eingesetzt, die in begrenzter Anzahl (400.000) ausgegeben werden und die allen gutgeschrieben werden, die Spenden in den Hauptfonds (ethnogenesis) einzahlen.
Zusätzliche Token-Funktionen
Jeder Token ist ein "Schlüssel" für den Zugang zu diesem Online-Umfeld. Das heißt, man kann die Dienste nutzen und Teil des Online-Umfelds sein, nur wenn man mindestens 1 Token hat, der an die E-Mail-Adresse gebunden ist.
Tokens sind aufgrund ihrer Begrenztheit ein guter Spam-Filter. Je mehr Nutzer im System sind, desto schwieriger wird es, ein Token zu erhalten, und desto kostenintensiver wird es, Bots zu erstellen.
Menschen, ihre Daten und sozialen Verbindungen sind wichtiger als Technologien.
Die beschriebene Online-Umgebung ist technisch gesehen eine relativ primitive Lösung. Entscheidender sind jedoch nicht die Technologien, sondern die Menschen sowie die sozialen Verbindungen und Daten (Inhalte), die innerhalb dieser Umgebung geschaffen werden.
Die gebildete soziale Gemeinschaft, deren Mitglieder über universelle Identifikatoren (E-Mail und eigene Domain) sowie strukturierte Daten (mit URN-Adressen, Ontologien und JSON-Objekten) verfügen, kann alle diese Daten in eine andere Online-Umgebung übertragen, sobald eine bessere technische Lösung verfügbar ist, und dabei die bestehenden Verbindungen (Bewertungen, Einschätzungen) und Inhalte bewahren.
In diesem Beitrag wird eines der Elemente einer selbstorganisierten Online-Community beschrieben, die neben einer dezentralisierten Online-Umgebung auch verschiedene Offline-Richtungen umfasst, welche den Nutzen der Online-Umgebung erhöhen und als „Auftraggeber“ fungieren, die in vielerlei Hinsicht deren Funktionalität bestimmen. Aber das sind bereits Themen für andere Artikel, die nicht direkt mit IT und Technologien zu tun haben.
Quelle: habr.com
