「」从入门到高阶,一文洞察IPFS | 火星号精选( 二 )


全球数百名开发人员为IPFS的发展做出了贡献 , 因此其编排一直是一项艰巨的任务 。
以下是主要组成部分
1.分布式哈希表
散列表是一种数据结构 , 其存储信息作为键/值对 。
在分布式哈希表(DHT)中 , 数据分布在计算机网络中 , 并进行有效协调以实现节点之间的有效访问和查找 。
DHT的主要优势在于分散性 , 容错性和可伸缩性 。
节点不需要中央协调 , 即使节点发生故障或离开网络 , 系统也可以可靠地运行 , DHT可以扩展以容纳数百万个节点 。 这些功能共同构成的系统通常比客户端-服务器结构更具弹性 。
2.大宗交易
流行的文件共享系统Bittorrent能够依靠创新的数据交换协议成功地协调数百万个节点之间的数据传输 , 但仅限于torrent生态系统 。
IPFS实现了该协议的通用版本 , 称为BitSwap 。
BitSwap可作为任何类型的数据的市场 , 这个市场是Filecoin的基础:基于IPFS构建的p2p存储市场 。
3.默克尔·戴
merkle DAG是Merkle树和有向无环图(DAG)的混合 。
默克尔树可确保在p2p网络上交换的数据块是正确 , 未损坏和未更改的 。 通过使用密码哈希函数组织数据块来完成此验证 。 这只是一个接受输入并计算与该输入相对应的唯一字母数字字符串(哈希)的函数 。
容易检查输入是否会导致给定的哈希 , 但是很难从哈希中猜测输入 。
「」从入门到高阶,一文洞察IPFS | 火星号精选
本文插图

各个数据块称为“叶子节点” , 这些数据经过散列形成“非叶子节点” 。 然后可以将这些非叶节点进行组合和哈希处理 , 直到所有数据块都可以由单个根哈希表示 。
这是一种更简单的概念化方法:
「」从入门到高阶,一文洞察IPFS | 火星号精选
本文插图

DAG是一种对没有周期的信息的拓扑序列进行建模的方法 。 DAG的一个简单示例是家谱 。 Merkle DAG基本上是一种数据结构 , 其中散列用于引用DAG中的数据块和对象 。
这创建了几个有用的功能:
IPFS上的所有内容都可以唯一标识 , 因为每个数据块都有唯一的哈希 。 再加上数据是防篡改的 , 因为对其进行更改会改变哈希值 , 如下所示:
「」从入门到高阶,一文洞察IPFS | 火星号精选
本文插图

IPFS的中心宗旨是在通用merkle DAG上对所有数据进行建模 。 很难夸大此安全功能的重要性 。
4.版本控制系统
Merkle DAG结构的另一个强大功能是 , 它允许您构建分布式版本控制系统(VCS) 。 最受欢迎的示例是Github , 它使开发人员可以轻松地同时在项目上进行协作 。
Github上的文件使用merkle DAG存储和版本控制 。 它允许用户独立地复制和编辑文件的多个版本 , 存储这些版本 , 然后将编辑内容与原始文件合并 。
IPFS对数据对象使用类似的模型:只要可以访问与原始数据相对应的对象以及任何新版本 , 就可以检索整个文件历史记录 。
假设数据块存储在整个网络的本地并且可以无限期地缓存 , 这意味着IPFS对象可以永久存储 。
此外 , IPFS不依赖对Internet协议的访问 。 数据可以分布在覆盖网络中 , 覆盖网络只是建立在另一个网络上的网络 。 这些功能非常引人注目 , 因为它们是抗审查网络中的核心元素 。
IPFS对我们生活的改变 , 可能是促进言论自由以对抗全球互联网审查风行的有用工具 , 但我们也应该认识到不良行为者有可能滥用权力 。
「」从入门到高阶,一文洞察IPFS | 火星号精选
本文插图

5.自认证文件系统
IPFS的最后一个基本组成部分是自认证文件系统(SFS) 。 它是一种分布式文件系统 , 不需要特殊权限即可进行数据交换 。


推荐阅读