Visión general del modelo de datos de AT Protocol
El repositorio de AT Protocol adopta una estructura de datos direccionable por contenido. Para almacenar, transferir y verificar los datos se emplean los siguientes elementos.CBOR
La claseCBOR ofrece codificación y decodificación en el formato DAG-CBOR que adopta AT Protocol. Como extensión de CBOR estándar, admite enlaces CID (tag 42).
Codificar
Decodificar
Uso
Si quieres calcular o verificar manualmente el CID de una publicación, necesitas la codificación CBOR (ver también la página verify).CID (Content Identifier)
El CID es un identificador autodescriptivo basado en el hash de los datos. En AT Protocol se envuelve el hash SHA-256 con multihash y, adicionalmente, se codifica con multicodec y multibase.CIDv0 y CIDv1
API principal
CAR (Content Addressable aRchive)
El archivo CAR es un formato binario que almacena el repositorio del AT Protocol como una secuencia de bloques. Los datos obtenidos concom.atproto.sync.getRepo vienen en este formato.
Decodificar
Verificación del Signed Commit
Para comprobar que el archivo CAR pertenece a esa persona usuaria, verifica la firma del Signed Commit con la clave pública del DID Document.TID (Timestamp Identifier)
El TID es un ID cronológico que se usa como clave de record en AT Protocol. Combina una marca temporal en microsegundos con un ID de reloj y se codifica en base32 como una cadena de 13 caracteres.Generación y conversión
Estructura del TID
ConTID::s32encode() y TID::s32decode() puedes convertir entre entero y cadena.
Varint (entero de longitud variable)
Varint es una utilidad interna que se usa en el parsing binario de CAR / CBOR. Normalmente no se utiliza directamente.
Sobre el mock de las funciones Core
Las funciones Core (CBOR/CID/CAR/TID) no realizan accesos externos, por lo que no es necesario mockearlas en las pruebas.Enlaces de referencia
Source: src/Core/