hyperledger-fabric - 本地 MSP 和 Channel MSP 的区别?
问题描述
我一直在阅读hyperledger
织物的文档,但我被困在了一些东西上。这一段实际上是什么意思:
“通道和本地之间的划分MSPs
反映了组织管理其本地资源(例如对等节点或排序节点)及其通道资源(例如在通道或网络级别运行的分类帐、智能合约和联盟)的需求。
将这些MSPs
视为处于不同级别是有帮助的,MSPs
在较高级别涉及网络管理问题,而MSPs
在较低级别处理用于管理私有资源的身份。MSPs
在每个管理级别都是强制性的——必须为网络、通道、对等点、排序者和用户定义它们。”
解决方案
MSP 既是 Fabric 节点(对等节点和排序节点)中验证身份并将其分类为主体的模块,也是此类模块的实例。
因此,您可以在每个 peer/orderer 中拥有多个 MSP,它们都属于某个通道,或者它们只属于节点本身。
Fabric 策略和访问控制代码使用 MSP 的每个实例来定义谁可以做什么。Fabric 策略基础结构和所有访问控制代码直接或间接使用 MSP。
因此,如果节点在某个通道的上下文中使用访问控制检查或策略评估,它会在该通道中使用某个 MSP。
如果它使用与任何通道无关的访问控制检查(或策略评估),则它使用本地 MSP。
使用通道 MSP 的示例是 - 当对等点提交一个块时,它会检查链码交易的背书策略。从世界状态(驻留在数据库中)获取背书策略,然后将策略字符串转换为策略实例,该实例使用包含为该通道定义的所有 MSP 的通道“MSP 管理器”。每个这样的 MSP - 都属于频道中的某个组织。
使用本地 MSP 的示例是 - 当您在对等点上安装链代码时 - 操作不在任何通道的上下文中,因此 - 本地 MSP 检查 gRPC 调用是否带有由签名的签名一些对等管理员,并且谁是管理员的定义在本地 MSP 中定义。
推荐阅读
- c++ - 在 Windows10 上使用 LLVM (Clang) 编译和构建 CPP
- c# - asp.net C# 防止用户将两个下拉列表中的任何一个留空
- postgresql - 不支持的前端协议 1234.5680:服务器支持 2.0 到 3.0
- c - 在 GCC Makefile 中没有创建目标的规则
- go - 创建 Kubernetes Cronjob
- node.js - "code": "6140" 重复文件编号错误
- java - 如何在没有工作组终止的情况下正确关闭 netty 通道
- react-native - 世博小吃中的矢量图标
- java - docker-compose up 完成后如何使用故障安全运行集成测试?
- apache-kafka - Kafka Stream 输出率与窗口不符