Diese Website wurde größtenteils automatisch von der englischen Version übersetzt.
Wir entschuldigen uns für eventuelle Übersetzungsfehler.
x
Service-Verzeichnis
Das Dienstverzeichnis ist eine zentrale Datenbank, die
Informationen über alle Betreiber im Hyper-Ökosystem enthält. Es
enthält Informationen darüber, wie die Betreiber erreicht werden
können und welche Dienste sie anbieten.
Mit Hilfe des Verzeichnisses können Hyper-Server feststellen, ob
und wie sie sich mit einem anderen Betreiber verbinden können.
Betreiber, die nur über ausgehende Verbindungen verfügen (z.B.
ga-leipzig im obigen Beispiel), können das Verzeichnis
nutzen, um zu erfahren, dass sie möglicherweise asynchrone
Antworten von anderen Betreibern erhalten (z.B. ls-1)
und dann ausgehende Verbindungen zu diesen Betreibern öffnen, über
die sie Antworten erhalten können. Hyper-Server können das
Dienstverzeichnis auch verwenden, um festzustellen, ob sie eine
Nachricht von einem bestimmten Betreiber annehmen sollen.
Das Dienstverzeichnis implementiert einen gruppenbasierten
Berechtigungsmechanismus. Derzeit gibt es nur yes/no
Berechtigungen (d.h. ein Mitglied einer bestimmten Gruppe kann eine
bestimmte Dienstmethode entweder aufrufen oder nicht). Feiner
abgestufte Berechtigungen (z.B. kann ein Anbieter von
Kontaktverfolgungen nur seine eigenen Einträge im Dienst
"Standorte" bearbeiten) müssen von den Diensten selbst
implementiert werden. Zu diesem Zweck stellt der Hyper-Server den
Diensten Informationen über die aufrufende Gegenstelle über einen
speziellen Parameter (_caller) zur Verfügung, der
zusammen mit den anderen RPC-Methodenparametern übergeben wird.
Diese Struktur enthält auch den aktuellen Eintrag des Aufrufers aus
dem Dienstverzeichnis, so dass der aufgerufene Dienst den Aufrufer
leicht identifizieren und autorisieren kann.
Dienstverzeichnis-API
Das Hyper-Server-Paket bietet auch einen sd
API-Server-Befehl, der einen JSON-RPC-Server öffnet, der das
Dienstverzeichnis verteilt.
SD_SETTINGS=settings/dev/roles/sd-1sdrun
Standardmäßig werden damit Änderungsdatensätze in einer Datei
gespeichert und abgerufen, die sich unter
/tmp/service-directory.records befindet. Um das
Dienstverzeichnis zurückzusetzen, löschen Sie einfach diese
Datei.
Signatur-Schema
Alle Änderungen im Dienstverzeichnis werden kryptografisch
signiert. Dazu verfügt jeder Akteur im Hyper-System über ein Paar
ECDSA-Schlüssel und ein dazugehöriges Zertifikat. Das
Dienstverzeichnis ist aus einer Reihe von
Änderungsdatensätzen aufgebaut. Jeder
Änderungssatz enthält den Namen eines Akteurs,
einen Abschnitt und die eigentlichen Daten, die
geändert werden sollen.
Einreichen von Änderungsdatensätzen
Änderungsdatensätze können über die JSON-RPC-API an das
Dienstverzeichnis übermittelt werden. Die hyper CLI
bietet dafür eine Funktion über die sd
submit-records:
Warnung: Dadurch werden alle vorherigen
Datensätze aus dem Dienstverzeichnis gelöscht. Nur Bediener mit
einer sd-admin Rolle können dies tun.
Abrufen von Einträgen und Datensätzen
Um Änderungsdatensätze und -einträge von der
Dienstverzeichnis-API abzurufen, können Sie die RPC-Aufrufe
getRecords(since), getEntries() und
getEntry(name) verwenden, z. B. wie folgt:
Das Tool sdh enthält einen Befehl
sign, mit dem wir beliebige JSON-Daten signieren
können. Er verwendet die Signaturen, die mit dem Befehl make
certs Make erzeugt werden. Um zum Beispiel eine JSON-Datei
zu signieren, verwenden Sie einfach
# define the SD settings
export SD_SETTINGS=settings/dev/roles/private-proxy-1/sdh
#sign a service directory entry
sdh sign settings/dev/roles/private-proxy-1/sdh/entry.json
Bevor wir solche Daten importieren, können wir die Signatur mit
dem Befehl verify überprüfen (Sie müssen die erwartete
name des Unterzeichners angeben):
Service-Verzeichnis
Das Dienstverzeichnis ist eine zentrale Datenbank, die Informationen über alle Betreiber im Hyper-Ökosystem enthält. Es enthält Informationen darüber, wie die Betreiber erreicht werden können und welche Dienste sie anbieten.
Mit Hilfe des Verzeichnisses können Hyper-Server feststellen, ob und wie sie sich mit einem anderen Betreiber verbinden können. Betreiber, die nur über ausgehende Verbindungen verfügen (z.B.
ga-leipzig
im obigen Beispiel), können das Verzeichnis nutzen, um zu erfahren, dass sie möglicherweise asynchrone Antworten von anderen Betreibern erhalten (z.B.ls-1
) und dann ausgehende Verbindungen zu diesen Betreibern öffnen, über die sie Antworten erhalten können. Hyper-Server können das Dienstverzeichnis auch verwenden, um festzustellen, ob sie eine Nachricht von einem bestimmten Betreiber annehmen sollen.Das Dienstverzeichnis implementiert einen gruppenbasierten Berechtigungsmechanismus. Derzeit gibt es nur
yes/no
Berechtigungen (d.h. ein Mitglied einer bestimmten Gruppe kann eine bestimmte Dienstmethode entweder aufrufen oder nicht). Feiner abgestufte Berechtigungen (z.B. kann ein Anbieter von Kontaktverfolgungen nur seine eigenen Einträge im Dienst "Standorte" bearbeiten) müssen von den Diensten selbst implementiert werden. Zu diesem Zweck stellt der Hyper-Server den Diensten Informationen über die aufrufende Gegenstelle über einen speziellen Parameter (_caller
) zur Verfügung, der zusammen mit den anderen RPC-Methodenparametern übergeben wird. Diese Struktur enthält auch den aktuellen Eintrag des Aufrufers aus dem Dienstverzeichnis, so dass der aufgerufene Dienst den Aufrufer leicht identifizieren und autorisieren kann.Dienstverzeichnis-API
Das Hyper-Server-Paket bietet auch einen
sd
API-Server-Befehl, der einen JSON-RPC-Server öffnet, der das Dienstverzeichnis verteilt.Standardmäßig werden damit Änderungsdatensätze in einer Datei gespeichert und abgerufen, die sich unter
/tmp/service-directory.records
befindet. Um das Dienstverzeichnis zurückzusetzen, löschen Sie einfach diese Datei.Signatur-Schema
Alle Änderungen im Dienstverzeichnis werden kryptografisch signiert. Dazu verfügt jeder Akteur im Hyper-System über ein Paar ECDSA-Schlüssel und ein dazugehöriges Zertifikat. Das Dienstverzeichnis ist aus einer Reihe von Änderungsdatensätzen aufgebaut. Jeder Änderungssatz enthält den Namen eines Akteurs, einen Abschnitt und die eigentlichen Daten, die geändert werden sollen.
Einreichen von Änderungsdatensätzen
Änderungsdatensätze können über die JSON-RPC-API an das Dienstverzeichnis übermittelt werden. Die
hyper
CLI bietet dafür eine Funktion über diesd submit-records
:Sie können das Dienstverzeichnis auch zurücksetzen, indem Sie das Flag
--reset
angeben:Warnung: Dadurch werden alle vorherigen Datensätze aus dem Dienstverzeichnis gelöscht. Nur Bediener mit einer
sd-admin
Rolle können dies tun.Abrufen von Einträgen und Datensätzen
Um Änderungsdatensätze und -einträge von der Dienstverzeichnis-API abzurufen, können Sie die RPC-Aufrufe
getRecords(since)
,getEntries()
undgetEntry(name)
verwenden, z. B. wie folgt:Signierdaten
Das Tool
sdh
enthält einen Befehlsign
, mit dem wir beliebige JSON-Daten signieren können. Er verwendet die Signaturen, die mit dem Befehlmake certs
Make erzeugt werden. Um zum Beispiel eine JSON-Datei zu signieren, verwenden Sie einfachDie Ausgabe sollte z. B. so aussehen:
Bevor wir solche Daten importieren, können wir die Signatur mit dem Befehl
verify
überprüfen (Sie müssen die erwartetename
des Unterzeichners angeben):Wenn die Signatur gültig ist, lautet der Exit-Code
0
, andernfalls1
.