官方 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": "https://w3id.org/did/v1",
"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/ddc-kong-gateway
节点网关接入说明,请参考:
中移链
中移链节点部署说明,请参考:
文昌链
文昌链节点部署说明,请参考:
泰安链
泰安链节点部署说明,请参考:
DDC 平台方由于没有部署在本地运行的开放联盟链节点,需通过 BSN 联盟提供的官方 DDC 开放联盟链网关与各个开放联盟链接点交互,请参考官方 DDC 开放联盟链网关接入说明:
官方 DDC 开放联盟链网关
(仅对 DDC 平台方用)
文昌链:
https://bsnbase.com/static/tmpFile/bzsc/openper/7-3-1.html
武汉链:
https://bsnbase.com/static/tmpFile/bzsc/openper/7-3-3.html
泰安链:
https://bsnbase.com/static/tmpFile/bzsc/openper/7-3-2.html
中移链:
https://bsnbase.com/static/tmpFile/bzsc/openper/7-3-6.html
遵义链:
https://ccn.bsnbase.com/static/tmpFile/bzsc/Guide/3-3.html
内容引用于《BSN-DDC 基础网络帮助手册》,手册版本号:2.2.1,修订时间:2023-04
-END-