Skip to main content
Core ist eine tiefgehende interne Implementierung. Für normale Posts, Feed-Abrufe oder Benachrichtigungen wird es nicht benötigt. Ziehen Sie es heran, wenn Sie die Datenstrukturen des AT Protocols direkt manipulieren.

Überblick über das Datenmodell des AT Protocols

Repositorys des AT Protocols nutzen eine content-adressierte Datenstruktur. Für Speicherung, Übertragung und Verifizierung werden folgende Bausteine verwendet.

CBOR

Die Klasse CBOR bietet Encoding/Decoding im DAG-CBOR-Format, das das AT Protocol verwendet. Als Erweiterung des Standard-CBOR unterstützt es CID-Links (Tag 42).

Encoding

Decoding

Anwendungsfall

Wenn Sie die CID eines Posts manuell berechnen oder verifizieren möchten, wird CBOR-Encoding benötigt (siehe auch verify-Seite).

CID (Content Identifier)

Eine CID ist ein selbstbeschreibender Identifier auf Basis des Daten-Hashs. Das AT Protocol wickelt einen SHA-256-Hash in Multihash und codiert ihn zusätzlich mit Multicodec und Multibase.

CIDv0 und CIDv1

Wichtige API


CAR (Content Addressable aRchive)

Eine CAR-Datei ist ein Binärformat, das AT-Protocol-Repositorys als Folge von Blöcken speichert. Die über com.atproto.sync.getRepo abgerufenen Daten liegen in diesem Format vor.

Decoding

Signed Commit verifizieren

Um zu prüfen, ob eine CAR-Datei tatsächlich zu einem bestimmten Nutzer gehört, wird die Signatur des Signed Commit mit dem öffentlichen Schlüssel aus dem DID-Document verifiziert.
Beispielimplementierung: DownloadRepoCommand

TID (Timestamp Identifier)

TID ist eine zeitbasierte ID, die als Record-Key im AT Protocol verwendet wird. Sie kombiniert einen Mikrosekunden-Zeitstempel und eine Clock-ID zu einem 13-stelligen base32-encodierten String.

Erzeugen und Umwandeln

Aufbau einer TID

Mit TID::s32encode() und TID::s32decode() können Sie zwischen Integer und String hin- und herwandeln.

Varint (Variable-Length-Integer)

Varint ist ein internes Utility für die Binäranalyse von CAR/CBOR. Es wird normalerweise nicht direkt verwendet.

Zum Mocken der Core-Funktionen

Da die Core-Funktionen (CBOR/CID/CAR/TID) keine externen Zugriffe durchführen, müssen sie in Tests nicht gemockt werden.

Source: src/Core/
Zuletzt geändert am 13. Juli 2026