区块链技术Hyperledger Fabric上的无限组织

3

概述

我的区块链架构要求每个用户保持其数据私有。可以有无限数量的用户(例如数百万人)。根据Hyperledger Fabric的文档

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

这是我想到的一种架构:

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

我故意没有选择私有数据,因为向通道添加组织教程建议,如果在特定通道中存在N个组织,则必须由N-1个组织签署交易以允许新组织进入。因为每个用户组织之间没有数据共享,所以我创建了无限的通道(每个用户组织一个通道)。

问题:

  1. 我试图避免向现有通道添加新组织时会出现的线性复杂度。我的架构有效地解决了线性增长的复杂度吗?
  2. 这种设计是否会遇到其他问题?
  3. 我的设计是否存在一些反直觉的地方?

这是一个糟糕的架构设计。Hyperledger Fabric旨在解决业务问题,因此它具有代表业务单位的组织概念。看起来您有不同的要求。请尝试其他平台。这个设置将无法与Hyperledger一起使用。 - Nitish Bhardwaj
@NitishBhardwaj 我也觉得HL Fabric适用于“企业”。但是我从他们的官方文档中读到了这句话:“一个组织可以像跨国公司一样大,也可以像个人一样小。” 这帮助我重新思考了HL对个人用户仍然是一个很好的选择。 - Tushar Goswami
嗨@TusharGoswami,您是否已经按照这个架构进行了开发和部署,并且最终结果如何? - Valgrind1691
@Valgrind1691,我已经采用了相同的架构。但是我还需要在几千个一起工作的组织中进行基准测试。 - Tushar Goswami
2个回答

3
从技术角度来看,拥有大量双边通道并没有实质性的问题。添加新组织的过程需要创建新通道,将用户对等体加入通道,将Org A加入通道,然后在该通道上实例化任何链码。这个过程非常容易自动化。在某些时候,您可能需要为Org A创建多个对等体,并在这些对等体之间分配通道。
另一方面,您可以考虑使用私有数据结合基于状态的背书。不必为Org A和每个用户之间创建通道,而是可以创建一个集合Org A / Org N,并使用基于状态的背书仅要求Org A和Org N背书。这种方法的缺点是Org N + 1 ... Org N + X将得到所有用户密钥/值的哈希值...这可能不是您想要的(特别是因为它要求用户存储与他们无关的数据)。

3
我认为显而易见的是,当你拥有数百万用户时,为每个用户创建一个组织并不是一个好主意。在Hyperledger中,一个组织会有自己的同行,这对用户层面并没有意义。此外,管理一个几乎无限的网络,带有无限数量的组织和通道,甚至从维护角度来看都是不切实际的,更不用说从构建角度来看了。
我建议您探索其他保护用户数据的方式。一种方法是对其进行加密、哈希或者其他在您场景下合理的方式,然后再将其存储到账本上。但是,用户仍然会成为一个或多个组织的一部分,其中组织的总数量是可管理的。
根据你目前的说法,我不确定Hyperledger是否适合你。也许你自己的以太坊网络会更适合这个问题,因为在那里你有用户级别的账户。如果您不需要区块链解决方案,您可能想要采用标准的方式来构建类似的系统。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接