本地MSP和通道MSP之间的区别?

时间:2018-09-25 09:04:40

标签: hyperledger-fabric

我一直在阅读hyperledger架构的文档,但是我一直停留在某些东西上。该段的实际含义是:

“渠道与本地MSPs之间的划分反映了组织管理其本地资源(例如对等节点或订购者节点)以及其渠道资源(例如分类帐,智能合约和联盟)的需求,这些资源

将这些MSPs视为不同级别是很有帮助的,其中MSPs处于与网络管理问题相关的较高级别,而MSPs处于较低的级别处理管理身份私人资源。 MSPs在每个管理级别都是必需的-必须为网络,渠道,对等方,订购者和用户定义它们。”

1 个答案:

答案 0 :(得分:2)

MSP既是Fabric节点(对等方和订购方)中的一个模块,用于验证身份并将其分类为主体,也是该模块的实例。

因此,每个对等方/订购者中可以有多个MSP,它们都属于某个通道,或者它们仅属于节点本身。

Fabric策略和访问控制代码使用MSP的每个实例来定义谁可以做什么。 Fabric策略基础结构以及所有访问控制代码直接或间接使用MSP。

因此,如果节点在某个通道的上下文中使用访问控制检查或策略评估,则它将在该通道中使用某些MSP。

如果它使用与任何渠道都不相关的访问控制检查(或策略评估),则使用本地MSP。

使用通道MSP的示例是-当对等方提交块时,它将检查链码事务的认可策略。从世界状态(位于数据库中)获取认可策略,然后将策略字符串转换为策略实例,该实例使用通道“ MSP管理器”,其中包含为该通道定义的所有MSP。每个这样的MSP-都属于渠道中的某个组织。

使用本地MSP时的一个示例是-在对等方上安装链码时-该操作不在任何通道的上下文中,因此-本地MSP检查gRPC调用是否带有以下签名:由某些对等管理员签名,并且谁是管理员的定义在本地MSP中定义。