Skip to main content
Core è un’implementazione interna avanzata. Non è necessario per le operazioni comuni come post, recupero feed o notifiche. Consultalo quando devi manipolare direttamente le strutture dati di AT Protocol.

Panoramica del modello dati di AT Protocol

Il repository di AT Protocol adotta una struttura dati content-addressable. Per l’archiviazione, il trasferimento e la verifica dei dati vengono usati i seguenti elementi.

CBOR

La classe CBOR fornisce codifica e decodifica nel formato DAG-CBOR adottato da AT Protocol. Come estensione di CBOR standard supporta i link CID (tag 42).

Codifica

Decodifica

Casi d’uso

Se vuoi calcolare o verificare manualmente il CID di un post, ti serve la codifica CBOR (vedi anche la pagina verify).

CID (Content Identifier)

Il CID è un identificatore autodescrittivo basato sull’hash dei dati. In AT Protocol l’hash SHA-256 viene incapsulato in un multihash, e poi codificato con multicodec e multibase.

CIDv0 e CIDv1

API principali


CAR (Content Addressable aRchive)

Un file CAR è un formato binario che archivia il repository di AT Protocol come sequenza di blocchi. I dati ottenuti da com.atproto.sync.getRepo sono in questo formato.

Decodifica

Verifica di un Signed Commit

Per confermare che il file CAR appartenga effettivamente a un dato utente, verifica la firma del Signed Commit con la chiave pubblica del DID Document.
Implementazione di esempio: DownloadRepoCommand

TID (Timestamp Identifier)

TID è l’ID cronologico usato come chiave dei record in AT Protocol. È una stringa di 13 caratteri codificata in base32, composta da un timestamp in microsecondi e da un clock ID.

Generazione e conversione

Struttura del TID

Con TID::s32encode() e TID::s32decode() puoi convertire tra intero e stringa.

Varint (interi a lunghezza variabile)

Varint è un’utility interna usata nel parsing binario di CAR / CBOR. Normalmente non la usi direttamente.

Sul mocking delle funzionalità Core

Le funzionalità Core (CBOR/CID/CAR/TID) non effettuano accessi esterni, quindi non è necessario mockarle nei test.

Source: src/Core/
Ultima modifica il 13 luglio 2026