策略定义以及分类
Fabric网络中,有很多的地方使用策略进行管理,策略管理是一种权限管理的方法

Fabric支持下列三种策略:
交易背书策略
链码实例化策略
通道管理策略

策略类型有下列两种:
SignaturePolicy:在基于验证签名策略的基础上,支持条件AND、OR、NOutOf的任意组合,其中 NOutOf 指满足m个条件中的n个就表示满足策略(m>=n)。

ImplicitMetaPlicy:隐含的元策略,是在SignaturePolicy之上的策略,支持大多数组织管理员,只适合通道管理策略。

支持3种策略的规则:

  1. ImplicitMetaPolicy_ANY:任意一个子规则成立就满足策略。

  2. ImplicitMetaPolicy_ALL:全部子规则都成立才满足策略。

  3. ImplicitMetaPolicy_MAJORITY:大多数子规则成立就满足策略,计算规则是 threshold=len(subPolicies)/2+1

交易背书策略

发起交易的时候,发起端(一般是SDK),需要指定交易发给哪些节点进行背书验证(fabric不会自动发送),而是由sdk发送。发送后等待背书节点的返回,收集到足够的背书后将交易发送给orderer(排序节点或称共识节点)进行排序打包分发。最后,当每个Peer接受到block数据后,会对其中的交易进行验证,如果交易不符合背书策略,就不会在本地生效,所以真正验证背书是在这一步

背书策略有两个主要组成部分:

主体(principal):P定义了期望的签名来源实体 门槛(threshold
gate):T有两个参数:整数t(阈值)和n个主体,表示从这n个主体中获取t个签名

例如: T(2, ‘A’, ‘B’, ‘C’)表示需要A、B、C中任意2个主体的签名背书 T(1, ‘A’, T(2, ‘B’,
‘C’))表示需要来自主体A的签名或者来自B和C两者的签名背书

策略可以在部署时通过键 -P 来指定

例如: peer chaincode deploy -C testchainid -n mycc -p
github.com/hyperledger/fabric/examples/chaincode/go/chaincode_example02
-c ‘{“Args”:[“init”,”a”,”100”,”b”,”200”]}’ -P “AND(‘Org1.member’,
‘Org2.member’)”

该命令使用 AND(‘Org1.member’, ‘Org2.member’) 策略,将chaincode mycc
部署到链testchain上。

链码实例化策略
链码实例化策略是用来验证是否有权限进行链码实例化和链码升级

什么时候配置链码实例化策略?
链码实例化策略在对链码进行打包和签名的时候指定,如果没有指定实例化策略,默认是通道的管理员才能实例化

什么时候验证链码实例化策略?
链码实例化策略的定义和背书策略完全一样,验证方法也相同,只是用途和用法不一样。链码实例化策略是直接在链码打包的时候获取的,实例化完成之后将策略存放到链上,在链码实例化和升级的时候会先验证是否符合当前的实例化策略,验证通过之后才可能更新链码实例化策略


通道管理策略
通道配置是递归定义的,配置策略是基于SignaturePolicy和ImplicitMetaPlicy,通道定义了三种配置策略
通道管理策略

通道配置的递归定义:
1.最外层的是Channel,它定义了通道的子配置和策略定义,Channel的子配置里面定义Orderer和Application配置,它们分别是相同的递归定义结构。其中“----------->”显示的以后按照层级展开,代表的是/Channel/Application/Writers。

2.怎么来使用这些配置策略呢?比如在排序服务节点调用Deliver接口的时候会检查这个节点是否满足/Channel/Readers策略,Peer节点同步区块的时候会检查是否满足/Channel/Application/Readers策略。

