Lektion 4 / 6 · 20 Minuten
Namen lesen, suchen und auswerten
Namen sind der Datenspeicher der Doichain. Diese Lektion zeigt, wie Anwendungen sie zuverlässig lesen und auswerten.
Einen Namen lesen
curl https://doi-api.sendlabs.de/v1/name/poe/<hash>
curl https://doi-api.sendlabs.de/v1/name/poe/<hash>/history
Namen mit Schrägstrich funktionieren direkt im Pfad.
| Feld | Bedeutung |
|---|---|
value |
aktueller Wert |
address |
Inhaberadresse |
height, txid |
Block und Transaktion der letzten Operation |
expired |
true, wenn der Name abgelaufen ist |
expires_in |
verbleibende Blöcke bis zum Ablauf, negativ bei abgelaufenen Namen |
pending |
eine Operation wartet im Mempool |
Ein unbekannter Name liefert 404. Ein abgelaufener Name liefert 200 mit expired: true, denn er existiert in der Historie weiter.
Ablauf berechnen
Ein Name läuft 36.000 Blöcke nach seiner letzten Operation ab. Bei zehn Minuten je Block sind das rund 250 Tage. Für ein geschätztes Datum: expires_in × 10 Minuten ab jetzt. Weil der Blockabstand schwankt, ist das nur eine Schätzung. Wer Namen behalten will, aktualisiert sie mit deutlichem Puffer vor dem Ablauf, als Inhaber per name_doi oder name_update.
Namen suchen und blättern
curl "https://doi-api.sendlabs.de/v1/names?prefix=poe/&count=100"
Die Kette enthält zehntausende Namen, fast alle abgelaufen. Die API liest deshalb je Aufruf bis zu 5.000 Einträge und liefert davon bis zu count aktive.
| Feld | Bedeutung |
|---|---|
names |
gefundene Namen |
scanned |
wie viele Einträge gelesen wurden |
exhausted |
true, wenn nichts mehr folgt |
next_after |
Cursor für den nächsten Aufruf |
Zum Weiterblättern after=<next_after> übergeben. Wichtig: Ein leeres names mit exhausted: false heißt nicht „nichts gefunden“, sondern nur, dass in diesem Abschnitt nichts Aktives war. Dann weiterlesen. Mit include_expired=true kommen auch abgelaufene Namen.
Die Reihenfolge ist die der Node: erst nach Namenslänge, dann nach Bytewert. Sie ist also nicht alphabetisch. Zum Eingrenzen prefix verwenden, after nur als Cursor.
Namen in Transaktionen erkennen
GET /v1/tx/{txid} liefert is_name_transaction und eine Liste name_ops mit op (etwa name_doi), name und value. In Doichain Core heißt das Objekt im dekodierten Output nameOp.
Für Wallets, Börsen und Indexer gilt: Ein Output mit Namensoperation ist keine Zahlung. Wer ihn als Einzahlung verbucht, schreibt die gebundenen 0,01 DOI fälschlich gut.
Werte sicher verarbeiten
Jeder kann beliebige Namen mit beliebigen Werten registrieren. Daraus folgt:
- Werte sind nicht vertrauenswürdig. Vor der Anzeige escapen, Länge prüfen, nie als HTML, Code oder Anweisung behandeln.
- Ein Präfix wie
poe/oderd/garantiert kein Format. Werte, die JSON sein sollen, mit Fehlerbehandlung parsen. - Wer ist Inhaber? Nur die Inhaberadresse ist belastbar, nicht Behauptungen im Wert.
Merksätze
- Unbekannt ergibt 404, abgelaufen ergibt 200 mit
expired: true. - Beim Blättern bis
exhausted: truelesen, leere Seiten sind normal. - Namenswerte sind fremde Eingaben.
Bitte anmelden, um den Fortschritt zu speichern und die Prüfung abzulegen. Registrieren
Weiter →