Couchdb Hyperledger结构专用数据收集,用于分发大型文件

Couchdb Hyperledger结构专用数据收集,用于分发大型文件,couchdb,hyperledger-fabric,hyperledger,blockchain,Couchdb,Hyperledger Fabric,Hyperledger,Blockchain,我们目前正在研究Hyperledger结构,从文档中我们知道可以在一些组织子集之间建立私人数据收集。在这些组织中的每一个上都会有一个私有的状态数据库(aka.side DB),根据我的理解,side DB就像一个普通的状态数据库,通常采用CouchDB 我们的主要要求之一是,我们必须在某些对等子集之间分发文件(如PDF)。每个文件都必须分发并存储在相关对等方,因此不接受像AWS S3或其他云存储/服务器存储这样的集中式存储。由于文件可能很大,因此必须存储物理副本并在链外传播。事务块只能存储这些文

我们目前正在研究Hyperledger结构,从文档中我们知道可以在一些组织子集之间建立私人数据收集。在这些组织中的每一个上都会有一个私有的状态数据库(aka.side DB),根据我的理解,side DB就像一个普通的状态数据库,通常采用CouchDB

我们的主要要求之一是,我们必须在某些对等子集之间分发文件(如PDF)。每个文件都必须分发并存储在相关对等方,因此不接受像AWS S3或其他云存储/服务器存储这样的集中式存储。由于文件可能很大,因此必须存储物理副本并在链外传播。事务块只能存储这些文档的散列

我的想法是我们可以利用私人数据收集和侧数据库。物理文件可以存储在侧数据库中(可能以base64string的形式),并可以通过Gossip协议(P2P协议)分发,这是Hyperledger结构中的一项功能。文档的散列以及其他事务细节可以像往常一样存储在块中。由于它们都是Hyperledger Fabric的本机功能,我希望通过八卦协议传输文件和创建相应的块将同步

我的问题是:

  • 这种方法是否可行以达到要求?(创建新块时将文件分发给不同的对等方)我觉得这有点像黑客
  • 这是实现我们目标的好方法/实践吗?我一直在做研究,但我找不到任何类似的实现 我在网上找到的大部分教程都预先假定文件可以存储在单个集中存储中,如云或某种服务器,而我们的需求也要求文件的分发。我上述的想法是否可以接受和可行?我们对区块链非常陌生,欢迎提供任何建议

    这种方法是否可行以达到要求?(创建新块时将文件分发给不同的对等方)我觉得这有点像黑客

    因此,私有数据分发的工作流程是,订购方将只包含哈希的私有数据事务捆绑起来,以将数据验证到新的块中。因此,您不必对此进行变通,因为私有数据提供了默认值。数据本身通过gossip数据分发协议在授权的对等方之间进行分发

    这是实现我们目标的好方法/实践吗?我一直在做研究,但我找不到任何类似的实现

    是和否。我可以这么说。但这取决于您的文件大小和数量。该结构能够提供高吞吐量。我会测试一下,看看它是否符合我的要求

    另一种方法是绕过并使用IPFS(一种p2p文件系统)。你可以在这里阅读更多关于这种方法的信息

    这是一篇讨论如何在链上存储“较大文件”的文章。也许这也能提供一些建设性的见解。但请记住,这是一篇较老的文章。

    请检查,它是在链上和链下存储任何文档(pdf或其他文档)的实现。已经完成了


    虽然该实施方案尚未公开,但它的使用情况有很大的差异,可能会从中传播一些信息

    感谢您的大力投入……我也阅读了很多关于IPF的内容,但我们的管理层希望尽可能完全采用Hyperledger结构,因此如果使用本机功能(例如私人数据)能把工作做好,这是最好的办法。只是我不确定我的想法是否正确…哈哈,好的。那么,要么告诉你的管理层,区块链不打算用作完全功能的文件存储系统(这就是为什么IPF等存在于p2p方法中),然后他们允许你这样做。或者只是实现一个PoC,使用这种私有数据方法并运行一个压力测试:)PoC方法是一个很好的建议,我们实际上会这样做,谢谢!至少使用私有数据的方式是可行的,只是文件的大小有限,我们必须对其进行测试,我认为这是有意义的。