IPFS 的设计与评估:去中心化 Web 的存储层
本文讨论了开源项目——IPFS ,分布式文件存储的实现。IPFS 旨在支持“去中心化网络”一个不断增长的分布式应用生态系统。
NFT创作工具主要就是为了帮助创作者实现无门槛,且快速、批量化的NFT创作。最重要的是,这些工具大多不需要创作者具备太过专业的编程能力,因此,艺术家可以进行相对无门槛的NFT创作。今天就来盘点一下有关NFT创作以及铸造方面的工具。盘点不求全,肯定要迭代。第一条是对我们的原创文章。
聚焦一下,从web2过渡到Web3游戏到底说的是什么?
研究内容是什么?
本文讨论了开源项目——IPFS 1,分布式文件存储的实现。IPFS 旨在支持“去中心化网络”2 一个不断增长的分布式应用生态系统——例如,埃隆·马斯克(Elon Musk)对 Twitter 的收购为Mastodon创造了一批新用户 3 ,一个联合的替代方案。作者认为,为了减少单点故障和对集中式云提供商的依赖,应用程序需要一个分布式存储层 4 。
1、IPFS 是一个首字母缩写词,代表星际文件系统。
2、虽然许多人将去中心化网络的想法与加密货币联系在一起,但 IPFS 本身并不支持、也不需要加密货币令牌。作者没有在本文中介绍与加密货币相关的技术,参与 IPFS 的主要组织之一也参与了 FileCoin。
3、此处讨论了用于迁移的相关工具。
4、这些类型的供应商的增长在之前的一篇论文评论中有所介绍,Hypergiants 离网的七年。
IPFS 最初于 2015 年发布,远非研究原型——该系统已大规模部署,在全球数十万台机器上运行,以服务于广泛的用户群。该项目在技术上很有趣,因为它的实施结合了对核心对等网络技术的改编和应对 IPFS 分布式存储系统所面临的独特挑战的新方法。例如,IPFS 适配Kademlia分布式哈希表(DHT)5 ,实现显着的性能改进,并成功地将方法部署到其最广泛的已知规模之一。
5、 分布式哈希表用于节点网络上的键值存储。Kademlia是一种特定的设计(特别是由Bittorrent使用。
论文的贡献是什么?
这篇论文做出了三个主要贡献:
-
IPFS的设计与实现
-
创建和验证测量技术以了解网络
-
评估分布式网络结构和每个节点的性能
系统如何运作?
IPFS 的目标是跨分布式节点网络提供可靠的数据存储和检索。
为了实现这一目标,网络依赖于三个核心功能:
-
内容寻址:IPFS 唯一标识存储在网络上的不可变内容内容 6。这种方法简化了对底层数据的存储和引用,因为节点可以使用唯一的密钥明确地从其对等节点获取内容。
-
对等寻址:网络中的节点需要找到并相互连接。
-
内容索引:为了简化数据的快速搜索和检索,节点索引其对等方存储的内容。对等点通过共享寻址数据的唯一标识符来宣传他们存储的内容)。
6、可寻址存储的想法不一定是新的(论文引用了2009 年的网络命名内容论文),但最近在分布式/去中心化应用程序中越来越流行(例如,安全 Scuttlebutt 协议也依赖它)。旁注:Secure Scuttlebutt 文档在描述协议方面做得非常出色!
内容寻址
网络上的内容由两个组件表示:内容标识符和块。
为了简化从网络存储和获取数据,IPFS 节点为项目创建多部分内容标识符。每个内容标识符都包含一个版本、数据的编码(例如 JSON 或 protobuf)以及数据的哈希值 7 。数据的散列对于检查未来获取的结果特别有用(因为可以散列结果数据,然后将其与预期的散列进行比较)。
7、作者指出,IPFS 协议主动集成了对任意散列算法的支持,以防止任何单个算法遇到漏洞的可能性(请参阅在完整 SHA-1 中查找冲突)。许多集成散列算法的系统(包括比特币)没有这种级别的支持。
网络中的每个文件都被划分为约 256kb 的块,并且每个块都使用上述内容标识符之一进行引用。每个文件由许多块组成(大多数文件大于 256kb),IPFS 用默克尔有向无环图(Merkle DAG)表示文件块之间的关系 8。IPFS 选择了 DAG 结构(而不是更常见的 Merkle 树)来表示块之间更复杂的关系——例如,一个块可以在同一个文件中出现多次。树状结构将通过存储块的多个副本来处理重复块的情况。相比之下,DAG 结构可以向图中添加一条新边,从而实现更轻量级的方法(边将按字节顺序排列,而块约为 256kb)。
8、Merkle-DAG 是一种类似于 Merkle 树的数据结构,但没有平衡要求。Merkle 树状数据结构出现在计算机科学的许多地方。
对等寻址
网络中节点之间的连接和通信允许 IPFS 的分布式特性。为此,IPFS 中的节点使用包含到达每个节点所需的多层信息的多地址来标识自己。顶层包括特定于 IPFS 的点对点数据 - 特别是与节点的散列公钥对应的Peer ID 9。 其他层代表更熟悉的网络信息(协议、地址和 IP)。
9、与许多去中心化系统一样,IPFS 依靠公钥密码学来建立身份/所有权。此处描述了该项目所基于的实现。
内容索引
网络中的节点存储一个数据结构,其中包含内容标识符和存储对象的对等点之间的映射。每个节点存储和更新称为分布式哈希表 (DHT)的去中心化全局结构的一个分区(之所以这么称呼,是因为它表示哪些节点拥有哪些数据的映射,分布在整个网络中)。其他点对点网络(最著名的是 BitTorrent)依赖于DHT数据结构 10 ,但 IPFS 调整其实现以提高性能。
10、Bittorrent 实现称为Mainline DHT。该系统有几个有趣的特征,包括测量大规模分布式系统:BitTorrent Mainline DHT 的案例。
IPFS 的 DHT 实现的主要区别方面是表示 DHT 的两种对等类型:客户端和服务器。
客户端的能力有限,而服务器则没有——客户端“只能从网络请求记录或内容,但不能存储或提供任何内容”。客户端的目的是允许节点访问网络中的数据,而不需要其他节点依赖它们。
IPFS 的主要见解之一是,“DHT 客户端/服务器的区别可防止无法访问的对等点成为其他对等点的路由表的一部分,从而加快发布和检索过程。” 相比之下,Bittorrent 既没有区分不同类型的客户端,也没有有效地修剪死节点——导致平均查找延迟超过一分钟。
IPFS 在行动
一个节点发布数据、其他节点可以访问该数据以及其他节点检索数据有一个多步骤过程。
首先,节点在本地导入数据并获取唯一标识数据的内容标识符。然后,节点发布提供者记录 11 到 DHT 中的附近邻居,有效地宣布新数据在网络上可用。
11、提供程序功能的来源在这里。
新鲜度是这些记录的一个重要属性,因为过期状态会增加客户端延迟(因为客户端必须经过多次往返才能找到有效记录,如果任何节点都有数据的话)。为了限制这些记录的陈旧性,IPFS 节点实现了两个参数:重新发布间隔(确保有最少数量的节点知道内容)和过期间隔(需要数据提供者不断刷新记录)。
一旦另一个节点想要从网络中检索特定的内容,它就会连接到对等节点并执行BitSwap 协议 12 ,用于传播和接收有关节点托管的数据的信息的过程。如果在这个阶段没有找到所有的块,请求者会走 DHT 13 为了找到存储它的对等点。如果请求者联系的节点没有存储数据(并且只有提供者记录,表明数据存在于网络中的某处),则该节点将重定向到数据的实际位置。
12、该协议是 IPFS 的一个新颖组件,规范和实现都是完全开源的。作者还发表了关于该协议的另一篇论文,使用 Bitswap 加速内容路由:IPFS 和 Filecoin 中的多路径文件传输协议。
13、要全面了解更多 DHT 内部结构,我强烈推荐本指南<使用 Kademlia 的分布式哈希表>。
该论文还涉及IPFS 网关的想法,它作为基于 HTTP 的用户友好入口点(这限制了某人运行 IPFS 节点来访问网络的需要)。网关还长时间托管数据(称为“固定”的操作)以加快检索速度并提高可用性。本文在此处引用了一个公开可用的网关列表。
研究如何评估?
为了了解用户分布和使用模式,本文首先使用通过自定义刮板节点收集的数据来描述 IPFS 网络的结构,该节点扩展以记录有关网络的元数据,包括对等方及其正常运行时间。
14、作者还将研究数据存储在 IPFS 本身上!
然后,该论文使用该数据集来量化世界各地节点的分布及其在自治系统中的存在 15。按国家/地区的同行数量分组——“美国(28.5%)和中国(24.2%)在同行中占主导地位,其次是法国(8.3%)、台湾(7.2%)和韩国(6.7%)。” 在将对等 ID 映射到自治区域后,托管在云提供商上的节点比例非常低。
15、之前的一篇论文《Hypergiants 网外生活的七年》讨论了类似的主题。
该论文还测量了节点的流失,以跟踪网络的健康状况。随着时间的推移,许多节点会脱机或变得不可用。
本文还考虑了节点执行的核心任务的单节点性能:发布和数据检索。及时执行这些功能对于确保 IPFS 网络保持健康至关重要。本节有几个关键要点——首先,论文指出,将数据发布到网络(通过将条目插入DHT)并不取决于与内容标识符相关联的数据大小。其次,检索通常比发布快,并且遍历 DHT(查找附近的对等点)是此操作中最耗时的组件。
结论
IPFS 论文代表了一个新的基础设施组件,能够支持新兴的去中心化应用程序生态系统。该实现建立在来自其他分布式网络(包括 BitTorrent)的几个想法之上,我喜欢阅读有关对核心技术(如 Kademlia DHT)的生产型优化的信息。展望未来,看看 IPFS 是否能够在保持其去中心化目标的同时提供高质量的 p2p 存储将会很有趣——在整篇论文中,作者注意到旨在改善用户体验的网关的增长。此外,IPFS 主要由一个组织Protocol Labs的成员或校友开发。为了让 IPFS 生态系统蓬勃发展,超越这种结构至关重要。
版权声明
本文仅代表作者观点,不代表区块链技术网立场。
本文系作者授权本站发表,未经许可,不得转载。
发表评论:
◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。