通过学习 二、Identity ,我们知道PKI可以通过信任链提供可验证的身份。现在,让我们看看如何使用这些身份来表示区块链网络的受信任成员。
1、MSPs 和 Organizations
一个organization是一个管理成员的组。它可以是一个关系复杂的跨国公司,也可以是一个小型的花店,他们都可以是organization。
一个组织,通过MSP来管理他们的成员。
MSP的命名方式一般为在组织名后面加上MSP:
a、一般的,组织ORG1,会有对应的一个ORG1-MSP。
b、在某些情况下,一个组织可能需要多个成员组,例如,公司之间处理非常不同的业务功能。这种情况下,组织ORG2会有多个MSPs,例如ORG2-MSP-NATIONAL , ORG2-MSP-GOVERNMENT。
下图为两种组织与MSP的管理对应关系
2、OU 和 MSP
一个组织经常会被切分为许多组织单元(OU),每个组织单元都有一系列具体的职责。
当CA颁发X.509认证时,证书的OU字段表明了这个identity的所属业务线。
有时,联盟中的不同组织可以使用OU来区分彼此。
3、本地MSP 和 channel MSP
在区块链网络中有两处MSPs,一处是在channel configuration,另一处在实体本地。
每一个node和user必须有本地MSP,它在node、user级别定义了谁有超管权限以及各自对应的合适权限。
channel MSP,定义了在channel级别谁有超管权限以及各自对应的合适权限。
每个参与channel的组织都必须为其定义MSP。一个channel内的peers和orderers共享相同的channel MSPs。如果一个组织希望加入channel,那么这个组织的MSP需要包含在channel configuration中。
上图描述Local和channel MSPs。每个peer的信任域是由peer的本地MSP定义的。
一个组织加入channel,实际上就是将组织的MSP加入到channel configuration里。
场景描述:
管理员B连接到Peer ,使用由RCA1颁发的证书,并且存储到本地的MSP。 当B试图在peer上安装智能合约时,peer会检查它的本地MSP ORG1.MSP,来确认B确实是ORG1组织的一员。验证成功则允许执行安装命令。
接下来,B希望将这个只能合约实例化到channel上,因为这是一个channel方面的操作,所以channel上的所有组织都必须同意才能进行。因此,peer必须检查channel的MSP来判定是否允许执行这个实例化操作。
4、MSP Levels
区分local和channel MSP反映了组织区别管理本地资源和channel资源的需求。
本地资源有:peer、orderer nodes等
channel资源有:ledgers、smart contracts、
- Network MSP
- Channel MSP
- Peer MSP
- Orderer MSP
5、MSP结构
https://hyperledger-fabric.readthedocs.io/en/release-1.4/membership/membership.html