【问题标题】:can we setup one CA for multiple organization through fabric?我们可以通过结构为多个组织设置一个 CA 吗?
【发布时间】:2019-06-06 07:48:14
【问题描述】:

我在不同的机器上设置了多个组织。

Machine 1
 -> peer0.org1.example.com
 -> ca.org1.example.com
 -> orderer.example.com 

Machine 2
-> peer0.org2.example.com
-> peer0.org3.example.com

我创建了一个由所有三个组织共享的频道。

现在的问题是,当我尝试从 Org 2 和 Org 3 访问数据时,它会给出以下错误消息

未知:访问被拒绝:频道 [mychannel] 创建者组织 [Org2MSP]

另一方面,如果我尝试通过 CLI 执行相同的查询,事务将成功执行而没有任何错误

我的问题是:我们可以为多个组织设置一个 CA。如果是,如何解决拒绝访问问题?

【问题讨论】:

  • 您是否找到了针对多个组织的 1 CA 的解决方案?

标签: hyperledger-fabric hyperledger-fabric-ca hyperledger-fabric-sdk-go hyperledger-fabric-sdk-js


【解决方案1】:

回答您的主要问题:1 个 ca 服务器是否可以包含超过 1 个根身份。答案是肯定的Multiple CAs。此解决方案使用一个 1 个 fabric-ca-server 来提供超过 1 个根身份。在 Hyperledger Fabric 中,根身份用作根身份 1 组织。

但是你应该使用这种架构吗?要回答这个问题,我们必须了解 fabric-ca-server 的角色以及如何在区块链网络中处理身份(特定于 Hyperledger。)

  1. 在区块链网络内和不同组件(对等点、订购者、客户端)之间验证身份。 HLF(Hyperledger Fabric)使用了MSP(Membership Service Provider)的抽象概念。在 HLF 的当前实现中,它使用 X509 证书来构造此身份。知道唯一的要求是 X509 证书是很重要的。你确实不需要需要一个fabric-ca-server。要构建 MSP 结构,需要在 MSP 证书磁盘上具有特定结构来构建身份。所有组件都需要(某些部分)这种结构。
  2. fabric-ca-server 用于创建 MSP 结构所需的 X509 证书。例如,当您想注册一个额外的 peer、orderer、client 等时使用它。一般来说,要获取所有这些材料,您可以使用 fabric-ca-client 或 SDK。客户端能够以默认 MSP 使用的正确文件夹结构导出此材料。

那么您应该为多个组织使用 1 个 fabric-ca-server 吗?我的回答是否定的。您想要的是所有组织彼此独立,并且 1 ORG 不能为另一个 ORG 构建身份。如果您使用 1 台服务器来包含多个身份,这也意味着私钥材料存储在 1 台服务器上,因此您可以为所有组织创建身份。

所以下一个问题如何解决拒绝访问实际上是一个不同的问题。这很可能是由于 HLF 用于指向 MSP 文件夹结构内的特定部分的环境变量配置不正确。因此,您需要查看 CLI 中使用了哪些环境变量,并在其他容器中使用相同的环境变量(如果您想拥有相同的身份)。

TL;DR; fabric-ca-server 用于创建可用于构造 MSP 的 X509 证书。 MSP 是 HLF 内部的实际身份,最佳做法是为每个组织使用 1 个 root-ca。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-06-11
    • 2015-12-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-09-16
    相关资源
    最近更新 更多