BSN-DDC基礎網路詳解(十):官方DDC應用SDK

BSN研習社發表於2023-04-28

官方 SDK 是 BSN 聯盟為平臺方推出的可快速接入 DDC 網路的工具包,目前 DID 和各個開放聯盟鏈的官方 DDC SDK 都使用 Java 語言開發,其它主流語言的 SDK 根據市場反饋我們將陸續增加。如果算力中心方和平臺方的業務系統的開發語言與 SDK 不匹配,可將 JAVA 的 SDK 封裝成本地服務進行呼叫,或參照原始碼進行重構。如果在這方面有任何疑問,可以在專享的技術支援群內向 DDC 網路技術人員諮詢。

01

DID SDK

DID(Decentralized Identity)即分散式數字身份,算力中心方和平臺方僅需註冊一次 DID,所以建議平臺方單獨使用 DID SDK,無需將其整合到業務系統內。

DID 除了 Java 語言開發的 SDK 外,也提供了 HTTP API,平臺方可以參考:

HTTP API

1.接入引數

2.公共引數



3.建立 DID 過程介紹

建立 DID 的過程中會生成公私鑰資訊,為了避免私鑰的遠端傳輸,BSN 數字身份服務不提供建立 DID 的過程,開發者可按下述介紹本地完成開發,或者可以使用、參考 SDK 內的實現過程。

1)透過橢圓曲線演算法 Secp256k1 生成兩對公私鑰資訊;

2)儲存私鑰,指定主備公鑰拼裝 Base DID Document,其內容如下示例:

  {   
  "@context": "
  "authentication":   
  {      
     "type": "Secp256k1",      
     "publicKey": "28986472722394106073871327423452879123214061743224210681401278929598807211140001274507530324221923795865447680836742348963337343510229880669968499735858"   
  }   
     "recovery":
     {
         "type": "Secp256k1",
         "publicKey": "9251971168042915941551574641987721503984542761641852064853964541181378832746959340151297908312616596971625573967556676367696067937171601766581709843378481"   
     }
  }


3)透過 base58(ripemd160(sha256()))演算法生成 DID 識別符號,其格式如下示例:

did:bsn:3wxYHXwAm57grc9JUr2zrPHt9HC

4)拼裝 DID Document 內容,如下示例:

{   
  "did": "did:bsn:3wxYHXwAm57grc9JUr2zrPHt9HC",
  "version": 1, 
  "created": "2021-05-20T16:02:20Z",      
  "updated": "2021-05-20T16:02:20Z",  
  "authentication":  
  { 
  "type": "Secp256k1",
  "publicKey": "28986472722394106073871327423452879123214061743224210681401278929598807211140001274507530324221923795865447680836742348963337343510229880669968499735858"
  }
  "recovery":
  {
  "type": "Secp256k1",
  "publicKey": "9251971168042915941551574641987721503984542761641852064853964541181378832746959340151297908312616596971625573967556676367696067937171601766581709843378481"
  }   
 }


5)使用主私鑰對 DID Document 內容進行 Secp256k1 簽名,最終形成帶有簽名屬性的 DID Document,如下示例:

{   
  "did": "did:bsn:3wxYHXwAm57grc9JUr2zrPHt9HC",
  "version": 1,
  "created": "2021-05-20T16:02:20Z",    
  "updated": "2021-05-20T16:02:20Z",
  "authentication":
  {
  "type": "Secp256k1",
  "publicKey": "28986472722394106073871327423452879123214061743224210681401278929598807211140001274507530324221923795865447680836742348963337343510229880669968499735858"
  }
  "recovery":
  {
  "type": "Secp256k1",
  "publicKey": "9251971168042915941551574641987721503984542761641852064853964541181378832746959340151297908312616596971625573967556676367696067937171601766581709843378481"
  }
  "proof":
  {
  "type": "Secp256k1",
  "creator": "did:bsn:3wxYHXwAm57grc9JUr2zrPHt9HC",
  "signatureValue": "zD5nt+P/Ga/CRG2hJU/SMRXy210CLdvATsxQdPxTEy9Mc9Y0OSFpE3Yu5k2+OjQKVOtu5of9VFbgO3Zljw/vQxs="
  }
}

