首页 > 解决方案 > 本地 MSP 和 Channel MSP 的区别?

问题描述

我一直在阅读hyperledger织物的文档,但我被困在了一些东西上。这一段实际上是什么意思:

“通道和本地之间的划分MSPs反映了组织管理其本地资源(例如对等节点或排序节点)及其通道资源(例如在通道或网络级别运行的分类帐、智能合约和联盟)的需求。

将这些MSPs视为处于不同级别是有帮助的,MSPs在较高级别涉及网络管理问题,而MSPs在较低级别处理用于管理私有资源的身份。MSPs在每个管理级别都是强制性的——必须为网络、通道、对等点、排序者和用户定义它们。”

标签: hyperledger-fabric

解决方案


MSP 既是 Fabric 节点(对等节点和排序节点)中验证身份并将其分类为主体的模块,也是此类模块的实例。

因此,您可以在每个 peer/orderer 中拥有多个 MSP,它们都属于某个通道,或者它们只属于节点本身。

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

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

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

使用通道 MSP 的示例是 - 当对等点提交一个块时,它会检查链码交易的背书策略。从世界状态(驻留在数据库中)获取背书策略,然后将策略字符串转换为策略实例,该实例使用包含为该通道定义的所有 MSP 的通道“MSP 管理器”。每个这样的 MSP - 都属于频道中的某个组织。

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


推荐阅读