有小伙伴关心Fabric如何与IPFS相结合,本节我们来聊聊为什么要使用IPFS,哪些场景需要使用IPFS,并使用ipfs golang sdk 管理IPFS数据。
1. 什么是IPFS
IPFS是分布式存储,可将文件信息存储至IPFS系统,并返回文件Hash值,用户可通过Hash值查询到文件内容。
2. IPFS方案设计
2.1 区块链存储文件的缺点
性能考量
:在第22节中介绍一笔交易如何经过交易执行、背书、排序、落块等流程,如果交易内容中包含一个5K的文件,那么在执行上述流程中交易会在各系统、节点间进行传输,将会造成很大的网络开销。
存储考量
:区块链是对等分布式存储系统,如果有10个Peer节点,3个Orderer节点,每个节点存储完整区块链数据,文件数据将会存储13份,极大浪费存储。
隐私考量
:如果文件内容涉及到企业核心机密,不能将原文存储到区块链上。
2.2 设计一个解决上述问题的方案
上图比较好理解,业务传输过来的交易其中包含图片、文件等占用大空间的字段&