简介

MSP的作用,不仅仅在于列出谁是网络参与者或Channel成员。 MSP可以确定,成员在MSP所代表的Org(trust domain)(例如,MSP管理员,组织细分成员)中扮演的特定角色。 它将MSP的配置通告给,相应组织的成员参与的所有Channel(以MSP Channel的形式)。 Peers, orderers 和 clients还维护本地MSP实例(也称为 Local MSP),以在channel环境之外验证其组织成员的消息。 此外,MSP可以识别已被吊销的身份列表。

也就是MSP可以分为:local 和 channel MSPs

organizations 最重要的是,他们在单独的一个MSP下管理其成员。 请注意,这与在X.509证书中定义的organization概念不同,我们稍后会讨论。

organization与MSP之间的专一性关系,使得在organization之后命名MSP是明智的,在大多数policy配置中,您会发现这一个惯例。 例如,organization ORG1将有一个名为 ORG1-MSP 的MSP。 在某些情况下,organization可能需要多个成员资格组 - 例如,不同的Channel用于在organisations之间执行完全不同的业务职能, 在这些情况下,拥有多个MSP并相应地命名它们是有意义的,例如ORG2-MSP-NATIONALORG2-MSP-GOVERNMENT,反映了与政府监管Channel相比,国家销售Channel中ORG2中不同的成员信任root。详细见下图例子:

第一种配置显示了MSP和Org之间的典型关系 - 单个MSP定义Org成员的列表。
在第二种配置中,不同的MSP用于代表具有国家,国际和政府关系的不同组织团体。

Organizational Units(企业中各管理部门) and MSPs

一个组织经常被分成多个组织单位(organizational units 、OUs),每个组织单位都有一定的责任。 例如,ORG1组织可能同时具有ORG1-MANUFACTURINGORG1-DISTRIBUTION OUS,以反映这些单独的业务线。 当CA颁发X.509证书时,证书中的OU字段将指定该identity(身份)所属的业务线。

我们稍后会看到OUs如何有助于控制,区块链网络成员的组织部分。 例如,只有来自ORG1-MANUFACTURING OU的身份可能能够访问某个Channel,而ORG1-DISTRIBUTION则不能。

Local and Channel MSPs

MSP出现在区块链网络中的两个地方:Channel配置(Channel MSP),以及本地(local MSP)。localMSP,是为节点(peer 或 orderer)和用户(使用CLI或使用SDK的客户端应用程序的管理员)定义的。每个节点和用户都必须定义一个localMSP,因为它定义了谁在该级别和Channel的上下文之外,具有管理或参与权限(例如,谁是peer所在组织的管理员)。

相反,channel MSP在channel层面定义管理和参与权。参与Channel的每个组织,都必须为其定义MSP。Channel上的Peers 和 orderers将在Channel MSP上共享相同的视图,并且此后将能够正确认证Channel参与者。这意味着如果一个组织希望加入该Channel,那么需要在Channel配置中,加入一个包含该组织成员的信任链的MSP。否则来自该组织身份的交易将被拒绝。

local和channel MSP之间的主要区别不在于它们的功能,而在于它们的范围。

Local 和 channel MSP。 每个peer的信任域(例如,组织)由peer 的Local MSP(例如ORG1ORG2)定义。 组织在Channel中的表示,通过将组织的MSP包含在渠道中来实现。 例如,上图的Channel由ORG1ORG2管理。 类似的原则适用于网络,orderers和用户,但为简单起见,这里没有显示。

Local MSP仅在其应用的 节点或用户 的文件系统上定义。 因此,在物理上和逻辑上,每个节点或用户只有一个Local MSP。

但是,由于Channel MSP可用于Channel中的所有节点,因此它们在其配置中的Channel中逻辑定义一次。 但是,Channel MSP在channel中的每个节点的文件系统上,实例化并且通过共识保持同步。 因此,虽然每个节点的本地文件系统上存在每个channel MSP的副本,但逻辑上,channel MSP驻留在channel或网络上并由其维护。

