分布式数字身份——创建一个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

调用示例:

  1. 获取 weidentity python sdk
pip install pyweidentity
  1. 托管模式示例
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)
  1. 轻客户端模式示例
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数字身份开始相关推荐

  1. c语言计算机猜数字100以内,求一个猜数字C语言代码,要求如下 计算机生成一个100以内的随机数,玩家来猜 记录猜的次数,最后打...

    满意答案 itpotato 推荐于 2017.10.09 采纳率:51%    等级:12 已帮助:4600人 /* *百度知道越来越水了,这么简单的题就一个回答 *没见过限定头文件数目的..而且是限 ...

  2. PHP代码猜数字游戏,js实现一个猜数字游戏

    看你需要猜几次才能猜到那个正确的数字! 效果图: 代码如下: 猜数字游戏 window.onload = newgame; //页面载入的时候就开始一个新的游戏 window.onpopstate = ...

  3. 创建一个集群和探索ProxmoxGUI

    创建一个集群和探索ProxmoxGUI ProxmoxVE可以被用于独立地不被部分的一个集群.但为了要真正使用Proxmox在其充分的潜力,一个集群使许多更先进的功能,如为集中管理,高可用性,以及实时 ...

  4. 倒计时css和js html代码,手把手教你利用CSS和JS创建一个倒数计时器

    倒计时功能,在很多地方都会用到,我们平时都习惯去用一些插件来应用,会减少不少的工作量,并且效果也能达到预期. 我今天并不是想分享什么倒计时插件,而是自己写一个简单的倒数计时器,有兴趣的同学可以往下看看 ...

  5. html+js画一颗心形,用SVG和Vanilla JS框架创建一个“星形变心形”的动画效果

    在我写的这篇文章中, 讲述了如何用Vanilla JavaScript使动画顺滑的从一种状态过渡到另一种.最好先看下那篇文章,因为在这篇文章中我们要用到一些那篇文章中讲过的内容.例如例子的演示.各种时 ...

  6. 使用 SVG 和 JS 创建一个由星形变心形的动画

    序言:首先,这是一篇学习 SVG 及 JS 动画不可多得的优秀文章.我非常喜欢 Ana Tudor 写的教程.在她的教程中有大量使用 SVG 制作的图解以及实时交互 DEMO,可以说教程的所有细枝末节 ...

  7. 用SVG和Vanilla JS框架创建一个“星形变心形”的动画效果

    在我写的这篇文章中, 讲述了如何用Vanilla JavaScript使动画顺滑的从一种状态过渡到另一种.最好先看下那篇文章,因为在这篇文章中我们要用到一些那篇文章中讲过的内容.例如例子的演示.各种时 ...

  8. 创建一个有吸引力的标志

    专业的标志是伟大的品牌建设工具,做你的生意多好.这篇文章是一个短暂的美妙艺术参与专业标志制造和提示,选择最好的服务提供者为一个自定义的标识. 有很多教程在互联网上创建一个新的身份描述.徽标和矢量图标志 ...

  9. python创建数字列表_Python 生成一个从0到n个数字的列表4种方法小结

    Python 生成一个从0到n个数字的列表4种方法小结 我就废话不多说了,直接上代码吧! 第一种 def test1(): l = [] for i in range(1000): l = l + [ ...

最新文章

  1. oracle安装时ins-32031,安装oracle数据库时的报错处理[INS-35172]
  2. 插入顶部_轻巧的衣领插入技术
  3. Android中Log信息的输出方法
  4. 如何使用Callable和FutureTask
  5. Java面向对象(6)--this关键字使用
  6. ios app抓包分析
  7. DevExpress 隐藏Ribbon中barbuttonItem的SuperTip(2)
  8. 谈谈Linux的栈回溯与妙用
  9. python打包exe反编译源码_python的exe反编译
  10. 数学建模上课(一)推导万有引力定律
  11. pk 打包文件_【旅行】同样是旅行,为啥中国人喜欢拉行李箱,老外喜欢背大包?附干货:行李打包锦囊...
  12. 一个黑客的投资者指南
  13. icloud android 日历同步到iphone,Mac的日历事件如何同步到iphone-Mac的日历事件同步到iphone教程 - 河东软件园...
  14. 苏阳乐队杭州巡演后记
  15. PLC通讯实现-C#实现三菱PLC通讯(三)
  16. ln(1+x)和ln(1-x)的麦克劳林级数
  17. OpenSolaris/Solaris中文FAQ
  18. 【LeetCode】重复元素相关题目
  19. 唐宇迪学习笔记4:Python可视化库——Seaborn
  20. cf1341 Nastya and Door

热门文章

  1. React官网Hook API 索引模块知识点整理(五)
  2. 引起网络广播风暴的原因
  3. 东方新山水摄影在好莱坞引起新潮流
  4. USACO oct. 09 Watering Hole
  5. 用超级终端强化你的手机---AT Command 命令控制手机
  6. Win10神州网信政府版电脑的麦克风及照相功能被组织关闭没有权限打开怎么办呢?(解决电脑麦克风问题)
  7. 自然辩证法 专题4.5测试题
  8. 计算机网络 构建Web内容的技术
  9. 供电企业的福音,远程抄表系统无线解决方案,让工程师告别奔波
  10. 如何诊断Shopee店铺?记住这3个操作