在区块链中保存文件的最佳实践

Posted

技术标签:

【中文标题】在区块链中保存文件的最佳实践【英文标题】:Best practice to save files in blockchain 【发布时间】:2018-10-28 08:13:09 【问题描述】:

将文件保存为区块链数据的一部分的最佳做法是什么?我有非常大的文件要保存。

我们不能将这些文件保存在云存储中(像保管箱这样的集中式解决方案),并使用文件哈希将它们与区块链数据链接起来吗? 还是使用像 IPFS 这样的分布式文件存储更好? 或者在安全性、体积、性能和容错性方面有没有更好的解决方案。

【问题讨论】:

SIA-Coin 以去中心化文件托管合约和基础设施/区块链/分类帐为中心,以支持存储大量数据等用例。看看这里:sia.tech 【参考方案1】:

您不想直接使用传统的区块链。区块链有利于交易信息/状态变化,大数据存储通常是个坏主意。这是由于存储数据和安全性的高成本。我建议看看另一种去中心化的存储机制。散列链接是一个名为 MedRec 的小组已经试用过的东西,你可以看看。

https://viral.media.mit.edu/pub/medrec

否则,IPFS 是一个选项,以及 Sia 和 StorJ。分布式哈希表是一个值得研究的领域。

https://www.ipfs.io/

https://storj.io/storj.pdf

https://sia.tech/

这个领域仍然是新领域且发展迅速,因此标准和技术仍在制定中。我建议您单独阅读每个选项,然后找出最适合您的问题的解决方案。

【讨论】:

【参考方案2】:

这取决于(当然!)您的目标是什么。如果区块链中的所有参与者都可以访问 Dropbox 之类的东西,或者访问权是由区块链提供的,那么在那里存储数据就可以了。您只需将文件的哈希存储在区块链中,以便任何检索文件的人都能够验证文件是否有效。只要访问控制机制适合您的用例,您就可以使用 IPFS 或 Google Drive 或任何其他机制来共享数据。如果需要额外的隐私,您可以以加密形式存储文件,并使用区块链按需向授权用户提供解密密钥。这通常被称为链下存储,是一种常见的设计模式。

【讨论】:

以上是关于在区块链中保存文件的最佳实践的主要内容,如果未能解决你的问题,请参考以下文章

django 在模型自定义保存中访问上传的文件,最佳实践?

在内部存储最佳实践中保存大量图像

在tomcat上保存临时文件的最佳实践? [复制]

将应用程序配置保存在 plist 文件中的最佳实践

保存文件的最佳实践 - python pickle 用例

软件工程与实践MerkleProof和MerkleSortTree,如何判断事务是否存在与区块链中,以及不存在证明。