BSN-DDC基础网络详解(十):官方DDC应用SDK

news2024/11/27 20:30:00

官方 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

节点网关接入说明,请参考:

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 平台方用)

文昌链:

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-

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/471096.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

基于DSP+FPGA+ADS1282支持31Bit高精度数据采集方案(一)

3.1 系统需求分析 3.1.1 系统功能设计要求 本硬件处理平台的主要任务有三类,一是数据采集,包括采集惯性测量元件 的输出信号,接收外部系统校正信息,如 GPS 信息等;二是数据处理与计算,包 括惯性测量…

如何实现自动化按图片搜索淘宝商品(拍立淘)功能?拍立淘API接口item_search_img

我们都知道淘宝平台推出了拍立淘功能,如果大家遇到了自己喜欢的商品,就可以拍一张照片,在淘宝用拍立淘搜索就能够出现相似的同款,这样就不用再去找别人要链接了。淘宝拍立淘主要是通过图片识别来找相似主图的宝贝,那么…

基于JavaSpringmvc+myabtis+html的鲜花商城系统设计和实现

基于JavaSpringmvcmyabtishtml的鲜花商城系统设计和实现 博主介绍:5年java开发经验,专注Java开发、定制、远程、指导等,csdn特邀作者、专注于Java技术领域 作者主页 超级帅帅吴 Java项目精品实战案例《500套》 欢迎点赞 收藏 ⭐留言 文末获取源码联系方式…

分布式的流处理平台Kafka

目录: 一、简介二、基本概念三、生产者使用详解四、发送消息五、消费者代码示例 一、简介 ApacheKafka 是一个分布式的流处理平台。它具有以下特点: 支持消息的发布和订阅,类似于 RabbtMQ、ActiveMQ 等消息队列;支持数据实时处理…

从零开始实现VAE和CVAE

扩散模型可以看作是一个层次很深的VAE(变分自编码器),前向(forward,或者译为正向)的过程,通过在多个尺度上添加噪声来逐步扰乱数据分布;然后是反向的过程,去学习如何恢复数据结构,上…

喜报 | 国家发明专利证书! 再添2项!

​近日,擎创科技自主研发的《一种基于倒序表的实时日志聚类分析方法》以及《一种基于社区检测的运维告警场景生成方法》正式获得国家颁发的发明专利证书!擎创的专业性、自主性、创新能力、技术水平以及研发实力在得到了确切的肯定。 作为智能运维领域领先…

DJ4-5 路由算法:LS 和 DV

目录 一、迪杰斯特拉算法 1. 术语定义 2. 算法描述 3. 举例说明 4. 构建从源节点到目的节点的路径 5. 构建最低费用路径树 6. 构建转发表 二、距离向量路由算法 1. 术语定义 2. 举例说明 3. 距离向量表 4. 更新距离向量表 5. 举例说明 三、距离向量路由算法 PLUS…

多维评测指标解读2022MSU世界编码器大赛结果

是极致性能,更是最佳商用。 19项第一之上,是63%的极致带宽降低 近日,2022 MSU世界视频编码器大赛成绩正式揭晓。报告显示,阿里媒体处理服务MPS(Alibaba Media Processing Service)s264及s265编码器共计斩获…

【黑马旅游案例记录(结合ES)】

黑马旅游案例记录 11.9.黑马旅游案例11.9.1.酒店搜索和分页11.9.1.1.需求分析11.9.1.2.定义实体类11.9.1.3.定义controller11.9.1.4.实现搜索业务 11.9.2.酒店结果过滤11.9.2.1.需求分析11.9.2.2.修改实体类11.9.2.3.修改搜索业务 11.9.3.我周边的酒店11.9.3.1.需求分析11.9.3.…

10 【Sass语法介绍-继承】

1.前言 在我们编写样式的时候,很多情况下我们几个不同的类会有相同的样式代码,同时这几个类又有其自己的样式代码,这使我们就可以通过 Sass 提供的继承 extend 来实现。本节内容我们将讲解 Sass 继承的语法以及继承的多重延伸等等&#xff0…

【无功功率控制】连接到无限电网的小型风电场的无功功率控制(Simulink)

💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️座右铭&a…

MongoDB【常用命令】

目录 1:基本常用命令 1.1:演示案例 1.2:数据库操作 1.2.1:选择和创建数据库,查看当前正在使用的数据库命令 1.2.2:数据库的删除 1.3:集合操作 1.3.1:集合的显式创建&#xff0…

安全意识培训:如何提高员工网络安全意识?

随着网络技术的不断发展和应用,网络安全已经成为企业必须关注和重视的问题。尤其是在今天,企业数字化转型的大背景下,网络安全问题日益凸显。对于企业而言,员工是企业安全的第一道防线,提高员工的网络安全意识已经成为…

制作自己的镜像并且推送到docker hub上去。

1、在docker hub(Docker)注册账号:比如我的账号是:zhangyi0833 2、在本机上制作自己已经安装了自己想要的工具的镜像,比如我这里安装了cgdb在centos8上面。通过命令制作自己的镜像: docker commit -m"提交的描述信息" -a"镜像…

如何复刻Midjourney的成功?

AI绘画的大模型和应用非常多,但最有名的非Stable Diffusion和Midjourney莫属,其中,尤其是Midjourney(以下简称MJ),仅11位成员,8个研发人员中的一半都是尚未毕业的本科生,从未融资,成立3年,千万用…

(原创)Flutter基础入门:手把手教你搭建Flutter混合项目:模块代码依赖方式集成

前言 Flutter是Google开源的构建用户界面(UI)工具包 支持在不同平台构建一致的ui效果 但在实际业务中,一般不会整个APP都用纯Flutter开发 尤其一些老的项目,会采用接入Flutter的方式来混合开发 那么今天就主要讲一下如何搭建一个…

外卖app开发流程全解析

外卖app开发是现代餐饮业的一个必备部分。在这个数字化时代,人们更愿意使用手机应用程序来订购食品。因此,为了满足客户需求,餐饮企业需要开发自己的外卖app。 第一步:确定目标受众 在开始外卖app的开发之前,需要确定…

Shiro-721---漏洞复现

漏洞原理 Shiro rememberMe 反序列化远程代码执行漏洞 由于 Apache Shiro cookie 中通过 AES-128-CBC 模式加密的 rememberMe 字段存 在问题,用户可通过 Padding Oracle 加密生成的攻击代码来构造恶意的 rememberMe 字段,并重新请求网站,进…

latex论文排版个人向相关问题记录

很久没更新了,小论文基本都见刊了,记录下之前写论文碰上的latex一些排版问题吧,比较琐碎。 伪代码跨页问题 最开始使用algorithms包来写的伪代码,左边会有大方括号,蛮好看的。 不过使用algorithms包进行伪代码撰写&a…

Java语言----动态顺序表(ArrayList)

目录 一.顺序表 二.顺序表的手动实现 2.1顺序表的创建 2.2.基本功能的实现 2.2.1扩容顺序表 2.2.2 判断顺序表是否为满 2.2.3 判断顺序表是否为空 2.2.4打印顺序表 2.2.5清空顺序表 2.3四大功能的实现 2.3.1增加元素 2.3.2删除元素 2.3.3查找元素 2.3.4更改数据 总代码 &a…