hyperledger fabric_鼎诚鬼才|超级账本入门(四):HYPERLEDGER 权限管理

82d0b1e2b0464c1587e86d18a62e885f.png

权限管理

权限管理机制是 hyperledger fabric 项目的一大特色。下面给出使用权限管理的一个应用案例。

启动集群

首先现在相关镜像。

$ docker pull yeasy/hyperledger:latest
$ docker tag yeasy/hyperledger:latest hyperledger/fabric-baseimage:latest
$ docker pull yeasy/hyperledger-peer:latest
$ docker pull yeasy/hyperledger-membersrvc:latest

进入 hyperledger 项目,启动带成员管理的 PBFT 集群。

$ git clone https://github.com/yeasy/docker-compose-files
$ cd docker-compose-files/hyperledger
$ docker-compose -f docker-compose-with-membersrvc.yml up

用户登陆

当启用了权限管理后,首先需要登录,例如以内置账户 jim 账户登录。

登录 vp0,并执行登录命令。

$ docker exec -it pbft_vp0_1 bash# peer network login jim08:23:13.604 [networkCmd] networkLogin -> INFO 001 CLI client login...08:23:13.604 [networkCmd] networkLogin -> INFO 002 Local data store for client loginToken: /var/hyperledger/production/client/Enter password for user 'jim': 6avZQLwcUe9b

也可以用 REST 方式:

POST  HOST:7050/registrar

Request:

{"enrollId": "jim","enrollSecret": "6avZQLwcUe9b"}

Response:

{"OK": "User jim is already logged in."}

CHAINCODE 部署

登录之后,chaincode 的部署、调用等操作与之前类似,只是需要通过 -u 选项来指定用户名。

在 vp0 上执行命令:

#  peer chaincode deploy -u jim -p github.com/hyperledger/fabric/examples/chaincode/go/chaincode_example02 -c '{"Function":"init", "Args": ["a","100", "b", "200"]}'

也可以通过 REST 方式进行:

POST  HOST:7050/chaincode

Request:

{"jsonrpc": "2.0","method": "deploy","params": {"type": 1,"chaincodeID":{"path":"github.com/hyperledger/fabric/examples/chaincode/go/chaincode_example02"},"ctorMsg": {"function":"init","args":["a", "1000", "b", "2000"]},"secureContext": "jim"},"id": 1}

Response:

{"jsonrpc": "2.0","result": {"status": "OK","message": "980d4bb7f69578592e5775a6da86d81a221887817d7164d3e9d4d4df1c981440abf9a61417eaf8ad6f7fc79893da36de2cf4709131e9af39bca6ebc2e5a1cd9d"},"id": 1}

CHAINCODE 调用

在账户 a、b 之间进行转账 10 元的操作。

$ peer chaincode invoke -u jim -n 980d4bb7f69578592e5775a6da86d81a221887817d7164d3e9d4d4df1c981440abf9a61417eaf8ad6f7fc79893da36de2cf4709131e9af39bca6ebc2e5a1cd9d -c '{"Function": "invoke", "Args": ["a", "b", "10"]}'

也可以通过 REST 方式进行:

POST  HOST:7050/chaincode

Request:

{"jsonrpc": "2.0","method": "invoke","params": {"type": 1,"chaincodeID":{"name":"980d4bb7f69578592e5775a6da86d81a221887817d7164d3e9d4d4df1c981440abf9a61417eaf8ad6f7fc79893da36de2cf4709131e9af39bca6ebc2e5a1cd9d"},"ctorMsg": {"function":"invoke","args":["a", "b", "100"]},"secureContext": "jim"},"id": 3}

Response:

{"jsonrpc": "2.0","result": {"status": "OK","message": "66308740-a2c5-4a60-81f1-778dbed49cc3"},"id": 3}

CHAINCODE 查询

查询 a 账户的余额。

也可以通过 REST 方式进行:

POST  HOST:7050/chaincode

Request:

