IPFS全称星际文件系统(InterPlanetary File System),于 2014 年由美国计算机科学家、Protocol Labs 创始人Juan Benet首次开发。
IPFS的核心是一个去中心化系统,用于存储和访问文件、网站、应用程序和数据。
Protocol Labs的工程经理Mikeal Rogers说:“世界上任何人都可以在IPFS网络中提供数据,任何人都可以安全地其他人那里接收数据。IPFS 是作为 Web 3.0 的数据传输协议而开发的,由于该协议是完全去中心化的,并且所有数据都是通过哈希处理的,因此它非常适合区块链应用程序。”
IPFS的四大技术原理:
1.分布式哈希表(DHT,全称Distributed Hash Table):是一个分布式系统, 它提供了一个类似哈希表一样的查询服务: 键值对存储在DHT中, 任何参与的节点都可以有效地检索给定键对应的值。键值对的映射由网络中所有的节点维护, 每个节点负责一小部分路由和数据存储。这样即使有节点加入或者离开, 对整个网络的影响都很小, 于是DHT可以扩展到非常庞大的节点(上千万)。
当要查找某个文件时,先找到存储文件内容的节点地址,然后从节点中查找信息,也就是说,即便不需要服务器,可以从DHT中找到对应文件存储的位置。
2.BT协议(全称BitTorrent):作为文件传输协议,BT协议与常用的Http协议不同,BT的文件传输是通过独立的用户与用户之间进行点对点传递的。
例如一个文件,由A发起共享,常用的HTTP下载中B、C、D、E、F、G都从A那儿下载,结果A不堪重负,而BT传输技术可以使得B从A处下载,下载完后C又可以从A、B处下载,大家的下载速度越来越快,这就是大家常用的“BT下载”的原理。
3.版本控制系统(Git):Git 是世界上目前最先进的分布式版本控制系统,可以用来跟踪、分支、合并和管理代码版本。
例如你需要编写一个文档,这个文档需要以不同的形式和略微变动的内容发给各个部门。如果涉及到多个部门,可能你需要写多个版本,都保存下来。这时候Git 就派上用场了,它可以自动记录每次文件的改动,还可以让同事协作编辑,方便跟踪和操作。
4.自验证文件系统(SFS,全称Self-Certifying File System):IPFS在文件命名中使用了SFS自验证,使得任何人在IPFS上发布文件对象都可以自带验证功能,其他用户也可以确认该文件是否是用户发布,保障了消息来源的准确性。