找回密码
 立即注册

扫一扫,登录网站

首页 区块链生态 查看内容
  • 9285
  • 0
  • 分享到

【观点】从HTTP到IPFS,星际文件系统能变革信息传播的方式吗?

2018-8-23 13:19

来源: 链得得

分析IPFS的极简主义


2014年5月,墨西哥小哥Juan Benet与他的几个斯坦福大学同学一起发明了IPFS。在创办IPFS之前,Juan Benet是典型的国外常春藤学生极客,有一个开挂般的人生。他是斯坦福大学的本科和硕士毕业,在斯坦福读硕士的期间就参与创立了Loki studios,担任联合创始人和CTO,这是一家手游公司,后来被雅虎收购。2011年入驻斯坦福学生创业孵化中心StartX EIR,2012年,毕业后创办了Athena,这是一个做了一年多的时间后,于2014年5月份创办Protocal Labs。
   
Protocal Labs刚以创立就得以加入美国硅谷顶级孵化器Y-Combinator,IPFS是他们做的第一个产品。Protocol Labs 在创建IPFS的时候给它取名为“InterPlanetary File System(星际文件传输)”也是有深刻含义的。Protocol Labs希望构建一个点对点的分布式文件系统,通过底层协议,让全世界所有人都能够轻松从IPFS系统上提取文件,且不受防火墙的影响。甚至如果科技发展到一定程度,需要进行星球与星球信息传输时,IPFS也可以提供快速存储文件的服务。

1.存储

在IPFS中,信息可以存储进IPFS系统中的块(block)里,这些块可以存储至多256kb的数据,它们还可以链接其他IPFS块。也就是说,存储小于256kb的文件时,只需将这个文件放进一个块内就可以了。而大于256kb的文件会被分成多个256kb然后放进块中,之后IPFS将创建一个空块,该块将链接到文件的所有其他部分。这个空块就类似于一个大信封,里面会涵盖整个文件的所有部分。

系统会给同一个文件的每一个块计算一次哈希值a,所有块的哈希值a计算完毕之后,会将所有的哈希值a拼凑成一个数组b,再计算一次哈希值,从而得到最终的哈希值c。最后把最终的哈希值c和原文件捆绑起来,组成一个对象,从而形成一个索引结构d。把块和最终的索引结构d上传至IPFS节点,文件便同步到网络了。

此外,还有一种小于1kb的小文件,如果这些小文件也单独放进一个块里的话,也会造成一定的浪费。于是,IPFS把小于1kb的数据内容直接和哈希索引放在一起上传给IPFS节点,不会再额外的占用一个块。

可见IPFS的创作理念,是尽可能少的使用存储空间,尽量分散的存储文件。另外,对于相同的文件,IPFS只创建一个文件夹,系统也会自动删除重复的文件,并修改的版本历史记录,这样可以大大节省存储空间,保证整个系统的运行速度,并保证存储文件的安全,和使用的便捷。

2.读取

同样作为信息价值交换的基础,用户在IPFS上传或者使用文件时,不再是基于位置的寻址(Location based addressing),而是基于内容的寻址(Content based addressing)。也就是把“去哪找信息”的指令换成“想找什么内容”的指令。

在互联网内,下载文件或者浏览信息需要一个IP地址或者域名,而在IPFS内,每个文件都有自己的哈希值,并且一个哈希值只对应一个文件。不存在一个文件有多个哈希值,或者多个哈希值对应同一个文件的问题。因而,用户只需在IPFS内输入需要文件的哈希值,系统就会出现对应的文件。这些文件是分布存储的,所以只要有一个用户有对应的文件,就算部分节点罢工或者不在线,也不会影响文件的读取。

具体在IPFS系统种下载文件时,首先,需要矿工根据最终哈希数值搜索该哈希的索引结构,并下载下来。然后,用户就可以根据哈希索引搜索到文件所在的节点位置。用户将节点上的块下载下来之后,IPFS将根据哈希数组的顺序,把文件重新组合出来,用户就可以使用了。

可以看出,IPFS将文件细分,使上传略显复杂,其目的是使用户在下载时更加便捷。毕竟,小文件的下载比大文件来得更加简单方便。

版权申明:本内容来自于互联网,属第三方汇集推荐平台。本文的版权归原作者所有,文章言论不代表链门户的观点,链门户不承担任何法律责任。如有侵权请联系QQ:3341927519进行反馈。
相关新闻
发表评论

请先 注册/登录 后参与评论

    回顶部