{"jsonrpc": "2.0","method": "query","params": {"type": 1,"chaincodeID":{"name":"980d4bb7f69578592e5775a6da86d81a221887817d7164d3e9d4d4df1c981440abf9a61417eaf8ad6f7fc79893da36de2cf4709131e9af39bca6ebc2e5a1cd9d"},"ctorMsg": {"function":"query","args":["a"]},"secureContext": "jim"},"id": 5}

Response:

{"jsonrpc": "2.0","result": {"status": "OK","message": "900"},"id": 5}

区块信息查询

URL:

GET  HOST:7050/chain/blocks/2

Response:

{"transactions": [{"type": 2,"chaincodeID": "EoABMjhiYjJiMjMxNjE3MWE3MDZiYjI4MTBlYzM1ZDA5NWY0MzA4NzdiZjQ0M2YxMDYxZWYwZjYwYmJlNzUzZWQ0NDA3MDBhNTMxMmMxNjM5MGQzYjMwMTk5ZmU5NDY1YzNiNzVkNTk0NDM1OGNhYWUwMWNhODFlZjI4MTI4YTFiZmI=","payload": "Cp0BCAESgwESgAEyOGJiMmIyMzE2MTcxYTcwNmJiMjgxMGVjMzVkMDk1ZjQzMDg3N2JmNDQzZjEwNjFlZjBmNjBiYmU3NTNlZDQ0MDcwMGE1MzEyYzE2MzkwZDNiMzAxOTlmZTk0NjVjM2I3NWQ1OTQ0MzU4Y2FhZTAxY2E4MWVmMjgxMjhhMWJmYhoTCgZpbnZva2USAWESAWISAzEwMA==","uuid": "2b3b6cf3-9887-4dd5-8f2e-3634ec9c719a","timestamp": {"seconds": 1466577447,"nanos": 399637431},"nonce": "5AeA6S1odhPIDiGjFTFG8ttcihOoNNsh","cert": "MIICPzCCAeSgAwIBAgIRAMndnS+Me0G6gs4J9/fb8HcwCgYIKoZIzj0EAwMwMTELMAkGA1UEBhMCVVMxFDASBgNVBAoTC0h5cGVybGVkZ2VyMQwwCgYDVQQDEwN0Y2EwHhcNMTYwNjIyMDYzMzE4WhcNMTYwOTIwMDYzMzE4WjAxMQswCQYDVQQGEwJVUzEUMBIGA1UEChMLSHlwZXJsZWRnZXIxDDAKBgNVBAMTA2ppbTBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABDLd2W8PxzgB4A85Re2x44BApbOGqP05tnkygbXSctLiqi5HVfwRAACS6znVA9+toni59Yy+XAH3w2offdjFW3mjgdwwgdkwDgYDVR0PAQH/BAQDAgeAMAwGA1UdEwEB/wQCMAAwDQYDVR0OBAYEBAECAwQwDwYDVR0jBAgwBoAEAQIDBDBNBgYqAwQFBgcBAf8EQAfASTE6bZ0P5mrEzTa5r1UyKFv+dKezBiGU0V3l2iWzk9evlGMvaC2pwhEKfKDdKxs7YSMYe/7cLq/oF++GBVowSgYGKgMEBQYIBEBEO3TKXuORl5Geuco8Gnn5TkoIl4+b96aPGDGvKbmDjMXR9vEBuUXTnsbDL53j7kC8/XQs1kZboC1ojLeUSN03MAoGCCqGSM49BAMDA0kAMEYCIQCZqyANMFcu1WiMe2So0pC7eRU95F0+qUXLAKZsPWv/YQIhALmNaglP7CoMOe2qxehucmffDlu0BRLSYDHyV9xcxmkH","signature": "MEYCIQDob3NqdrfwlSGhi+zz+Ypl7S9QQ07RIFr8nV92e8KDNgIhANIljz4tRS8vwQk01hTemNQFJX2zMI6DhSUFZivbbtoR"}],"stateHash": "7YUoVvYnMLHbLf47uTixLtkjF6xM9DuvgSWC92MbOUzk09xhcRBBLZqe5FvJElgZemELBOcuIFnubL0LiGH0yw==","previousBlockHash": "On4BlpqCYNpugUKluqvOcbvkr3TAQxmlISLdd6qrONtIgmQ4iUDeWxAA9lUCceZfF8tke8A0Wy7m9tksNpKodw==","consensusMetadata": "CAI=","nonHashData": {"localLedgerCommitTimestamp": {"seconds": 1466577447,"nanos": 653618964},"transactionResults": [{"uuid": "2b3b6cf3-9887-4dd5-8f2e-3634ec9c719a"}]}}

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

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

