跳到主要內容

核心概念

本節深入探討驅動 @blocklet/did-space-js SDK 的基本原則和架構模式。理解這些概念將有助於您更有效地使用此程式庫,並更自信地排解問題。此 SDK 建立在三大支柱之上:穩健的命令模式、靈活的驗證方法和安全的請求簽章機制。

命令模式

此 SDK 不在主要的 SpaceClient 物件上設置數十個方法,而是採用了命令模式。此設計選擇提供了一個簡潔且可擴展的架構。

其運作方式如下:

  1. 封裝

    每個獨立的操作(例如上傳檔案或列出目錄)都被封裝到其自身的 Command 類別中。舉例來說,要上傳檔案,您會使用 PutObjectCommand

  2. 標準化

    每個命令都有一個標準化的結構,接受一個 input 物件作為其參數,並回傳一個結構化的 output 物件。

  3. 執行

    SpaceClient 作為一個通用的執行器。您建立一個命令的實例,然後將其傳遞給 client.send() 方法,該方法會處理驗證、請求簽章和 HTTP 通訊的底層邏輯。

這種關注點分離——命令定義做什麼而客戶端處理如何做——使得 SDK 變得可預測且易於擴展。

Core Concepts

客戶端初始化與驗證

在傳送任何命令之前,您必須使用適當的設定和驗證憑證來初始化一個 SpaceClient 實例。此 SDK 的設計非常靈活,支援多種驗證策略以適應不同的使用情境,從伺服器端應用程式到客戶端元件。

設定客戶端的主要方式是透過傳遞給其建構函式的 SpaceClientOptions 物件。該物件指定了目標 DID Space 以及存取它所需的憑證。

客戶端初始化與驗證

了解初始化 SpaceClient 的不同方法,包括使用錢包、私鑰或授權權杖。

設計安全:請求簽章

安全是 DID Space 的基石。由 SDK 傳送的每個 API 請求都經過加密簽章,以確保其真實性和完整性。這可以防止未經授權的存取以及傳輸中的資料被竄改。

以下是此過程的概要說明:

  1. 當您呼叫 client.send(command) 時,SDK 會建構完整的 HTTP 請求。
  2. 接著,它會透過雜湊請求的內容(URL、方法、內文)並使用您錢包中的私鑰對該雜湊值進行簽章,為該特定請求建立一個獨特的數位簽章。
  3. 此簽章連同您的公鑰,會作為請求標頭的一部分傳送。
  4. DID Space 伺服器接收到請求後,會在其端重新計算簽章,並使用您的公鑰驗證其與您傳送的簽章是否相符。

如果簽章相符,伺服器就知道該請求是真實的且來自您。如果不符,它會拒絕該請求。

請求簽章

深入了解安全模型,探索請求如何經過加密簽章和驗證,以保證資料完整性。

後續步驟

現在您對核心概念有了概要的理解,可以更詳細地探索它們,或轉向實用指南。