IPFS(InterPlanetary File System)是一种基于内容的网络。它是分布式的,去中心化的,来自任何节点的文件永久保存在多台设备之中,从而形成一个“文件系统”。该系统主要面向互联网用户,并籍此来改善网络地址和传输文件的方式。

IPFS 是由 Juan Benet 创建的,也因为它是一个社区驱动的项目,他和贡献者团队合作,不仅在算法,协议和实现的完善中贡献良多,并且在开发技术细节、测试和社区管理上也积极参与。
IPFS的技术基本实现在[Go编程语言](https://baike.baidu.com/item/Go%E7%BC%96%E7%A8%8B%E8%AF%AD%E8%A8%80/11489360)上,使得它能够在Windows,MacOSX和Linux等计算机系统中被部署使用。
IPFS有着多种功能,被称为“版本化”。它可以实现点对点传输,实际上它还支持分片文件,并支持多种在线服务(如搜索、文件储存、聊天室等)的应用程序。
IPFS的核心协议是内容寻址(Content Addressing),它运用了一种称为“哈希算法”(Hash Algorithm)的地址方式。哈希算法可以将文件和数据结构转换成固定长度的字符串,哈希算法的话可以确保内容的可用性,并提供有效的去重复功能,在整个网络中几乎可以达成唯一性解决方案。IPFS 对主流文件类型支持都良好,包括:MP3,JPEG,GIF,HTML等等。
IPFS 实现了 P2P (Peer-to-Peer)传输,它可以让节点相互连通,使得从任何一个结点可以获取到它想要的数据。在 IPFS 的传输过程中,会产生一个唯一的标识来跟踪文件的路径,这种文件的传输过程可以比较比网络传输的更快、更安全、更可靠。
IPFS 的文件储存功能可以将文件永久保存在多台设备当中,从而形成一个“文件系统”,即使一台电脑或节点损坏,所有的文件还是会安全地保存在另外的节点。
在 IPFS 中,用户可以搜索文件并下载,这也使得用户可以在不同平台或地区访问 IPFS 网络,IPFS 网络甚至可以在不同的拥有 IPFS 节点的网络之间传输文件。
总结来说,IPFS 是一种分布式的文件系统,它的优点主要有:
* 非常适合大型文件的传输 - IPFS 非常快,而且还能实现分片文件的传输,性能更加可观;
* 内容寻址 - 哈希算法提供唯一标识符,避免冗余文件和可靠性最佳化;
* 去中心化 - IPFS 提供去中心化网络,在节点之间可以传输文件;
* 便携性 - 无论在任何地方都可以访问 IPFS,节点大小可以轻松移动或扩展;
* 进行主机 - 目前,IPFS 支持在线静态网站,静态附件和文件的主机;
* 支持各种媒介格式 - IPFS 支持各种文件格式,如:MP3,JPEG,GIF,HTML 等;
* 疯狂快速 - 在网络覆盖足够时,IPFS