HyperledgerFabric之MSP机制,功能及使用场景详解。
一.Fabric1.0中一个完整的fabric账号(MSP)
1.msp文件夹
2.tls文件夹
主要存放加密通信相关的证书文件。
二.使用
1.启动Orderer需要的账号
环境变量设置账号:
- ORDERER_GENERAL_LOCALMSPDIR=/traceabilityProject/orderer/crypto-config/ordererOrganizations/trace.com/orderers/orderer1.trace.com/msp
2.启动Peer需要账号
3.创建Channel需要账号
需配置环境变量:
- CORE_PEER_MSPCONFIGPATH=/traceabilityProject/peer/crypto-config/peerOrganizations/org3.trace.com/users/Admin@org3.trace.com/msp
Peer和Orderer都有属于自己的账号,创建Channel使用的是用户账号。其中Peer和创建Channel的用户账号属于某个组织,而Orderer的启动账号属于他自己。
4.cryptogen
5.基于cryptogen成员管理体系
cryptogen可以新增节点,若需要增加新节点,可以给配置文件中Start属性赋值上一次的count。
如果需要给组织Org1新增加3个Peer节点,可以使用下面配置:
但是需要动态地增加用户账户目前版本Fabric无法实现。
使增加节点和用户账号的方式简单的方法:。
6.Fabric-ca
(1)配置fabric-ca-server并启动
(2)使用fabric-ca-client
Org1.example.com的MSP文件:
7. MSP结构设计
若有两个独立的组织,则fabric生成MSP:
事业部独立组织:
“加盟店”组织:
8. Fabric构建区块链网络模式
Fabric 提供了两种构建区块链网络的模式,即离线模式和在线模式。在离线模式下,证书通过一个CA 生成,井分发到所有节点, Peer 节点和Orderer 节点只能通过离线模式注册。为了客户端可以拉取证书, Fabric CA 提供了在线模式为客户端生成证书。
9. MSP 在 Hyperledger Fabric 中的分类
1.网络MSP
对整个 Hyperledger Fabric 网络中的成员进行管理;定义参与组织的 MSP ,以及组织成员中的哪些成员被授权执行管理任务(如创建通道)
2.通道MSP
对一个通道中的组织成员进行管理。通道在特定的一组组织之间提供私有通信。在该通道的 MSP 环境中通道策略定义了谁有权限参与通道上的某些行为(如添加组织或实例化链码)。
3.Peer MSP
本地 MSP 在每个 Peer 的文件系统上定义,并且每个 Peer 都有一个单独的 MSP 实例。执行与通道 MSP 完全相同的功能,其限制是它仅适用于定义它的 Peer。
4.Orderer MSP
与 Peer MSP 相同,Orderer 本地 MSP 也在其节点的文件系统上定义,仅适用于该节点。
5.User MSP
每一个组织都可以拥有多个不同的用户,都在其 Organizations 节点的文件系统上定义,仅适用该组织(包括该组织下的所有 Peer 节点)。
10. MSP 是如何实现对身份的验证?
身份验证过程:
首先,使用证书颁发机构对用户身份进行验证。证书颁发机构标识应用程序、Peer 和 Orderer 标识,并验证这些凭据。通过使用签名算法和签名验证算法生成签名。具体地,生成签名以签名算法开始,签名算法利用与其各自身份相关联的实体的凭证,并输出认可。生成签名,该签名是绑定到特定标识的字节数组。
接下来,签名验证算法将身份,认可和签名作为输入,如果签名字节数组与输入的认可的有效签名相对应,则输出 'accept',否则输出 'reject'。如果输出是 'accept',则用户可以看到网络中的事务并与网络中的其他参与者执行事务。如果输出为 'reject',则表示用户未经过身份验证,并且无法向网络提交事务或查看任何的事务。
11. 用户分类举例
在学历征信溯源系统中,由于系统需要保证人才受教育情况真实性,所以对于系统的用户而言,不可能由用户自己添加相应的学历信息,而是由具有一定权限的用户来完成添加或修改的功能。但普通用户可以通过系统溯源功能来确定信息的真伪。所以我们将系统用户的使用角色分为两种:
普通用户
普通用户具有对数据的查询功能 ,但实现查询之前必须经过登录认证:
- 用户登录:系统只针对合法用户进行授权使用,所以用户必须先进行登录才能完成相应的功能。
- 查询实现:查询分为两种方式实现
(1) 根据证书编号与姓名查询:根据用户输入的证书编号与姓名进行查询。
(2) 根据身份证号码查询:根据用户输入指定的身份证号码进行查询,此功能可以实现溯源。
管理员用户
管理员用户除具有普通用户的功能之外,额外添加了两个功能:
- 添加信息:可以向系统中添加新的学历信息。
- 修改信息:针对已存在的学历信息进行修改。