IPFS全称为Inter Planetary File System(以下简称IPFS)
IPFS是一种分布式文件存储协议,允许全球的计算机将文件作为巨大的对等网络的一部分进行存储和提供。
世界上任何地方的任何计算机都可以下载IPFS软件并开始托管和提供文件。
如果有人在其计算机上运行IPFS并将文件上传到IPFS网络,则该文件可以被世界上运行IPFS的任何其他人查看和下载。
同时因为IPFS去中心化的特点注定其无法被监管,导致了在国内被墙
互联网是建立在HTTP协议上的. HTTP协议是个伟大的发明, 让我们的互联网得以快速发展.但是互联网发展到了今天HTTP逐渐出来了不足.
HTTP的中心化是低效的, 并且成本很高
使用HTTP协议每次需要从中心化的服务器下载完整的文件(网页, 视频, 图片等), 速度慢, 效率低. 如果改用P2P的方式下载, 可以节省近60%的带宽. P2P将文件分割为小的块, 从多个服务器同时下载, 速度非常快.
Web文件经常被删除
回想一下是不是经常你收藏的某个页面, 在使用的时候浏览器返回404(无法找到页面), http的页面平均生存周期大约只有100天. Web文件经常被删除(由于存储成本太高), 无法永久保存. IPFS提供了文件的历史版本回溯功能(就像git版本控制工具一样), 可以很容易的查看文件的历史版本, 数据可以得到永久保存
中心化限制了web的成长
我们的现有互联网是一个高度中心化的网络. 互联网是人类的伟大发明, 也是科技创新的加速器. 各种管制将对这互联网的功能造成威胁, 例如: 互联网封锁, 管制, 监控等等. 这些都源于互联网的中心化.而分布式的IPFS可以克服这些web的缺点.
互联网应用高度依赖主干网
主干网受制于诸多因素的影响, 战争, 自然灾害, 互联网管制, 中心化服务器宕机等等, 都可能是我们的互联网应用中断服务. IPFS可以是互联网应用极大的降低互联网应用对主干网的依赖.
IPFS使用了 分布式哈希表 BT技术 Git版本协议和SFS自验证文件系统四种技术
分布式哈希表(DHT)主要思想是全网的计算机共同维护一个巨大的文件索引哈希表,这个表每一条内容是文件哈希直和对应的存储该文件的计算机的IP地址
由于这张表很大所以将其分成多个部分每个节点维护一部分就行,避免了太多的算力浪费
当查询文件时首先通过节点路由的方式找到所维护小块哈希表有对应文件哈希内容的节点,然后从该节点拿到表中的信息
即通过表找到存储该文件的节点IP地址,并从该节点获取到想查询的文件
BitTorrent(中文全称比特流,简称BT,又称变态下载)是一个多点下载的P2P软件。不象FTP那样只有一个发送源,BT有多个发送点,当你在下载时,同时也在上传,使大家都处在同步传送的状态。
BT首先在上传者端把一个文件分成了多个部分,客户端甲在服务器随机下载了第N部分,客户端乙在服务器随机下载了第M部分。
这样甲的BT就会根据情况到乙的电脑上去拿乙已经下载好的第M部分,乙的BT就会根据情况去到甲的电脑上去拿甲已经下载好的第N部分。
版本控制系统提供了对随时间变化的文件进行建模的设施,并有效地分发不同的版本。流行版本控制系统Git提供了强大的Merkle DAG对象模型,以分布式友好的方式捕获对文件系统树的更改。
SFS使用一种新的解决思路,将公钥信息嵌入到文件名中,这种命名为“自验证文件名”。这样就没必要在文件系统内部实现密钥管理了。秘钥管理的功能就加入到用户对文件命名的规则中。用户可以根据自己需要选择加密方式。 SFS核心思想有如下几点:
IPFS 上的每个文件都有一个唯一的地址,该地址由组成该文件的确切位确定。即使只有一位更改,整个地址也会更改。这使用户可以确定文件是否曾经被篡改过。
实现弹性,因为 IPFS 上的每个文件都可以托管在许多不同的位置,但可以从同一地址访问。如果托管该文件的一台计算机脱机,则网络将仅从另一台计算机检索该文件。
参考资料
IPFSPowers the Distributed Web
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。