主页 > imtoken冷钱包官方下载 > 区块链 | 热门分布式存储平台Swarm与IPFS分析“推荐合集”

区块链 | 热门分布式存储平台Swarm与IPFS分析“推荐合集”

imtoken冷钱包官方下载 2023-07-04 05:21:46

大家好,又见面了,我是你们的朋友全丈君。

谈到区块链和分布式计算,最重要的是共识算法(整个网络如何达成共识决策)和智能合约(在中心化世界中实现我们每天使用的应用程序)。 然而,就日常应用而言,这些特性不足以支持当今世界的需求。 如果我们仅依靠以上两者,很难想象像在 Netflix 上看喜欢的电影或电视剧,像在 Facebook 上存储或分享令人难忘的视频或照片,或者在区块链上玩喜欢的在线游戏。 游戏(如 DOTA)。 (分布式还是超融合?技术讨论永不止步)

我们缺少的是适用于当今应用程序的健壮、安全和去中心化的内容存储和分发系统。

下面,我们将探索和评估一些前沿的分布式存储平台。

本文为系列文章的“第一篇”,主要介绍Swarm和IPFS。 该系列的“中篇”和“下篇”将分别介绍 Sia、Storj 和 MaidSafe。

1.蜂拥而至

——以太坊正式上线的分布式存储项目

状态:活跃

阐明:

Swarm 是一个分布式存储平台和内容分发服务,是以太坊 web3 堆栈的本地基础层服务。 Swarm 的主要目标是提供一个完全去中心化和冗余存储的以太坊公共记录,特别是用于存储和分发 DApp 的代码和数据以及区块链数据。 从经济的角度来看,它允许参与者有效地集中他们的存储容量和带宽资源,以向网络中的所有参与者提供这些服务,同时获得以太坊的激励。

目标

Swarm 更广泛的目标是为分散式 Web 应用程序 (DApp) 开发人员提供基础设施服务,特别是:消息传递、数据流、点对点分类帐、可变资源更新、存储保险、监管扫描和补救、支付渠道和数据库服务。

从最终用户的角度来看,Swarm 与万维网没有太大区别,只是上传不托管在特定服务器上。 Swarm 提供点对点的存储和服务解决方案以太坊dag达到4g后,具有抗 DDos、零停机、容错和审查以及自我维持的特性。 它内置了激励系统,让用户通过点对点记账的方式为交易资源付费。 Swarm 旨在与以太坊的 devp2p 多协议网络层和以太坊区块链深度集成,用于域名解析(使用 ENS)、服务支付和内容可用性保证。

请注意:为了解析 ENS 域名,Swarm 节点必须连接到以太坊区块链(主网或测试网)。

概述