管理员B使用RCA1颁发的,并存储在其local MSP中的身份连接到peer(用户、管理员也有local MSP)。 当B尝试在peer上安装智能合同时,peer检查其local MSP ORG1-MSP,以验证B的身份确实是ORG1的成员。 成功验证将允许安装命令成功完成。 随后,B希望实例化该channel上的智能合约。 由于这是Channel操作,Channel中的所有组织都必须同意。 因此,peer必须先检查Channel的MSP,然后才能成功提交该命令。 (其他事情也必须发生,但现在要专注于上述内容。)

MSP Levels

MSP级别
channel 和 local MSP之间的分割反映了,组织管理其本地资源(例如peer or orderer节点)及其Channel资源(例如在Channel或网络级别,运营的ledgers,智能合约和联盟)的需求。 将这些MSP视为处于不同级别是有好处的,其中较高级别的MSP,处理与网络管理有关的问题,而较低级别的MSP,处理私有资源管理的身份。 MSP在每个管理级别都是必须的 - 它们必须为网络,Channel,peer, orderer 和 users 定义。

peer 和 orderer的MSP是本地的,而Channel的MSP(包括网络配置Channel)在该Channel的所有参与者之间共享。 在上图中,网络配置Channel由ORG1管理,但另一个应用程序Channel可由ORG1和ORG2管理。

peer是ORG2的成员,并由ORG2管理,而ORG1管理orderer。 ORG1信任来自RCA1的身份,而ORG2信任来自RCA2的身份。 请注意,这些是管理身份,反映了谁可以管理这些组件。 所以当ORG1管理网络时,ORG2.MSP确实存在于网络定义中。

  • Network MSP:网络配置通过定义参与者组织MSPs,来定义网络中的成员。同时定义这些成员中哪些成员,有权执行管理任务(例如,创建Channel)

  • Channel MSP:Channel分开维护其成员的MSP非常重要。Channel提供了一组特定的组织之间的私人通信,这些组织又对其进行管理控制。在该Channel的MSP上下文中的Channel policies定义谁能够参与Channel上的某些操作,例如添加组织或实例化chaincodes。请注意,管理Channel的权限与管理网络配置Channel(或任何其他频道)的权限之间没有必要的关系。管理权限存在于正在管理的范围内(除非规则已另行编写 - 请参阅下面关于ROLE属性的讨论)。

  • Peer MSP:此Local MSP在每个peer的文件系统上定义,并且每个peer都有一个MSP实例。从概念上讲,它执行的功能与Channel MSP完全相同,限制条件是它仅用于定义它的peer上。

  • Orderer MSP:与peer MSP一样,orderer local MSP也在节点的文件系统上定义,并且仅用于该节点。与peer 节点相似,orderer也由单个组织拥有,因此只有一个MSP来列出其信任的参与者或节点。

MSP Structure

到目前为止,已经看到MSP中最重要的两个要素,是用于确定相应组织中的参与者或节点成员资格的(root or intermediate)CA的规范。 但是,有更多的元素与这两个元素结合使用来协助membership功能。

下面详细介绍下:

Root CAs

此文件夹包含,由此MSP代表的组织信任的Root CA的,自签名X.509证书列表。此MSP文件夹中必须至少有一个Root CA X.509证书。
这是最重要的文件夹,因为它标识了所有其它证书,必须从中派生出来的CA,以便被视为相应组织的成员。

Intermediate CAs

此文件夹包含此组织信任的Intermediate CA的X.509证书列表。每个证书都必须由MSP中的一个Root CA签署,或者由 Intermediate CA 签署。

Intermediate CA可以表示组织的不同细分或组织本身(例如,如果商业CA用于组织的身份管理)。在后一种情况下,可以使用CA层次结构中,较低的其他Intermediate CA来表示组织细分。请注意,可能有一个没有任何中间CA的功能网络,在这种情况下,此文件夹将为空。

与Root CA文件夹一样,此文件夹定义了,必须从中颁发证书才能被视为组织成员的CA。

Organizational Units (OUs)

可选的

Administrators

