Hyperledger Fabric上的无限组织

时间:2019-01-15 16:18:54

标签: architecture hyperledger-fabric hyperledger

概述

我的区块链架构要求每个用户将其数据保密。可以有无限数量的用户(例如数百万)。按照Hyperledger Fabric's documentation

  

组织可以像跨国公司一样大,也可以像个人一样小

这是我想到的一种架构:

  1. 我的公司将在业务网络上拥有组织A
  2. 每次用户注册时,我都会在业务网络上创建一个新的组织N和新的渠道C。
  3. 每个新频道将有两个成员:组织A和用户新添加的组织N

我故意不选择Private Data,因为Add an Org to Channel tutorial建议如果在特定渠道中存在N个组织,则N-1个组织必须签署交易以允许新组织进入。因为零每个用户组织之间共享数据,所以我创建了无限制的渠道(每个用户组织一个渠道)。

问题:

  1. 我试图避免在尝试向现有渠道添加新的组织时会增加的线性复杂度。我的体系结构是否有效地解决了复杂性的线性增长?
  2. 我在设计上遇到其他问题了吗?
  3. 关于我的设计有悖常理吗?

2 个答案:

答案 0 :(得分:3)

我认为在拥有数百万用户的情况下为每个用户创建一个组织是一个好主意,这很明显。在Hyperledger中,组织将拥有自己的对等实体,这在用户级别上没有意义。除此之外,即使从维护的角度,更不用说构建的角度,管理具有无限数量的组织和渠道的几乎无限的网络也是不切实际的。

我建议您探索其他保护用户数据安全的方法。一种方法是对它加密,对其进行哈希处理,无论哪种情况都适合您自己的情况,然后将其存储在分类帐中。但随后,用户仍将属于一个或多个组织,而组织的总数是可以管理的。

根据您到目前为止的说法,我不认为Hyperledger是您的理想之选。也许您自己的以太坊网络可能会更好,因为那里有用户级别的帐户。如果您不需要区块链解决方案,则可能想要遵循构建此类内容的标准方法。

答案 1 :(得分:2)

从技术角度看,拥有大量的双边渠道并没有真正的问题。添加新组织的过程意味着您需要创建新通道,将用户对等方加入到该通道,将组织A加入到该通道,然后实例化该通道上的任何链码。相当容易自动化。在某个时候,您可能需要为组织A创建多个对等方,并在这些对等方之间分配渠道。

另一方面,您可以看看结合使用基于状态的认可的私有数据。与其在Org A和每个用户之间创建频道,不如创建一个Org A / Org N集合,然后使用基于状态的认可仅要求Org A和Org N认可。这里的缺点是Org N + 1 ... Org N + X最终会为所有用户带来所有键/值的哈希值……您可能不希望这样做(尤其是因为它要求用户存储与他们无关的数据)。