Overzicht van het AT Protocol-datamodel
Repositories in het AT Protocol gebruiken een content-addressable datastructuur. Voor het opslaan, overdragen en verifiëren van data worden de volgende elementen gebruikt.CBOR
DeCBOR-klasse biedt encoding en decoding in het DAG-CBOR-formaat dat het AT Protocol gebruikt. Als uitbreiding op standaard CBOR worden CID-links (tag 42) ondersteund.
Encoden
Decoden
Gebruik
Als je de CID van een post handmatig wilt berekenen of verifiëren, heb je CBOR-encoding nodig (zie ook de verify-pagina).CID (Content Identifier)
Een CID is een zelfbeschrijvende identifier op basis van de hash van data. In het AT Protocol wordt een SHA-256-hash verpakt in een multihash en vervolgens geëncodeerd met multicodec en multibase.CIDv0 en CIDv1
Belangrijkste API
CAR (Content Addressable aRchive)
Een CAR-bestand is een binair formaat dat een AT Protocol-repository opslaat als een reeks blokken. Data die je ophaalt metcom.atproto.sync.getRepo heeft dit formaat.
Decoden
Signed Commits verifiëren
Om te controleren of een CAR-bestand echt van een bepaalde gebruiker is, verifieer je de handtekening van de Signed Commit met de publieke sleutel uit het DID Document.TID (Timestamp Identifier)
Een TID is een chronologisch ID dat wordt gebruikt als recordsleutel in het AT Protocol. Het combineert een timestamp in microseconden met een clock-ID en encodeert dit in base32 tot een string van 13 tekens.Genereren en converteren
De structuur van een TID
MetTID::s32encode() en TID::s32decode() kun je heen en weer converteren tussen integers en strings.
Varint (integer met variabele lengte)
Varint is een interne utility die wordt gebruikt bij het binair parsen van CAR/CBOR. Normaal gebruik je deze niet rechtstreeks.
Over het mocken van Core-functionaliteit
De Core-functionaliteit (CBOR/CID/CAR/TID) doet geen externe aanroepen, dus je hoeft er in tests niets voor te mocken.Referenties
Source: src/Core/