Hyperledger Fabric之MSP详解

Fabric评论825阅读模式
摘要

HyperledgerFabric之MSP机制,功能及使用场景详解。

Hyperledger Fabric之MSP详解

 

一.Fabric1.0中一个完整的fabric账号(MSP)

Hyperledger Fabric之MSP详解

1.msp文件夹

Hyperledger Fabric之MSP详解

2.tls文件夹

主要存放加密通信相关的证书文件。

二.使用

1.启动Orderer需要的账号

环境变量设置账号:

- ORDERER_GENERAL_LOCALMSPDIR=/traceabilityProject/orderer/crypto-config/ordererOrganizations/trace.com/orderers/orderer1.trace.com/msp

Hyperledger Fabric之MSP详解

Hyperledger Fabric之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

Hyperledger Fabric之MSP详解

5.基于cryptogen成员管理体系

cryptogen可以新增节点,若需要增加新节点,可以给配置文件中Start属性赋值上一次的count。

如果需要给组织Org1新增加3个Peer节点,可以使用下面配置:

Hyperledger Fabric之MSP详解

但是需要动态地增加用户账户目前版本Fabric无法实现。

使增加节点和用户账号的方式简单的方法:。

6.Fabric-ca

(1)配置fabric-ca-server并启动

Hyperledger Fabric之MSP详解

(2)使用fabric-ca-client

Hyperledger Fabric之MSP详解

Org1.example.com的MSP文件:

Hyperledger Fabric之MSP详解

7. MSP结构设计

若有两个独立的组织,则fabric生成MSP:

Hyperledger Fabric之MSP详解

事业部独立组织:

Hyperledger Fabric之MSP详解

“加盟店”组织:

Hyperledger 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) 根据身份证号码查询:根据用户输入指定的身份证号码进行查询,此功能可以实现溯源。

管理员用户

管理员用户除具有普通用户的功能之外,额外添加了两个功能:

  • 添加信息:可以向系统中添加新的学历信息。
  • 修改信息:针对已存在的学历信息进行修改。

Fabric最后更新:2020-11-6
FISCO BCOS证书与鉴权体系 BCOS

FISCO BCOS证书与鉴权体系

区块链之所以被称为“信任的机器”,是因为其通过密码学算法使各不信任的节点互相协作达到信任。这一理念在联盟链中的体现主要是基于PKI(公钥基础设施)建立证书体系,FISCO BCOS中的证书主要满足SS...