分布式数字身份 —— 从创建一个Weidentity数字身份开始
分布式数字身份——创建一个Weidentity数字身份
- 前言
- DID
- Weid
- 前置环境准备
- 基础配置
- FISCO BCOS 链
- 部署 Weidentity 合约
- 部署 Weidentity Rest Serivce
- 使用 Weidentity Python SDK
- 项目分享
- 参考链接
- 总结
- 关于作者
前言
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 weidentityServiceURL = "http://192.168.80.144:6001"
# WeIdentity RestService URLweid = weidentityService(URL)
create_weid = weid.create_weidentity_did()
print(create_weid)
- 轻客户端模式示例
from pyweidentity.weidentityClient import weidentityClient
import randomURL = "http://192.168.80.144:6001"
# WeIdentity RestService URLweid = 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
你也可以通过 github | csdn | @新浪微博 关注我的动态
分布式数字身份 —— 从创建一个Weidentity数字身份开始相关推荐
- c语言计算机猜数字100以内,求一个猜数字C语言代码,要求如下 计算机生成一个100以内的随机数,玩家来猜 记录猜的次数,最后打...
满意答案 itpotato 推荐于 2017.10.09 采纳率:51% 等级:12 已帮助:4600人 /* *百度知道越来越水了,这么简单的题就一个回答 *没见过限定头文件数目的..而且是限 ...
- PHP代码猜数字游戏,js实现一个猜数字游戏
看你需要猜几次才能猜到那个正确的数字! 效果图: 代码如下: 猜数字游戏 window.onload = newgame; //页面载入的时候就开始一个新的游戏 window.onpopstate = ...
- 创建一个集群和探索ProxmoxGUI
创建一个集群和探索ProxmoxGUI ProxmoxVE可以被用于独立地不被部分的一个集群.但为了要真正使用Proxmox在其充分的潜力,一个集群使许多更先进的功能,如为集中管理,高可用性,以及实时 ...
- 倒计时css和js html代码,手把手教你利用CSS和JS创建一个倒数计时器
倒计时功能,在很多地方都会用到,我们平时都习惯去用一些插件来应用,会减少不少的工作量,并且效果也能达到预期. 我今天并不是想分享什么倒计时插件,而是自己写一个简单的倒数计时器,有兴趣的同学可以往下看看 ...
- html+js画一颗心形,用SVG和Vanilla JS框架创建一个“星形变心形”的动画效果
在我写的这篇文章中, 讲述了如何用Vanilla JavaScript使动画顺滑的从一种状态过渡到另一种.最好先看下那篇文章,因为在这篇文章中我们要用到一些那篇文章中讲过的内容.例如例子的演示.各种时 ...
- 使用 SVG 和 JS 创建一个由星形变心形的动画
序言:首先,这是一篇学习 SVG 及 JS 动画不可多得的优秀文章.我非常喜欢 Ana Tudor 写的教程.在她的教程中有大量使用 SVG 制作的图解以及实时交互 DEMO,可以说教程的所有细枝末节 ...
- 用SVG和Vanilla JS框架创建一个“星形变心形”的动画效果
在我写的这篇文章中, 讲述了如何用Vanilla JavaScript使动画顺滑的从一种状态过渡到另一种.最好先看下那篇文章,因为在这篇文章中我们要用到一些那篇文章中讲过的内容.例如例子的演示.各种时 ...
- 创建一个有吸引力的标志
专业的标志是伟大的品牌建设工具,做你的生意多好.这篇文章是一个短暂的美妙艺术参与专业标志制造和提示,选择最好的服务提供者为一个自定义的标识. 有很多教程在互联网上创建一个新的身份描述.徽标和矢量图标志 ...
- python创建数字列表_Python 生成一个从0到n个数字的列表4种方法小结
Python 生成一个从0到n个数字的列表4种方法小结 我就废话不多说了,直接上代码吧! 第一种 def test1(): l = [] for i in range(1000): l = l + [ ...
最新文章
- oracle安装时ins-32031,安装oracle数据库时的报错处理[INS-35172]
- 插入顶部_轻巧的衣领插入技术
- Android中Log信息的输出方法
- 如何使用Callable和FutureTask
- Java面向对象(6)--this关键字使用
- ios app抓包分析
- DevExpress 隐藏Ribbon中barbuttonItem的SuperTip(2)
- 谈谈Linux的栈回溯与妙用
- python打包exe反编译源码_python的exe反编译
- 数学建模上课(一)推导万有引力定律
- pk 打包文件_【旅行】同样是旅行,为啥中国人喜欢拉行李箱,老外喜欢背大包?附干货:行李打包锦囊...
- 一个黑客的投资者指南
- icloud android 日历同步到iphone,Mac的日历事件如何同步到iphone-Mac的日历事件同步到iphone教程 - 河东软件园...
- 苏阳乐队杭州巡演后记
- PLC通讯实现-C#实现三菱PLC通讯(三)
- ln(1+x)和ln(1-x)的麦克劳林级数
- OpenSolaris/Solaris中文FAQ
- 【LeetCode】重复元素相关题目
- 唐宇迪学习笔记4:Python可视化库——Seaborn
- cf1341 Nastya and Door