相关文章

Python基础检测:20171105

第一周的预习结束了 效果并不理想,最后的检测也是有个别同学表现还可以.最后一次检测,除了依旧不是放在一个文件里,文件也没有标注作者从而导致我没办法一一回复外,有些问题写的不好意外.基本没什么毛病,摔! 本次问题是以小故事的形式展开并串联的,并没有什么特殊的意思.本人不…

python爬音乐网站_用 Python 爬取 QQ 音乐全部歌曲

前景介绍 最近小伙伴们听歌的兴趣大涨,网抑云综合症已经遍布各地。 咱们再来抬高一波QQ音乐的热度吧。 土豪充绿钻 和 刷永久绿钻的除外(me) 爬它 目标:https://y.qq.com/portal/singer_list.html 任务:将A到Z的歌手以及全部页数的歌存到本地…

8.String、StringBuffer、enum枚举

1.字符串相关类 1)string类代表不可变的字符系列。 2)stringBuffer,Buffer就是缓冲区,代表的是可变的字符系列。 这可变和不可变的是怎么理解呢? 如图,不是a的字符系列改变了,只是 开辟了一份新的内存,然后重新把a指向…

nacos启动_nacos微服务注册中心

nacos主要可作为微服务架构中 动态服务发现、服务配置、服务元数据及流量管理快速使用方法:(k8s集群内)1.下载包,并解压放到服务器,准备用dockerfile打包镜像FROM 192.168.0.200:5000/hifm-nacos:2.0.0 ADD startup.sh…

esp8266原理图_ESP32/ESP8266使用MicroPython控制DHT11/DHT22

背景知识视频教程高级ESP32 - 国外课栈​viadean.com使用NodeMCU(由ESP8266支持),MicroPython和PyCharm进行物联网 - 国外课栈​viadean.com适用于使用ESP32/ESP8266的所有人的MicroPython(入门) - 国外课栈​viadean.…

如何将word中的对象怎么显示到工具栏_职场必备!Word实用技巧最全总结(五)...

1、 用目录快速定位目录通常是长文档不可缺少的部分,有了目录,阅读者就能很容易地知道文档中有什么内容,如何查找这些内容。下面介绍使用内部标题样式创建目录的方法:1、单击要建立目录的地方,通常是文档的最前面&…

html博客源码_5分钟搭建私人Java博客系统——Tale

本文适合刚学习完 Java 语言基础的人群,跟着本文可了解和运行 Tale 项目。示例均在 Windows 操作系统下演示本文作者:HelloGitHub-秦人HelloGitHub 推出的《讲解开源项目》[1]系列,今天给大家带来一款基于 Java 语言的轻量级博客开源项目——…

17秋 软件工程 团队第五次作业 Alpha Scrum2

17秋 软件工程 团队第五次作业 Alpha Scrum2 今日完成的任务 杰麟:Java后端的学习;世强:登录和注册接口编写;港晨:完成数据库表的设计;树民、陈翔:完成超级管理员后端框架。其余成员外出比赛。 …

运行返回签名不正确_如果调用约定不匹配,会发生什么?

蝎子信不信由你,调用约定不匹配是程序经常出问题的原因之一。当你的程序代码中出现不相匹配的调动约定的时候,编译器会”大吼大叫”,但是懒惰的程序员只会在其中进行强制转换,以使编译器”尽快闭嘴”。结果是:Windows不…