Swarm 旨在为新的去中心化互联网提供基础层基础设施。 Swarm 是一种点对点节点网络,通过相互贡献资源(存储、消息转发、支付处理)来提供分布式数字服务。 以太坊基金会运营 Swarm 测试网,可用于以类似于以太坊测试网 (ropsten) 的方式测试功能。 每个人都可以通过在他们的服务器、台式机、笔记本电脑或移动设备上运行 Swarm 客户端节点来加入网络。 请参阅 Swarm 入门 (#getting-started) 文章以了解操作方法。 Swarm 客户端是以太坊堆栈的一部分,参考实现是用 golang 编写的,可以在 go-ethereum 存储库中找到。 当前在所有节点上运行 POC 版本 0.3。

Swarm 去中心化的内容存储和分发服务,可以将它视为 CDN,通过互联网在计算机上分发。你可以像运行以太坊节点一样,运行 Swarm 节点并连接到 Swarm 网络上。这与 BitTorrent 相似,也可以类比 IPFS,用 ETH 作为报酬激励。文件被分解成块,分配并被参与的志愿者们储存。那些为存储并为块提供服务的节点,从那些需要储存和检索数据服务的节点得到 ETH 作为补偿。
Swarm 是以太坊项目官方的一部分,主要是由基金会开发,允许矿池存储、带宽和算力资源来支持基于以太坊网络的应用。团队试图创建一个不停机、零故障和防审查的点对点存储和服务解决方案。在 Swarm 内创建一个经济激励的系统将促进资源交换价值的支付和转移。项目使用了以太坊区块链中不同的协议和技术。

复制

Swarm 提供了一个本地 HTTP 代理 API,可以使用 DApp 或命令行工具与 Swarm 进行交互。 消息传递等模块仅基于 PRC-JSON API 可用。 测试网上的基础服务提供了一个公共网关,用于轻松演示功能并允许免费访问,因此人们可以在不运行自己的任何节点的情况下试用 Swarm。

Swarm 是 devp2p 网络中节点的集合,每个节点都在相同的网络 ID 上运行 bzz 协议套件。

Swarm 节点还可以连接到一个(或多个)以太坊区块链以进行域名解析,并连接到以太坊区块链以进行带宽和存储补偿。 运行相同网络 ID 的节点应连接到相同的区块链以进行支付。 Swarm 网络由其网络 ID 标识,它是一个任意整数。

Swarm允许上传(upload)和消失(disappear),也就是说任何一个节点只能将内容上传到Swarm,然后才能下线。 只要节点没有丢失或变得不可用,内容仍然可以访问,因为存在一个“同步”过程,其中节点不断地在彼此之间传递可用数据。

公共网关

Swarm 提供了一个本地 HTTP 代理 API,DApp 可以使用它与 Swarm 进行交互。 以太坊基金会正在托管一个允许免费访问的公共网关,因此人们甚至可以在不运行自己的节点的情况下试用 Swarm。

可以在 找到 Swarm 公共网关,它始终运行最新的 Swarm 稳定版本。

目前,网关只接受有限大小的上传。 将来,上传到这个网关的能力很可能会完全消失。

上传和下载

数据上传内容包括以下步骤:将内容“上传”到本地 Swarm 节点,然后该节点将生成的数据块与其网络中的对等节点“同步”。 同时,下载内容包括以下步骤:本地 Swarm 节点向网络中的对等节点查询相关数据块,然后在本地重新组合这些内容。

内容解析器:ENS

为了解析 ENS 名称,Swarm 节点必须连接到以太坊区块链(主网或测试网)。

ENS 是 Swarm 用来通过人类可读的名称(例如 theswarm.eth)引用内容的系统。 它的操作类似于 DNS 系统,将人类可读的名称转换为机器标识符,在本例中,是您引用的内容的 Swarm 哈希。 通过注册一个名称并将其解析为网站根清单的内容哈希,用户可以通过 bzz://theswarm.eth/ 等 URL 访问该网站。

目前主流浏览器(如Chrome、Firefox、Safari)均不支持bzz协议。 目前,如果想通过这些浏览器访问bzz协议,必须使用HTTP网关(如:/theswarm.eth/)或使用支持bzz协议的浏览器(如Mist)。

可变资源更新

可变资源更新是 Swarm POC3 上的一个高度实验性的特性。 它正在积极开发中,因此以太坊dag达到4g后,某些事情可能会发生变化。

我们在本指南中看到,当我们在 Swarm 中改变数据时,我们上传的数据返回的哈希值会以不可预测的方式发生变化。 通过可变资源更新,Swarm 提供了一种内置方法来维护更改数据的持久标识符。

为了与更改的数据保持相同的指针,一种常见的方法是利用以太坊命名服务 ENS。 然而,ENS 是一种链上功能,它限制了其他地方的功能:

可变资源更新允许我们在不使用 ENS 的情况下更改具有非可变标识符的数据。 可以使用创建资源时获得的键像普通 Swarm 对象一样引用可变资源。

如果同时使用 ENS 解析器合约和可变资源更新,则只需要一个初始事务来注册 MRU_MAINFEST_KEY。 此密钥将解析为资源的最新版本(更新资源不会更改密钥)。 与可变资源更新交互的方式有 3 种:HTTP API、Golang API 和 Swarm CLI。

防范措施:

Swarm 上的加密

POC 0.3 中引入了对称加密,现在可以通过 Swarm up 上传命令轻松使用对称加密。 这种加密机制用于在与任何 Swarm 节点打交道时保护信息并使块数据不可读。

Swarm 使用反模式加密来加密和解密内容。 将内容上传到 Swarm 时,上传的数据被分成 4KB 的块。 这些块中的每一个都将使用独立的随机生成的加密密钥进行编码。 此加密过程发生在本地 Swarm 节点上,未加密的数据不会与其他节点共享。 对单个块(和整个内容)的引用将是编码数据哈希和加密密钥的组合。 这意味着引用将比标准的未加密 Swarm 引用稍长(64 字节而不是 32 字节)。

当您的节点将您的内容的加密块与其他节点同步时,它不会与其他节点共享完整引用(或以任何方式的解密密钥)。 这意味着其他节点无法访问您的原始数据,而且它们无法检测同步块是否加密。

检索数据时,仅在本地 Swarm 节点上对其进行解密。 在整个检索过程中,这些块以加密形式遍历网络,参与的对等节点无法解密它们。 它们仅在用于下载的 Swarm 节点上解密和重组。

防范措施:

PSS

PSS(Postal Service over Swarm,Postal Service on Swarm)是 Swarm 上的一种消息传递协议,具有很强的隐私特性。 PSS API是通过API Reference中描述的JSON RPC接口暴露出来的,我们这里只说明基本的概念和功能。

PSS 仍是一项实验性功能,正在积极开发中,从 Swarm 的 POC3 开始可用。 期待一些事情会改变。

基础知识

通过 PSS,消息可以发送到 Swarm 网络上的任何节点。 消息的路由方式与块检索请求相同。 PSS 消息不使用块哈希引用,而是在覆盖地址空间中指定目的地,与消息的有效负载无关。 如果目标是一个完整的覆盖地址,则它可以被描述为一个特定的节点,或者如果它只是部分指定一个,则可以被描述为一个邻居。 使用转发 kademlia 算法通过 DevP2P 对等连接转发消息,该算法使用 kademlia 路由通过中继节点之间的半***点对点 TCP 连接传递消息。 在目标邻域内,使用 Gossip 广播消息。

因为 PSS 消息是加密的,所以最终收件人可以解密消息。 可以使用非对称或对称加密来进行加密。

消息负载通过接收节点分发给消息处理器,并通过API分发给订阅用户。

目前,PSS 不保证消息排序(尽力传递),也不保证消息传递(即,不缓存和中继到离线节点的消息)。

隐私功能

由于端到端加密,PSS 也适用于私人通信。

PSS 使用转发 kademlia 算法来匿名化发件人。

通过部分寻址,pss 为收件人匿名提供了可调整的范围:目标拥有的邻居越多,显示的前缀越小以覆盖预期收件人的地址,并且越难识别真正的收件人。 另一方面,由于暗路由效率低下,匿名与消息传递延迟和带宽(以及成本)之间存在权衡,留给应用程序选择。

如果使用握手模块,则提供前向保密。

DApp 的注意事项

敏感内容必须加密! 使用加密内容,上传的数据受到“保护”,也就是说,只有知道根块引用(文件的 Swarm 哈希和加密密钥)的人才能访问内容。 由于发布此引用(在 ENS 上或使用 MRU)需要一个额外的步骤,只要用户使用加密,就可以很容易地防止无意发布。 Swarm 会删除没有明确保护的内容,因为 Swarm 中的存储容量有限,Swarm 最终会将这些节点发送到垃圾箱。

在实施存储保险之前(更多信息请参见路线图),测试网不保证上传内容的持久存储。 所有参与的节点都被视为自愿服务,没有义务按照自己的意愿删除内容。 因此,在激励系统运行之前,用户在任何情况下都不应将 Swarm 视为安全的存储介质。

Swarm是一个持久化数据结构(Persistent Data Structure),因此,在Swarm中没有删除或移除操作的概念。 这是因为内容会传播到受激励为其提供服务的 Swarm 节点。

2. IPFS

状态:活跃(这是一个激励系统,“Filecoin”不活跃)

阐明:

IPFS(Interplanetary File System,星际文件系统),是一种点对点(p2p)文件共享系统,旨在从根本上改变信息在全球传播的方式。 它有点类似于Swarm,或者我们也可以说Swarm有点类似于IPFS。

IPFS 结合了通信协议和分布式系统方面的多项创新,这些创新结合起来产生了一个与众不同的文件系统。 因此,为了了解 IPFS 试图实现的目标的广度和深度,了解使其成为可能的技术突破和它试图解决的所有问题是很重要的。

IPFS 声称要取代 HTTP。 那么,让我们来看看今天的互联网是如何运作的。

简而言之,今天的互联网是描述数据如何在网络中移动的协议的集合。 随着时间的推移,开发人员使用了不同的协议并在此基础设施之上构建了他们的应用程序。 这些协议之一是 Web、HTTP 或超文本传输​​协议的主干。 它由 Tim Berners-Lee 于 1991 年发明。

HTTP 是一种请求-响应协议。 客户端(例如 Web 浏览器)向外部服务器发送请求。 然后外部服务器返回一个响应消息,例如返回谷歌的主页给客户端。 这是一种位置寻址协议,这意味着当您在浏览器中键入 google.com 时,它会被转换为 Google 服务器之一的 IP 地址,然后启动请求-响应周期。