区块链Fabric策略管理和访问控制相关推荐

  1. IBM携手三菱东京日联银行 将区块链用于合同管理

    三菱东京日联银行(The Bank of Tokyo-Mitsubishi UFJ ,BTMU)携手IBM,欲将区块链技术应用于商业伙伴之间的合同设计.管理和执行.两家公司已经签约,将使用超级账本项目 ...

  2. 区块链Fabric技术在托管业务中的运用初探

    2019独角兽企业重金招聘Python工程师标准>>> 区块链Fabric技术在托管业务中的运用初探 什么是Fabric技术 HyperLedger是IBM.Intel等多家公司正开 ...

  3. 10采用区块链智能合约管理智能城市房地产交易的概念框架

    原文标题: A conceptual framework for blockchain smart contract adoption to manage real estate deals in s ...

  4. 区块链Fabric 技术架构和交易流程

    Fabric 架构 总体架构核心部分由成员管理(Membership services).共识服务(Consensus services)和智能合约(Chain-code Services)三部分, ...

  5. 8月24日,数据分析、区块链、产品管理、市场、运营、财务、媒体等一大波热门岗位来袭丨今夏硅谷最热门的招聘会进入倒计时...

    你也许觉得时间还很多 你也许觉得找工作并没有那么难 你也许正收拾行囊准备享受暑期的旅行 可你却不知道 你正在与一大波机会擦肩而过 没有复杂的简历筛选 也没有令人紧张的电话面试 瀚海.北美省钱快报.华兴 ...

  6. 助记词创建以太坊钱包源码_墨客科普 | MOAC区块链钱包账号管理

    本文简单描述钱包账号管理的一些方法. 一.术语 1.1 gas,Gas Limit和Gas Price 在墨客区块链上,发送代币或调用智能合约.执行写入操作,需要支付矿工计算费用,计费是按照Gas计算 ...

  7. 毕业设计选择区块链 Fabric方向需要注意哪些

    很多小伙伴毕业设计选择Fabric方向,大家对Fabric了解比较少,不知道该怎么开展,选的题目难度如何,需要多久的开发时间,怎么编写智能合约- 大家比较茫然,不知道怎么下手,总结一下大家的问题,希望 ...

  8. 区块链 fabric 1.4.4 搭建,Mysql 安装,区块链项目设计介绍

    一起学习.讨论的伙伴 +q 260261476,交流.指导!(https://blog.csdn.net/TBBetter/article/details/120749172)等项目设计 instal ...

  9. 区块链Fabric 之共识机制

    什么是共识 什么是一致性? 分布式系统中,一致性是指对于系统中的多个服务节点,给定一系列操作,在协议(往往通过某种共识算法) 保障下,试图使得它们对处理结果达成某种程度的一致.如果分布式系统能实现&q ...

最新文章

  1. 介绍一篇关于session的好文章,写的很详细
  2. php 将换行符替换,PHP替换回车换行符的三种方法
  3. 【笔记】MATLAB中的图形(2)
  4. mysql订单表上亿怎么分表_[转]单表上亿的数据量如何分表
  5. Qt文档阅读笔记-官方Form Extractor Example实例解析
  6. Unity3D 使用 GL 绘制线条
  7. VS2010中如何查看DLL的导出接口
  8. 【Thread】java类Thread中提供了检测线程是否中断的方法,说一说你的了解?
  9. (原创)EDK中常用文件
  10. Centos7 firewall防火墙常用配置
  11. FRR BGP协议分析14 -- 静态路由的处理流程
  12. MySQL-快速入门(17)MySQL Proxy,读写分离,负载均衡
  13. Matlab运行程序_暂停方法
  14. 信捷PLC应用-三轴钻孔机
  15. App Inventer制作蓝牙通讯软件
  16. windows2008服务器安全防护软件哪个好
  17. 7.15周三晚8点,dotnet课堂全新起航,张善友/陈计节/刘腾飞我们一起来聊聊abp的故事...
  18. 周口女子职专计算机分为哪些专业,周口女子职业中专学校
  19. VisualStudio2019,基于.NET Framework的单元测试
  20. SRE运维工程师笔记-Linux文件管理和IO重定向

热门文章

  1. DSG-RealSync在保险行业的应用案例(太平洋保险)
  2. JS中数值类型的本质
  3. 公用计算机关机后无法保存,共享打印机电脑重启就不能打印应该怎么解决
  4. MODBUS协议中的CRC校验
  5. java生成微信支付sign 及校验签名封装
  6. 一段文字每个字距离间隔(一般是标题透明渐变)间隔效果是letter-spacing
  7. 人生苦短我用python壁纸_人生苦短,我用 Python——我如何用 Python 助力工作和生活?...
  8. 杠杆炒股从三步学会正确的做t方法
  9. CoovaChilli
  10. AI版「女娲」来了!文字生成图像、视频,8类任务一个模型搞定