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 classeCBOR 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 dacom.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.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
ConTID::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.Link di riferimento
Source: src/Core/