该文件夹包含一个身份列表,用于定义具有该组织管理员角色的参与者。对于标准MSP类型,此列表中应该有一个或多个X.509证书。

值得注意的是,仅仅因为演员具有管理员的角色,并不意味着他们可以管理特定的资源!给定身份在管理系统方面的实际权力,取决于管理系统资源的策略。例如,Channel policy可能会指定ORG1-MANUFACTURING管理员有权将新组织添加到Channel,而ORG1-DISTRIBUTION管理员则没有此权限。

即使X.509证书具有ROLE属性(例如,指定角色是管理员),这也是指角色在其组织中而不是区块链网络中的角色。这与OU属性的用途类似 - 指的是参与者在组织中的位置。

如果该Channel的策略已经写入,允许来自组织(或某些组织)的任何管理员,执行某些channel功能(例如实例化chaincode)的权限,则ROLE属性,可用于在channel级别授予管理权限。通过这种方式,组织角色可以赋予网络角色。这在概念上类似于美国佛罗里达州颁发的驾驶执照,是如何授权某人在美国的每个州开车的。

Revoked Certificates:

可选的

Node Identity(节点身份)

该文件夹包含节点的自身身份。与KeyStore内容相结合的密码材料,将允许节点,在发送给其channels和network的其他参与者的消息中,对自身进行身份验证。 对于基于X.509的身份,此文件夹包含一个X.509证书。 例如,这是peer在交易提议响应中的证书,以表明peer已经认可了该证书 - 随后可以在验证时,根据所得到的交易的认可政策,来检查该证书。

该文件夹对于本地MSP是必需的,并且该节点必须只有一个X.509证书。 它不用于Channel MSP。

KeyStore for Private Key(私钥KeyStore)

该文件夹为peer 或 orderer节点(或客户端的local MSP)的local MSP定义,并包含节点的signing key(签名密钥)。 此密钥,与上面Node Identity 文件夹中的节点身份匹配,并用于签署数据 - 例如签署交易提议响应,作为认可阶段的一部分。

该文件夹对Local MSP是必须的,并且必须包含一个私钥。 很明显,访问这个文件夹,只能由,对次peer有管理权限的用户。

Channel MSP的配置不包括此部分,因为Channel MSP旨在提供纯粹的身份验证功能,而不是签署能力。

TLS Root CA

此文件夹包含,此组织为TLS通信所信任的Root CA的自签名X.509证书列表。 TLS通信的一个例子是,peer需要连接到orderer以便它可以接收ledger更新。

MSP TLS信息涉及网络内的节点,即对peers 和 the orderers,而不是那些使用网络的节点 - 应用程序和管理员。

此文件夹中必须至少有一个TLS Root CA X.509证书。

TLS Intermediate CA

此文件夹包含由此MSP代表的,组织信任的用于TLS通信的Intermediate CA证书列表。当商业CA用于组织的TLS证书时,此文件夹特别有用。 它是可选的。

