如果你对Swarm感兴趣,并且想了解Swarm对以太坊开发者的用处,那么你就来对地方了。
区块链目前是LinkedIn排名第一的技术,因此你一定要了解更多有关以太坊的知识,全面掌握加密货币。
那么现在就来说说:什么是Swarm,为什么它对以太坊开发者有用? 本文将介绍以太坊的基础设施和存储是如何运行的,以及后端开发的一个关键方面:数据存储如何工作。
以太坊是一个去中心化的网络,这表示以太坊协议的文件存储也遵循此原理。
Swarm 101
Swarm是我最喜欢的以太坊项目之一。在我看来,Swarm是整个去中心化生态系统的核心部分。根据以太网的说法,Swarm是一个不受审查、无需授权、去中心化的存储和通信基础设施层。
Swarm的主要目的是成为dApp代码、用户数据、区块链数据和状态数据的去中心化存储。Swarm为Web 3.0提供各种基础服务,包括节点到节点的消息传递、媒体流、去中心化的数据库服务和用于去中心化服务经济的可扩展状态通道基础设施。
Swarm的记录保存
在深入研究Swarm的技术结构之前,首先得了解Swarm如何记录、存储和维护数据,以及检索器如何随时访问数据。
其原理是随机节点存储文档。节点只保留根哈希(root-hash)和后续目录哈希(subsequent directory hashes)的标记。然后,呈现文档就非常简单了。实质上,请求者只是从清单条目中提取page.html。
Swarm如何呈现请求?
Swarm的底层基础设施提供上述服务。Swarm运行良好,因为每个服务都可以为彼此贡献资源。这些贡献是在点对点基础上准确计算的。节点以资源交换资源,同时向消耗较少的节点提供货币补偿。
Swarm使用以太坊等现有智能合约平台实施其激励机制,下文将详细解释。但首先来看看Swarm的数据结构。Swarm去中心化存储系统主要由三个部分组成:
Chunks:这是有限大小(最大4K)的数据块,是Swarm中存储和检索的基本单元。Chunks链接到地址。
Reference:文件的唯一标识符,允许客户端检索和访问内容。
Manifest:描述文件集合的数据结构。指定路径和相应的内容哈希,允许基于URL的内容检索。
上图显示了Swarm如何呈现一个请求。从本质上讲,chunk表示“page.html”或“page.css”等散列信息。每个块(chunk)包含Manifest中的一个引用(reference),告诉请求者如何检索和呈现信息。
接下来,我们来看看Swarm的架构,以及不同节点如何向网络写入和上传数据。
Swarm堆栈:上传
起初,分布式预映像存档(DPA)将每个blob分割成许多数据块(chunk)。DPA随机选择要存储哪些块的节点。之后,这些节点在本地存储块。这些数据块被标记并放入随机节点的容器中。接收到数据后,节点将与同一网络或地址空间上的其他节点通信。
Swarm上传过程
Swarm如何存储每条数据?
节点会根据每个块的时间戳自动同步数据。因此,不会有任何数据丢失或blob损坏。最后,每个bin(0,1,…,31)显示了相同地址空间上的节点如何存储相关的块。
由于节点存储、同步以及信息共享,任何给定的节点都可以将整个数据段发送回检索器。
必须说的是,请求者可在任意时间检索一段数据(异步模型)。
Swarm存储层
Swarm存储层概述
Swarm的实际存储层由两个主要组件组成:LocalStore和NetStore。内存中的快速缓存(Memstore)和持久磁盘存储(DBStore) 编写LocalStore。NetStore将LocalStore扩展为Swarm的分布式存储并实现DPA。
FileStore是存储和检索文件的本地接口。当文件交给FileStore存储时,FileStore将文档分块到一个Merkle哈希树中,并将其根密钥交还给调用者。此根密钥之后可用于检索文档。
最后,FileStore使用Swarm散列,并使用NetStore为用户检索文档的根块。
Swarm概述
从终端用户的角度来看,Swarm不会影响导航或行为。但是在后端,点对点存储网络承载内容,而不是单个服务器。由于内置的激励系统,这种点对点网络是自我维持的。只有通过使用允许交易资源进行支付的公共区块链,才有可能激励。
Swarm还深度集成了以太坊的 DevP2P多协议网络层。DevP2P是一组网络协议,本质上构成了以太坊点对点网络。
除此之外,Swarm还链接到以太坊区块链,用于域名解析(ENS)、服务支付和内容可用性保险。
Swarm vs IPFS vs Filecoin
最后,强调一下Swarm和其他分布式文件存储(如IPFS和Filecoin)之间的关键区别。
IPFS,或称星际文件系统,是一种点对点超媒体协议,旨在使网络更快、更安全、更开放。而Filecoin是一个去中心化的文件存储系统,使用代币激励节点运营者。
为更好地理解Swarm与两者的区别,现做几个简单的比较:
Swarm的核心存储组件是不可变的内容定址,而不是通用的分布式哈希表,即DHT(IPFS使用DHT)。
Swarm、Filecoin、IPFS三者网络通信层和对等管理协议不同。
Swarm与以太坊区块链深度集成,激励系统受益于智能合约和半稳定对等池。Filecoin使用可检索性证明作为挖矿的一部分。而IPFS没有内置的激励机制。
来源:
·Ivan On Tech Academy,
·Ivan On Tech ETH 2.0 code review,
·ETH 2.0 discussion,
·Swarm GitHub repo,
·Swarm Website.