计算机硬件教学设计高中信息,重大版信息技术七上《计算机硬件系统》教学设计.doc...

重大版信息技术七上《计算机硬件系统》教学设计.doc文档编号:745134文档页数:3上传时间: 2019-09-19文档级别:文档类型:doc文档大小:33.00KB计算机硬件系统教学设计 知识目标 1、学生了解计算机组成各部分的…

html 循环_一个不被程序员认为是编程语言的语言——HTML,你怎么看?

HTML究竟算不算是一门编程语言,这是争执已久的话题。其实,从本质来讲,HTML确实算不上是一门编程语言。HTML全称,HyperText Markup Language。字面理解,HTML就是一种超文本语言,何谓超文本,就是其…

Java Web学习总结(10)学习总结-EL表达式

一,EL 表达式概述(EL主要从域中取数据) EL(Express Lanuage)表达式可以嵌入在jsp页面内部,减少jsp脚本的编写,EL出现的目的是要替代jsp页面中脚本的编写。 二,EL从域中取出数据(EL…

图片测量尺寸软件_3D扫描之工件测量检测

一.技术简介消费者追求品质和时尚的需求使制造领域发生了一系列变革,最明显的两点:一是产品外形增加了更多的曲面设计;二是产品的质量控制标准越来越严格。而这两点的变化又对检测行业提出了更高的要求,传统的测量或检…

input只能输入数字_Python基础第一个案例:猜数字游戏,这个都写不出,那就放弃吧...

前言本文案例只适合新手,老司机请绕路。游戏介绍:程序自己有一个数字,用户输入一个数字,两个数字进行比较。知识点:input函数字符串while循环if条件判断语句break语句开始撸代码先来看看效果图代码# 1. 有一个数字 my_…

java 异或_Javase第一部分:操作符的使用(按位异或运算)(含视频讲解)

本套课程讲解详细深入,内容丰富,包含了数据结构、JVM、GC等大厂常见的面试知识精讲,而且配有在线的预习文档课堂笔记每天作业,可以缩短你的学习周期,提高学习效率。Java精讲视频六大板块----带你轻松入门Java​mp.weixin.qq.com本…

图文详解linux/windows mysql忘记root密码解决方案

经常有用户过来咨询说自己的mysql服务器忘记密码了怎么办,为了更好的解决大家的困扰,本文特归档整理了windows和linux系统下,mysql忘记密码的解决方案。本文内容是我亲测实用,当然过程中踩过的坑我也会在本文中一并分享交流。废话…

vue css load,vue css3loadding插件的开发以及npm包的发布管理

插件开发的话建议使用vue-gitment脚手架开发vue init webpack-simple vue-gitment如果提示执行cnpm install vue-cli -g 全局安装cnpm install vue-cli -g在次执行上面的命令完成之后可以看到这样的目录在src下面添加component loadding.js loadding.vueloadding.vueexport def…

js删除数组中指定元素_js中数组操作详解

今天给大家带来一篇有关数组操作方法的文章。新建数组方法一:通过new运算符创建一个数组构造函数。var arr new Array();方法二:通过方括号直接创建直接量数组。var arr [1,2,3];添加数组中的元素方法一:通过下标添加元素。var arr new Ar…

批量下载,多文件压缩打包zip下载

0、写在前面的话图片批量下载,要求下载时集成为一个压缩包进行下载。从昨天下午折腾到现在,踩坑踩得莫名其妙,还是来唠唠,给自己留个印象的同时,也希望给需要用到这个方法的人带来一些帮助。1、先叨叨IO叨叨IO是因为网…

选了combobox里的选项后没激发change事件_35岁前多用利弊分析,35岁后要有“安全边际”...

想冒险,要趁早1/6、距离糟糕的事情发生,还有多远?我现在同时在职场和投资两类战线写文章,读者也开始串戏。前几天在我另外一个投资号上,有人问我:如果你把投资理念原则扩大到生活中,你觉得最有启…