ipfs是什么?IPFS星际文件系统新手指南

ipfs是什么?IPFS星际文件系统新手指南
这次让我们来谈谈去中心化储存的方式, IPFS代表星际文件系统, 它是一种开源的, 对等分布式超媒体协议, 旨在充当所有计算设备的普遍存在的文件系统 。 让我们来看看这种方式有什么特点 。
在讲解IPFS 之前, 让我们先来复习一下几个现有的文件传输协定, 第一个是hyper text 也就是http 协议, 这个协议本身是一个让你可以去读取网路上文件的协议, 而读出来你再用特定的方式来显示他, 这就是我们现在使用的web , 他依靠的是单一伺服器的内容, 所以当伺服器挂了, 你就无法读取该网站的内容, 还有因为伺服器的地缘关系, 很多时候你在很远的地方他读取的速度是相对很慢的 。
另外一个是所谓的BT , 这个协议就有点像我们现在讲的IPFS , 他是一个共享的协议, 当你发出一个文件的请求, 有很多文件的节点就会去贡献他的文件, 所以如果文件分享源离你很近的话, 相对你拿到文件的速度是快的, 而且当越多人在分享一个文件, 你能够拿到文件的速度也会变快 。
IPFS是什么IPFS是一个分散式的文件储存系统, 他将每一台参与的电脑当成一个节点, 储存在这上面的文件会使用杂凑技术变成content identifier — CID来代表这个文件, 然后将这些文件拆成一个个小的文件, 储藏在这个网路上的节点之上, 当用户需要调阅这个文件的内容时, 在使用P2P的方式去找到储藏有这个部分文件的节点, 取出来进行读取 。
IPFS如何工作?基本上, IPFS与我们今天所知的万维网类似, 但是更像是单个BitTorrent群, 它们在单个Git存储库中交换对象 。
通过基于BitTorrent的协议分发文件 。 重要的是, IPFS是Kodemila, BitTorrent和Git的一种组合, 可以创建Internet的分布式子系统 。
协议的设计提供了与Git一样的Internet历史版本 。 每个文件及其中的所有块均具有唯一的标识符, 该标识符是加密哈希 。 跨网络删除重复项, 并跟踪每个文件的版本历史记录 。
这将导致永久可用的内容, 其中网页不会由于服务器故障或Web主机损坏而消失 。
此外, 通过此机制可以保证内容的真实性, 并且在查找文件时, 您实际上是在要求网络查找在与该内容关联的唯一标识哈希后面存储该内容的节点 。 IPFS中节点之间的链接采用加密哈希的形式, 由于其Merkle DAG数据架构, 这是可能的 。 Merkle DAG对IPFS的好处包括:
内容寻址–内容具有唯一的标识符, 该标识符是文件的加密哈希 。
无重复-内容相同的文件不能复制, 只能存储一次 。
防篡改–使用校验和来验证数据, 因此, 如果哈希发生变化, 则IPFS将知道数据已被篡改 。
IPFS使用Merkle链接将文件结构彼此链接, 并且每个文件都可以使用称为IPNS的分散式命名系统通过人类可读的名称找到 。 Merkle有向无环图(DAGS)的实现对于协议的基础功能很重要, 但是比本文的范围更具技术性 。
分散在这网路上, 每一个文件都有一个独特的Content Identification, 这个数字可以代表这个文件, 让我们在寻找文件的时候不是因为这个文件在哪里, 而是这个文件是什么 。 让整个查找的逻辑相对会比较直接, 然后这个主文件又可以拆成很多小文件, 而这些小文件储存在不同电脑里面, 理论上, 因为每个相同文件会有一样的号码, 所以如果你的文件跟其他人是同一份, 你们就可以共享这个内容, 也不会有冗余文件的问题 。
在软体架构上, 跟其他的分散式储存一样, 将整个文件分散成很多个部分, 分散在不同部分去做储存, 是很常见的 。 因为当我们在处理大型的文件的时候, 如果你不把它分散出来, 你可能会花很长一段时间再将这个文件从硬碟读出来, 而读取硬碟其实是相当慢的 。 首先, 你必须将文件读出来写入在记忆体里面, 才可以由记忆体去显示出来 。
反之, 如果你将文件切割成很多的部分的时候, 理论上你就可以平行的从不同电脑里面去读取这个文件, 此时就像是在一个车站一样, 当旅客可以从不同出口进出的时候, 你就可以更快的将旅客疏散出来 。 例如, 我们在跨年的时候, 我们可以看到, 捷运局会希望你可以从象山站, 甚至永春站来进出捷运, 这都是一样的道理, 但如果大家都挤在市政府站, 那么大家就要等很长一段时间才能够从101 疏散出来 。
速度因为分散的关系, 你可能会采用离你比较近的节点, 这个节点可以更快的去存取你要的资料, 在传统的中心化架构里面, 如果你是在美国的机房, 因为距离的关系, 当你必须要存取这个网页的时候, 你可能必须要花比较长的时间来存取这个文件, 所以我们有CDN 这个技术, 他就是希望你能够针对内容在比较近的机房, 进行内容的存取, 但现在这个分散的技术, 理想的状况, 假设很多人进行分享的话, 你可能可以从就近的电脑来存取别人分享的文件, 这不就是最天然的CDN 吗?

推荐阅读