如何将 pdf、docs 文件等上传到 hyperledger 区块链

How to upload pdf, docs files etc.., to hyperledger blockchain

我目前正在 Hyperledger 中开展一个项目,我想通过在网络节点上分发文档文件并将文档文件取回,将 pdf 和 docs 等文件上传到 hyperledger 区块链。请帮助我如何做以及我应该如何批准。如果在 Hyperledger 中无法实现,请告诉我可以通过哪个区块链实现。提前致谢。

一般来说,区块链技术不适合存储大文件。区块链需要太多的过程和存储复制。而且,还有一些比较坑,比如区块大小和保密性。

一种常见的方法是将文件存储在IPFS(https://ipfs.io/)等分布式P2P存储系统中,并将文件的哈希值(哈希值在IPFS中用作文件引用,以确保完整性)存储在区块链的状态。

您可能还需要 IPFS 集群 (https://cluster.ipfs.io/) 来确保持久性和复制。

IPFS不支持加密,所以,如果需要的话,应该在IPFS之外端到端应用,先加密再存储,再访问再解密。

从您的评论来看,您似乎正在考虑使用 Hyperledger Fabric。使用 Fabric,您应该能够编写链代码和存储文件的客户端。它仍然可能不是最好的方法,您应该仔细考虑将大文件的存储与基于区块链共识的链代码分开,尤其是当在链上存储文件的哈希就足够了时。每个节点都需要存储文件并达成共识,即所有节点都存储相同的文件(具有相同的状态)。这在计算和网络方面非常昂贵 i/o。

使用 Fabric,您应该能够在代码中做任何事情,只要它是确定性的而不是一个漫长的 运行 过程。根据我的经验,最小化任何区块链上的代码和状态是最佳实践。

这里是 Hyperledger Fabric 实现的完整示例:https://fabric-chaintool.readthedocs.io/en/latest/getting-started/

我同意 Kekomal 的观点,不要将大文件放在区块链中,因为它会膨胀。而是在链外存储 binary/large 个文件。 Hyperledger Fabric (HLF) 中的一个选项是 私有数据集合 ,您可以在其中将二进制文件作为 base64 文本存储在 CouchDB 中,并且仅将 checksum/hash 存储在链上,但这会增加存储空间要求 - 基于 base64.guru a 20KB pdf in base64 text will be 26KB - probably significant with very large binary files, as well as improper use of a document db. Private data collections are nice as HLF let's you share files with various options