Ceramic 為使用可組合數據構建Web3的應用程序提供了一個去中心化網絡。 Ceramic 的API 使應用程序能夠在可擴展的去中心化數據網絡存儲、修改和檢索數據,同時保持跨應用程序數據的可組合性。
Ceramic 應用程序開發堆棧由下面列出的幾個關鍵組件組成,按從最高級別的框架到最低級別的網絡API 的順序排列。
1. 框架
框架抽象了底層堆棧的大部分複雜性和配置,為開發人員提供了一個進入Ceramic 開發的簡單入口。
Ceramic 最流行的框架是Self.ID SDK,是一個使用可組合的、以用戶為中心的數據構建Ceramic 應用程序的框架。除了為各種開發環境提供完整的Ceramic 設置之外,Self.ID 還允許用戶使用他們現有的區塊鏈錢包進行身份驗證,還包括一些最流行的數據模型,讓您可以與網絡上的數據進行開箱即用的組合,以引導您的應用程序。
2. 中間件
中間件是不屬於Ceramic 核心協議,但為開發人員提供附加功能和便利開發工具的總稱。
Ceramic 最流行的中間件是Glaze 套件,開發人員可以在構建應用程序時與Ceramic 客戶端一起使用。
Glaze 套件包括一組數據模型管理工具、用於基於帳戶的存儲和檢索的運行時工具,以及用於緩存來自網絡的數據的客戶端工具。
3. 數據模型
數據模型是一個或多個數據流的集合,由它們的模式和關係指定,它們定義了Ceramic 上的單個數據結構。數據模型構成了Ceramic 可組合性的基礎。當多個應用程序共用相同的數據模型時,它們可以共用相同的數據。通常,數據模型用於表示應用程序功能,例如社交圖譜或用戶配置文件。
最流行的Ceramic 數據模型可以在Data Models Registry 中找到,這是一個由社區創建的Ceramic 數據模型的開放註冊表。
4. 流
流是Ceramic 網絡上的單個狀態實例。在Ceramic 上創建的每個流都必須指定其流代碼,這是一個腳本,其中包含用於在收到新事務時將流的當前狀態轉換為下一個狀態的處理邏輯。通常,您可以將流代碼視為可重用的狀態處理邏輯,將流視為它生成的各個狀態。
目前Ceramic 支持兩種類型的流:tile 文檔,它存儲帶有模式驗證的可變JSON 文檔,以及CAIP-10 鏈接,它存儲Web3 錢包帳戶和Ceramic 帳戶之間的鏈接。
5. 賬戶
帳戶是Ceramic 上的用戶實體,可以擁有流並向這些流提交交易。 Ceramic賬戶符合去中心化身份基金會(DIF) 概述的標準去中心化標識符(DID) 規範。 DID 非常有用,因為它們可以將Ceramic 帳戶與任何單個Web3 錢包地址或公鑰解綁,允許用戶從一個或多個Web3 錢包帳戶控制同一個Ceramic 帳戶,並在此過程中提供抽像以啟用真正的跨鏈帳戶.
最流行的帳戶客戶端是DID JSON-RPC 客戶端,它提供標準帳戶API,必須與Ceramic 客戶端一起使用,以使經過身份驗證的帳戶能夠在網絡上執行交易。 DID 客戶端目前支持兩種不同的賬戶類型:3ID DID,允許從多個Web3 錢包地址控制一個Ceramic 賬戶,以及Key DID,它只能由一個Web3 錢包地址控制。
6. 客戶端
客戶端庫允許您的應用程序連接到Ceramic 節點。不同的客戶端可能會選擇實現不同的高級、特定於語言的開發人員API。在向Ceramic 節點提交請求之前,客戶端會將這些API 調用轉換為標準Ceramic HTTP API,用於與Ceramic 節點進行實際通信。
Ceramic 上最受歡迎的客戶端是JS HTTP 客戶端,它允許開發人員使用JavaScript 將他們的應用程序連接到Ceramic。
7. 網絡API
Ceramic HTTP API 是Ceramic 的最低級接口。每個客戶端和節點都在後台使用它進行通信。除非應用程序開發人員特別需要使用HTTP,否則大多數人從不需要直接與此API 交互,而是通過對開發人員更友好的客戶端API 訪問它。然而,希望用新語言編寫客戶端的協議開發人員將需要使用此規範。
8.核心協議
CIP-11“身份索引”(通常稱為“IDX”)是一種去中心化身份協議,它使開發人員可以輕鬆構建具有用戶控制流的應用程序來存儲數據,以及發現和利用在第三方應用程序。使用IDX 構建允許用戶以獨立於任何單個應用程序的方式控制其身份和數據,同時允許開發人員構建數據豐富的應用程序,而無需在集中式服務器上保管用戶數據或強制用戶重新創建的糟糕用戶體驗每個應用程序上的相同數據。
IDX 旨在存儲“用戶”數據,因為這是它的主要用例。然而,IDX 可用於存儲由DID 表示的其他類型主體的數據,例如企業、組織、應用程序、資產(NFT) 或設備(IoT)。
DID 兼容性:IDX 不提供DID,但依賴它們來提供分散的、與平台無關的標識符。 IDX 可以使用Ceramic 中支持的任何DID 方法。
基於流的存儲:將用戶或應用程序的數據存儲在Ceramic 上用戶控制的流中。流中的數據可以明文或加密形式存儲。 IDX 創建的流享有Ceramic 網絡提供的可變性、持久性、複製和可用性的所有好處。
身份中心:每當用戶通過IDX 將數據存儲在新流中時,其streamID都會自動註冊到他們的索引中,這是一個單獨的流,用作對其所有數據的引用的單一目錄。該索引使用戶的所有數據關聯都存在於一個位置,這反過來又使任何應用程序都可以通過簡單地查詢其索引來發現有關用戶的所有數據。
公共、語義數據描述:通過IDX 存儲的所有數據都在用戶索引中進行語義描述和組織,允許多個應用程序根據模式和元數據使用相同的數據,而不是用戶首次創建數據時使用的應用程序。
跨應用程序數據可移植性:DID、流、集線器和語義數據描述的組合允許用戶數據以與應用程序無關的方式存儲,並且可以跨不同的應用程序或接口使用。沒有應用程序維護“特殊權限”,因為用戶可以完全控制。
標準接口:IDX 為與所有數據交互提供了標準化的讀/寫API,因此應用程序永遠不會被迫集成一次性API。