Hyperledger系列(十二)MSP详细介绍相关推荐

  1. Hadoop系列 (九):Sqoop详细介绍

    文章目录 Hadoop系列文章 Sqoop简介 Sqoop架构 Sqoop数据导入 Sqoop数据导出 Sqoop安装部署 版本介绍 前提环境 下载 安装配置 Sqoop的使用 构建测试数据 将MyS ...

  2. Alamofire源码解读系列(十二)之请求(Request)

    本篇是Alamofire中的请求抽象层的讲解 前言 在Alamofire中,围绕着Request,设计了很多额外的特性,这也恰恰表明,Request是所有请求的基础部分和发起点.这无疑给我们一个Req ...

  3. Java 集合系列03之 ArrayList详细介绍(源码解析)和使用示例

    转载自  Java 集合系列03之 ArrayList详细介绍(源码解析)和使用示例 第1部分 ArrayList介绍 ArrayList简介 ArrayList 是一个数组队列,相当于 动态数组.与 ...

  4. 第十二章-硬盘介绍和磁盘管理 随堂笔记

    第十二章-硬盘介绍和磁盘管理 本节所讲内容: 12.1 SAS-SATA-SSD-SCSI-IDE硬盘讲解 12.2 磁盘分区工具和挂载 12.3 实战扩展swap分区 12.1 SAS-SATA-S ...

  5. xen是服务器虚拟化,xen虚拟化实战系列(十二)之xen虚拟机高可用之在线迁移

    xen虚拟化实战系列文章列表 xen虚拟化实战系列(十三)之xen虚拟机集中管理之convirt 1. 方案背景概述 本文是有对我们一个xen虚拟化生产环境将要改造的一个方案而来,在项目上线初期,没有 ...

  6. Hadoop系列 (三):HDFS详细介绍

    文章目录 Hadoop系列文章 HDFS简介 HDFS基本概念 分布式文件系统特点 HDFS设计目标 HDFS架构 HDFS应用场景 HDFS三大组件 NameNode SecondaryNameNo ...

  7. kotlin杂谈系列十二(Kotlin和Java的互操作)

    Kotlin杂谈系列十二 这次就主要来谈谈kotlin和java互操作的问题 kotlin出来的使命就是为了解决java的模板问题和一些冗长的问题所以kotlin天生就很好的支持了java 所以我们在 ...

  8. RapidScada免费开源Scada组态软件系列教程4-各模块详细介绍

    RapidScada免费开源Scada组态软件系列教程 系列文章目录 RapidScada免费开源Scada组态软件系列教程1-初识RapidScada RapidScada免费开源Scada组态软件 ...

  9. Reflex WMS入门系列十二:Reflex里的Location

    Reflex WMS入门系列十二:Reflex里的Location 玩过SAP系统里的人都知道,在SAP系统里库存管理分为IM Level和WM Level.IM Level的仓库,在SAP里被定义为 ...

  10. Highcharts翻译系列十二:gauge测量图

    Highcharts翻译系列十二:gauge测量图 说明 测量图需要highcharts-more.js的支持 属性 参数 描述 默认值 animation 动画 true color 主要颜色或序列 ...

最新文章

  1. 阿里云天池大赛赛题解析――深度学习篇
  2. R语言层次聚类:通过内平方和(Within Sum of Squares, WSS)选择最优的聚类K值、以内平方和(WSS)和K的关系并通过弯头法(elbow method)获得最优的聚类个数
  3. img should be PIL Image. Got <class ‘numpy.ndarray‘>
  4. c++ 遍历多级目录
  5. 深入了解Java 8日期和时间API
  6. 谁说发 paper 一定要追快打新?2021年,研究 word2vec 也能中顶会!
  7. 最担心的事情还是发生了!三星折叠屏手机翻车:闪屏、黑屏、“脱皮”
  8. 架构名词,涉及的技术
  9. iOS UICollectionView示例教程
  10. 【转】android内存溢出的解决方法
  11. Bake into Pose的设置以及动画系统的一些疑惑和如何实验
  12. 【精选】OCR精选10个问题 百度paddleocr
  13. oracle建表语句
  14. 迪文屏学习系列之数据录入
  15. 如何设置?如何分析?一文解释清楚用户研究的可用性测试问卷!
  16. vue 封装图片预览组件
  17. 阿里云建站之模板建站的核心优势有哪些?
  18. 2016锐捷网络云课堂云网络研讨会福州闭幕 根植教育彰显“变革之力”
  19. 用UltraIso便捷版制作万能隐藏启动U盘
  20. vant官网-vant ui 首页-移动端Vue组件库

热门文章

  1. 带你认识 flask 国际化和本地化
  2. 平安金融云为互联网金融行业注入发展新动能
  3. HTML的基本结构标签与网页开发工具
  4. php最新友链源码,Thinkphp友链源码
  5. flink run常用参数说明
  6. Ubuntu安装chrome
  7. windows7系统损坏修复_利用老毛桃系统修复Windows引导故障
  8. ubuntu下通过FreeTDS访问SqlServer(c++示例)
  9. 高防CDN相比普通CDN的优势有哪些?
  10. 诺基亚推出全球最快路由器 与思科争夺苹果等巨头订单