Skip to main content
Core 屬於進階的內部實作。一般貼文、feed 取得、通知等操作不需使用。若要直接操作 AT Protocol 的資料結構時再參考。

AT Protocol 資料模型概觀

AT Protocol 的儲存庫採用內容定址(content-addressed)的資料結構。以下要素會用於資料的儲存、傳輸與驗證。

CBOR

CBOR 類別提供 AT Protocol 採用的 DAG-CBOR 格式編解碼。作為標準 CBOR 的擴充,支援 CID 連結(tag 42)。

編碼

解碼

使用場景

若要手動計算並驗證貼文的 CID,就會需要 CBOR 編碼(另請參考 verify 頁面)。

CID (Content Identifier)

CID 是根據資料雜湊產生的自我描述型識別碼。AT Protocol 會以 multihash 包裹 SHA-256 雜湊,再以 multicodec 與 multibase 進行編碼。

CIDv0 與 CIDv1

主要 API


CAR (Content Addressable aRchive)

CAR 檔是將 AT Protocol 儲存庫以區塊序列儲存的二進位格式。透過 com.atproto.sync.getRepo 取得的資料即為此格式。

解碼

驗證帶有簽章的 Commit

若要確認 CAR 檔是否屬於該使用者,可以 DID Document 中的公鑰驗證 Signed Commit 的簽章。
範例實作:DownloadRepoCommand

TID (Timestamp Identifier)

TID 是用於 AT Protocol record key 的時序 ID。將微秒級的時間戳與 clock ID 結合,並以 base32 編碼為 13 字元字串。

產生與轉換

TID 的結構

透過 TID::s32encode()TID::s32decode() 可在整數與字串間互相轉換。

Varint(可變長度整數)

Varint 是用於 CAR / CBOR 二進位解析的內部工具,通常不會直接使用。

關於 Core 功能的 mock

由於 Core 功能(CBOR/CID/CAR/TID)不涉及外部存取,因此在測試時無需 mock。

參考連結

Source:src/Core/
最後修改於 2026年8月2日