fabric msp架构概览

框框下山 · · 804 次点击 · · 开始浏览    
这是一个创建于 的文章,其中的信息可能已经有所发展或是发生改变。

基本概念

MSP,全称Membership Service Provider,即成员关系服务提供者,是 Hyperledger Fabric 1.0版本开始抽象出来的一个模块化组件,用来管理Fabric中的众多参与者(peer、order等)。
MSP将颁发证书和校验证书,以及用户认证背后的所有密码学机制与协议都抽象了出来。对fabric网络中的成员进行身份的管理(身份验证)与认证(签名与验签)。

image

organization 和 MSP

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

image

Local and Channel MSPs

MSP出现在两个地方:在channel上有一个全局的MSP,而每个peer、orderer、client等角色上都维护有本地的局部MSP。
本地MSP只保存有Global MSP上的子集,内容保存在本地文件系统上,而全局MSP可在逻辑上认为是配置在系统上的,它实际也在每个参与者上保存一份拷贝,但会维持一致性。

image

MSP Level

MSP也分级,如图所示,底层的network MSP负责网络层的准入,其MSP由ORG1拥有,而上面的某个channel的MSP则由ORG1和ORG2共同管理。


image
  • 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目录可以用Fabric提供的cryptogen命令生成,但是用cryptogen命令生成是非常不灵活的,生产环境中,应当使用Fabric提供的另一个组件FabricCA。通常一个MSP是由以下构成的(MSP九要素):


image
image

除了账号的私钥和证书,Fabric中还存在一套TLS证书,这套证书就很好理解了,它们是用来对grpc通信过程加密的。Fabric的Peer、Orderer之间使用grpc通信。

bccsp

BCCSP,全称Blockchain Cryptographic Service Provider,即区块链加密服务提供者,为Fabric提供加密标准和算法的实现,包括哈希、签名、校验、加解密等。 BCCSP通过MSP(即Membership Service Provider成员关系服务提供者)给核心功能和客户端SDK提供加密算法相关服务。 另外BCCSP支持可插拔,提供多种CSP,支持自定义CSP。目前支持sw和pkcs11两种实现。

  1. sw :使用golang标准库
  2. pkcs11 : 使用动态连接库libsofthsm2

BCCSP 的接口集合,大体分成 4 类,分为:

  1. 秘钥生命周期管理
  2. 哈希散列管理
  3. 签名验证管理
  4. 加解密功能

有疑问加站长微信联系(非本文作者)

本文来自:简书

感谢作者:框框下山

查看原文:fabric msp架构概览

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889

804 次点击  
加入收藏 微博
添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传