本地組裝 DID Document 內容後對接 DID Document 上鍊介面完成 DID 的註冊。可參考:

DID Document 上鍊




使用 SDK 註冊 DID 後,返回資料裡便直接生成了 DID 標識(did)和 DID 簽名值(didSign);對接 HTTP API 註冊 DID 後,還需使用主私鑰(authKeyInfo.privateKey)對 DID 標識(did)進行 k1 演算法簽名方可生成 DID 簽名值。

02

官方 DDC 應用 SDK

官方 DDC 應用 SDK 是 BSN 聯盟和各個鏈技術方聯合推出的一個可快速呼叫官方 DDC 合約業務方法的工具,裡面整合封裝了與 DDC 開放聯盟鏈的通訊方法、本地演算法以及官方 DDC 合約的代理類,算力中心方和平臺方都可以透過 DDC SDK 呼叫官方 DDC 合約,並可以基於 DDC SDK 進行定製開發呼叫部署在 DDC 網路中自己的智慧合約。需要注意的是,算力中心方及其應用開發者使用官方 DDC 應用 SDK 進行鏈上交易處理時,需透過算力中心的鏈節點閘道器與部署在算力中心本地的各個開放聯盟鏈節點互動,請參考算力中心鏈節點閘道器接入說明:

算力中心鏈節點

節點閘道器

節點閘道器部署說明,請參考:


節點閘道器接入說明,請參考:

https://github.com/BSN-DDC/Data-Center-Document/blob/main/%E9%93%BE%E8%8A%82%E7%82%B9/%E7%AE%97%E5%8A%9B%E4%B8%AD%E5%BF%83%E8%8A%82%E7%82%B9%E7%BD%91%E5%85%B3%E6%8E%A5%E5%85%A5%E8%AF%B4%E6%98%8E.pdf

中移鏈

中移鏈節點部署說明,請參考:

https://github.com/BSN-DDC/Data-Center-Document/blob/main/%E9%93%BE%E8%8A%82%E7%82%B9/%E4%B8%AD%E7%A7%BB%E9%93%BE%E5%A4%96%E9%83%A8%E8%8A%82%E7%82%B9%E5%85%A5%E7%BD%91%E6%89%8B%E5%86%8C.md

文昌鏈

文昌鏈節點部署說明,請參考:

https://github.com/BSN-DDC/Data-Center-Document/blob/main/%E9%93%BE%E8%8A%82%E7%82%B9/%E6%96%87%E6%98%8C%E9%93%BE%E5%A4%96%E9%83%A8%E8%8A%82%E7%82%B9%E5%85%A5%E7%BD%91%E6%89%8B%E5%86%8C.md

泰安鏈

泰安鏈節點部署說明,請參考:

https://github.com/BSN-DDC/Data-Center-Document/blob/main/%E9%93%BE%E8%8A%82%E7%82%B9/%E6%B3%B0%E5%AE%89%E9%93%BE%E5%A4%96%E9%83%A8%E8%8A%82%E7%82%B9%E5%85%A5%E7%BD%91%E6%89%8B%E5%86%8C.md

DDC 平臺方由於沒有部署在本地執行的開放聯盟鏈節點,需透過 BSN 聯盟提供的官方 DDC 開放聯盟鏈閘道器與各個開放聯盟連結點互動,請參考官方 DDC 開放聯盟鏈閘道器接入說明:

官方 DDC 開放聯盟鏈閘道器

(僅對 DDC 平臺方用)

文昌鏈:


武漢鏈:


泰安鏈:


中移鏈:


遵義鏈:


內容引用於《BSN-DDC 基礎網路幫助手冊》,手冊版本號:2.2.1,修訂時間:2023-04

-END-


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/70012206/viewspace-2949553/,如需轉載,請註明出處,否則將追究法律責任。

相關文章