导 读
本文为IPFS系列文第4篇,详解IPFS的核心模块——Bitswap。
(之前的技术干货已为读者详细讲解了IPFS文件存储、文件系统等相关内容,精彩回顾详见文末链接🔗)
星际文件系统(InterPlanetary File System,缩写IPFS)是一个旨在创建持久且分布式存储和共享文件的网络传输协议。
与传统的文件系统不同,它是一种基于内容寻址的点对点超媒体分发协议。
IPFS网络中的节点构成一个分布式文件系统网络,其中Bitswap是IPFS的核心模块,负责与网络中其他节点之间请求和发送数据块。
图1
IPFS将文件分解为称为block的数据块,这些块由内容标识符(CID)标识。
IPFS文件内容存储在不同的节点上,每个节点存储root block,少量节点存储完整文件数据,大部分节点存储部分文件block。因为block分散存储在不同节点,Bitswap协议解决了从多个节点高效获取全部数据块的问题。
图2 多节点文件存储示意图
总体架构
本文基于Bitswap v0.3.3版本进行分析。
IPFS向Bitswap获取block,Bitswap是IPFS exchange接口的具体实现,负责完成IPFS网络数据交换功能。
图3 B