分布式数字身份 —— 从创建一个Weidentity数字身份开始
分布式数字身份——创建一个Weidentity数字身份前言DIDWeid一、weid的部署二、weid rest http 的部署调用1.引入库2.读入数据三、使用 Weidentity Python SDK总结前言DIDWeid什么是 WeIdentity?WeIdentity是一套分布式多中心的技术解决方案,可承载实体对象(人或者物)的现实身份与链上身份的可信映射、以及实现实体对象之间安全的访
分布式数字身份——创建一个Weidentity数字身份
前言
DID
基于区块链技术的分布式数字身份是一种自我主权的、可验证的、新型数字身份。W3C为这种身份定义了“分布式数字身份标识符规范”(Decentralized ID,DID)—— 一种新型的全球标识符。
分布式标识符(DID)的用途包括以下两个方面∶其一,使用标识符来标识 DID
主体(人员,组织,设备,密钥,服务和一般事物)的特定实例;其二,促进实体之
间创建持久加密的专用通道,而无需任何中心化注册机制。它们可以用于诸如凭证交
换和认证。
DID 是将DID对象(DID)与DID 文档(DID Doc)相关联的URL,一个实体可
以具有多个 DID,甚至与另一个实体的每个关系可以关联一个或多个DID(成对假名
和一次性标识符)以保护隐私性,身份所有者通过证明拥有与绑定到该 DID的公钥相
关联的私钥来建立DID的所有权。
一个DID的定义具有以下形式∶"did∶"++“∶”+<method特定
的标识符>
这类似于一种名字空间的表达,通常是实现并注册了特定DID操作
方法的厂商(比如Weidentity的did-method就为weid)名称的缩写,比如 did∶nist∶0x1234abcd。考虑到方便与其它基于Internet 的标
识符一起使用,method特定的标识符通常是 URL 、URI标识符或者账户地址(例如:0xfd28ad212a2de77fee518b4914b8579a40c601fa)。
Weid
什么是 WeIdentity?
WeIdentity是一套分布式多中心的技术解决方案,可承载实体对象(人或者物)的现实身份与链上身份的可信映射、以及实现实体对象之间安全的访问授权与数据交换。WeIdentity由微众银行自主研发并完全开源,秉承公众联盟链整合资源、交换价值、服务公众的理念,致力于成为链接多个垂直行业领域的分布式商业基础设施,促进泛行业、跨机构、跨地域间的身份认证和数据合作。
WeIdentity目前主要包含两大模块:WeIdentity DID以及WeIdentity Credential。
所以我们也可以知道weid是did规范的一种实现方案。
前置环境准备
基础配置
- CentOS/Ubuntu 7.2 / 16.04,64位 部署 RestServer 用
- JDK 1.8+ 推荐使用 1.8u141 及以上
- FISCO-BCOS 节点 1.3.8(即中央仓库的1.2.5)或 2.x 确保它可以和部署 Server 机器互相连通,可 telnet 其 channelPort 端口
- Gradle 4.6+ 同时支持 4.x 和 5.x 版本的 Gradle
- MySQL 5 + 需要MySQL存储必要的链上数据进行缓存
- Python 3 调用 weidentity sdk
FISCO BCOS 链
部署 Weidentity 合约
部署 Weidentity Rest Serivce
请食用官网最新部署文档
部署成功之后,rest service接口成功暴露在 http://ip:6001,自此我们的环境就搭建完成了。
使用 Weidentity Python SDK
经过上文我们获取到了rest service api,自此我们就可以通过python去调用weidentity的接口了。
项目地址:https://github.com/99Kies/Weidentity-Python-SDK
调用示例:
- 获取 weidentity python sdk
pip install pyweidentity
- 托管模式示例
from pyweidentity.weidentityService import weidentityService
URL = "http://192.168.80.144:6001"
# WeIdentity RestService URL
weid = weidentityService(URL)
create_weid = weid.create_weidentity_did()
print(create_weid)
- 轻客户端模式示例
from pyweidentity.weidentityClient import weidentityClient
import random
URL = "http://192.168.80.144:6001"
# WeIdentity RestService URL
weid = weidentityClient(URL)
privKey = "0xc4a116fb87ae9b8b87842b0f46e1bbf71c37fdae1104fd6d3fd2041e23c8c68e"
nonce = str(random.randint(1, 999999999999999999999999999999))
create_weid = weid.create_weidentity_did(privKey, nonce)
print(create_weid)
项目分享
分布式数字身份管理平台:https://github.com/SUIBE-Blockchain/SUIBE_DID_Data_Manager
我们这个项目也是基于weideneity python sdk去实现的一个did管理平台,感兴趣的同志也可以来完善项目哇。
参考链接
https://weidentity.readthedocs.io/zh_CN/latest/README.html
https://weidentity.readthedocs.io/zh_CN/latest/docs/weidentity-rest-api.html
https://tsmatz.wordpress.com/2019/12/24/decentralized-identifiers-did-tutorial/
https://baijiahao.baidu.com/s?id=1670362239120061827&wfr=spider&for=pc
<>
总结
pyweidentity就是在weidentity rest service api上做了一层封装。所以理解起来并不吃力。期待各位python 大大能找出更有趣的项目玩法。
weidentity python sdk 仓库地址:https://github.com/99Kies/Weidentity-Python-SDK#how-to-use
关于作者
作者的联系方式:
微信:thf056
qq:1290017556
邮箱:1290017556@qq.com
开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!
更多推荐
所有评论(0)