LOADING...
LOADING...
LOADING...
当前位置: 玩币族首页 > 区块链资讯 > 节点云公开课|什么是哈希?为什么IPFS会用它?

节点云公开课|什么是哈希?为什么IPFS会用它?

2020-03-16 文储网络 来源:区块链网络

如果听说过 IPFS 的小伙伴,估计也曾听说过“哈希”这个词。在 IPFS 的世界里,“哈希”是一个不能忽略的词语,甚至是这套系统的“基石”。

那么什么是“哈希”?为什么在 IPFS 中这么重要?这东西有什么用?

首先,我们了解一个名词——分布式哈希表。

分布式哈希表(DHT)广泛用于协调和维护有关点对点系统的元数据。 例如,BitTorrent 、Mainline DHT 记录了 torrent 群组中的对等节点分组。

通俗一点来说,点对点就是多线程下载,比如说我们要装满一桶水,打开两个水龙头会比打开一个水龙头要快(水的流速是一致的哈^_^)这个点对点系统也是一样的道理,下载的通道越多,速度也就越快了。而且距离越近,速度也越快。不是有句话“远水救不了近火”,在网络世界里,节点与节点之间的距离也是能影响到数据传输的速度的。

至于元数据呢,就是描述数据的数据,比如说小编有一张照片,在存储的世界里,这张照片就是数据,而元数据就是描述这张照片的一堆类似于“代码”的东西(具体是什么我们下次再聊哈,反正元数据就是用来描述文件、照片、音乐、视频等东西的)。

点对点系统为我们传输数据提供了一种新的方式,这种方式就会有相应的存储方法,这时候,分布式哈希表就上场了。

哈希表

哈希表的核心就是哈希函数 hash

哈希表其实是一种数据结构,把 KEY 和 VALUE 用某种方式链接起来,使之对应。使用 hash() 函数把一个 KEY 值映射到一个 index 上,即hash(KEY) = index。这样就可以把一个KEY值同某个 index 对应起来。然后把与这个 KEY 值对应的 VALUE 存储到 index 所标记的存储空间中。这样,每次想要查找KEY所对应的VALUE值时,只需要做一次hash()运算就可以找到了。

举个例子:我们从网站上下载电影,首先我们要知道这部电影在哪个网站上有,这样“网站”和“电影”之间就形成了 KEY 与 VALUE 的对应关系,它表示某个网站有某部电影。

现在我们把这种对应关系用哈希表存储起来:有三部电影 A、B、C,它们的 hash() 值分别为:0、1 和 2 号,当我们想要查找 A 这部电影在哪个网站上的时候,只要 hash() 一下这个名字,就可以找到它所在的网站了。

当有大量的这种对应关系的数据需要存储时,这种方法就非常有效,可以快速检索。

也正是因为存储了大量数据,这张哈希表就变得非常重要了,我们能否快速找到所需的数据就看它了。万一这张表丢失的话,后果也许很严重。就像是把所有的东西都存储在一台机器上,当这台机器坏掉了之后,所存储的东西就全部消失了。

幸好,我们有分布式哈希表。分布式哈希表可以把一整张哈希表分成若干个不同的部分,分别存储在不同的机器上,这样就降低了数据全部被损坏的风险。

分布式哈希表

我们知道当一样东西成为孤品的时候是最珍贵的,因为没有了就没有了,所以孤品是万万不能丢的。

同样,数据也是一样的。我们有了哈希表帮我们快速找到对应的数据,但如果存放这张哈希表的机器发生了故障,就只能含泪说一句:“再见了,我的数据。”

分布式哈希表把一整张哈希表分成若干部分,存储在不同的节点上,这样即使其中一个节点发生故障了,也有其它节点提供存储信息。

此外,在海量数据面前,分布式哈希表分散在不同的节点上,这样我们就可以从距离我们最近的节点处查找到数据,从而获得更快的传输速度。

哈希与 IPFS

目前大热的 IPFS 就是采用分布式哈希表作为索引结构的,让我们在 IPFS上存储和传输数据的时候有更好的体验。

在 IPFS 这个分布式的系统中,需要这么一个东西来帮助节点与节点之间发现彼此的内容,而分布式哈希表就是一个很不错的选择。因为这是一个分布式的、容错(和可扩展)的数据结构。节点之间不需要集中协调(每个节点实际上只知道网络的一小部分),并且通过智能冗余,即使节点发生故障导致网络中断,系统仍然可以运行。最后,因为没有一个节点必须知道所有密钥,所以系统可以很好地扩展,并且实际上可以容纳数百万个对等端。

IPFS 是一套由一群技术极客创造出来的系统,里面含有大量技术,今天所讲的分布式哈希表只是其中一种,有兴趣了解 IPFS 的小伙伴们可以继续关注我们的公众号:文储网络

还想了解更多节点云资讯,详情请联系节点云客服(微信号:impool003)

  • 添加新手交流群:币种分析、每日早晚盘分析
  • 添加虎哥微信,一对一亲自指导:hugelunbi02
  • —-

    编译者/作者:文储网络

    玩币族申明:玩币族作为开放的资讯翻译/分享平台,所提供的所有资讯仅代表作者个人观点,与玩币族平台立场无关,且不构成任何投资理财建议。文章版权归原作者所有。

    LOADING...
    LOADING...