IPFS——如何构建下一代互联网

[复制链接]
9533 |0
发表于 2019-8-27 12:05:53 | 显示全部楼层 |阅读模式


我们现在使用的互联网,不管是百度、滴滴还是抖音,都是基于HTTP协议,也就是超文本通信协议,它是一种基于在不同个体之间传输超媒体信息的应用层协议。HTTP从1999年诞生至今,为整个互联网的繁荣发展居功至伟,甚至可以说是人类最伟大的发明之一,有了HTTP,才有浏览器、网站、客户端、小程序等一切互联网应用形式的存在。

由于HTTP协议的本质都是基于C/S架构或B/S架构,都是通过访问中心化服务器来获取数据,随着互联网用户的急剧增加以及数据量的爆炸式增长,HTTP协议的一些弊端也逐渐显现出来。
首先,HTTP对主干网络依赖严重。所有数据存储在一个地方,为寻求规模效应,机房就会建设在一个地方,过于中心化。主干网络受制于战争、自然灾害、中心服务器宕机等因素,都可能造成整个互联网中断服务。为了支撑HTTP协议,服务器7*24小时开启,对于大流量公司,比如百度、腾讯、阿里等,投入大量资源维护服务器和安全隐患,防止网络攻击。



其次,由于使用HTTP协议每次都需要从中心化的服务器下载完整文件,中心化的通讯模式导致所有终端都要从一个Web服务器查找数据,这就要求服务器的带宽很大,浪费了很大的带宽,所以它的效率很低,这从而导致它的成本非常高。
第三,服务器上的文件经常被删除,而且大多数情况下不受个人意愿所控制。由于文件被删除或者服务器被关闭,都会导致你打开的网站出现“404 Page NotFound”这种错误提示。比如近几年腾讯微云、金山快盘、新浪微盘都先后宣布关闭,如果你存在网盘上的数据没有及时下载保存在本地硬盘上,你的数据将会永久丢失。



第四,并发量制约网络访问速度。比如双11抢购时无法提交订单,春运时在12306上抢不到票等情况屡屡出现,就是因为前面提到的HTTP协议对于主干网络过度依赖。
最后,网络攻击泛滥。由于很多东西都放在同一个节点上,就很容易被黑客攻击,用户的数据存在丢失、被损坏以及被窃取的隐患。比如最近闹得沸沸扬扬的Facebook用户数据被盗取的问题。



所以,目前建立在HTTP上的这种信息交换方式已经不能满足现在互联网企业以及用户对于信息交换的需求了,亟需一种更安全、更高效、更开放底层协议来解决现状。

在IPFS出现以前,也出现过一些分布式存储网络的项目,其中比较出名的有三个,分别是:BitTorrent、Kazaa、Napster。很多人都尝试利用那些项目搭建出一个比HTTP更厉害的网络,但由于当时的技术瓶颈,都以失败告终。



Juan Benet在2014年5月发起IPFS项目,并于2015年1月成立协议实验室(Protocol Lab),正式发布IPFS。IPFS发布至今已经有四年多,一直有条不紊的在进行着,目前全球基于IPFS协议的网络节点已经超过上百万个,存储在IPFS网络上的文件超过100亿份。
到底什么是IPFS?为什么说他有可能成为下一代互联网的底层通信协议?

IPFS(InterPlanetary File System)中文名叫星际文件系统,是一种基于内容寻址、版本化、点对点的超媒体传输协议,集合了P2P网络技术、BitTorrent传输技术、Git版本控制、自证明文件系统等技术,允许网络中的参与者互相存储、索取和传输可验证的数据。IPFS的目标要补充甚至取代HTTP成为新一代互联网底层通信协议。IPFS与Filecoin形成了一个分布式存储闭环,构建了一个去中心化的存储网络系统。




由于IPFS才有P2P的分布式网络技术,相对于HTTP协议更安全、更高效,使用P2P下载可以节省60%以上的带宽,使用成本更加低廉。在点对点的传输网络中,访问速度会很快,IPFS几乎不可能出现像HTTP中网络拥堵的现象。而且IPFS协议上的数据可永久保存在Web上,不再删除数据。不再依赖主干网络的分布式网络,可以有效抵御黑客对中心化服务器的攻击,用户数据和隐私可以得到更好的保护。



我们现在使用的APP以及网站的数据都是放在中心化的服务器集群中存储的,然后通过URL、URI、域名系统定位资源去访问。而IPFS是基于内容寻址,从一个资源的内容计算出一个哈希值,这个值直接反应这个资源的内容。一个IPFS客户存储一个大文件资源到IPFS网络,当该资源较大时IPFS通过对资源文件进行分片,分别计算哈希,并通过Merkle DAG(Git数据格式)对该资源文件进行组织,每个分片可能存在一个节点或多个节点,并且可能是多个副本来保证某些节点失效时还可以在其他节点取得文件分片。
当 IPFS客户需要使用一个资源时,它会通过 DHT分布式哈希表找到其所在的节点,通过BitSwap协议(基于BT协议)回传资源并在本地使用。IPFS其中还有一块内容就是自认证SFS,简单点说就是自认证命名,例如你可以用你的身份去定义一个目录,当访问时节点可以判定你是否有权限访问目录或目录下的资源。使用IPFS对用户来说是透明的,也就是说用户只需要将需要存储的资源文件放置到自己指定的目录下,IPFS客户端会自动切割文件,分别计算HASH,通过 KAD网络将分片文件存储到全网的DHT分布式哈希表中,其中文件传输都通过 BitSwap P2P网络进行传输。
IPFS所依赖的已有技术都是上一代P2P网络的相关技术,可以理解为一个超级网盘,目前所有IPFS节点都提供存储空间同时也需要其他节点帮助自己存储资源,这本质上与BitTorrent、eMule、比特彗星等P2P软件的共享精神是一致的,即“人人为我,我为人人“,你需要别人的存储帮助同时也要求自己有共享。



协议实验室团队在开发IPFS时就采用高度模块集成化的方式,像搭积木一样去开发IPFS这个项目。IPLD、LibP2P、Multiformats这三个模块的开发,都服务于IPFS底层,IPFS应用了这几个模块的功能,集成为一种容器化的应用程序,运行在独立节点上,以Web服务的形式,供大家使用访问。而Filecoin作为IPFS的激励层,把这些应用的数据价值化,通过类似比特币的激励政策和经济模型,让更多的人去创建节点,去让更多的人使用IPFS。
IPFS协议恰到好处的解决了这个问题,存储到IPFS网络的文件会经过哈希运算,相同的内容会得到相同的加密哈希地址,需要访问这个文件只需要调用这个哈希地址,不需要进行文件的重复存储。
这就是IPFS,它可以让普通人参与提供存储节点并获取收益;它节俭,会释放出大量的被HTTP禁锢的内存资源;它永恒,随着IPFS生态的完善可以让人类文明永存。



但由于IPFS是一个开源、免费的协议,为了激励更多人使用IPFS协议,IPFS引入了Filecoin激励系统,矿哥将会在接下来的文章为大家深度解析IPFS+Filecoin是如何构建生态的。


pczcr4ctz0s.jpg

pczcr4ctz0s.jpg
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表