Skip to main content
 首页 » IPFS

mac上搭建私有ipfs网络

2021年07月03日17

一文读懂分布式计算现状与未来

25 年后的今天,最后几块拼图似乎已经就位。

让我们兴奋的加密货币应用之一是分布式计算。

在加密货币出现之前,如果一个陌生人在闲置的服务器上运行机器学习程序,我不能用我的笔记本电脑给对方一点钱来表达我的感激之情。加密货币最终允许我们进行机器对机器支付,以补偿参与节点的运行任务。

加密货币使机器对机器的支付成为可能,这使得为 CPU 做出贡献的参与者能够得到补偿。机器学习、三维仿真、生物计算等领域对计算资源的需求越来越大。

我们一直在关注分布式计算项目,希望分享不同的项目如何处理越来越多的连接到网络的计算机,以及如何将任务与其运行的计算节点隔离。

以下是我们的初步调查结果,与大家分享以供更正。

网络发展的方法梅特卡夫定律适用于计算网络:网络上的机器越多,机器在需要时接受新任务的可能性就越大。

开发一个计算网络是非常困难的,尤其是在空间越来越拥挤的情况下。我必须澄清,问题不是人们已经安装了,不想安装更多,而是一个想要突破的项目自然会面临很多噪音。

以下是我们看到的四种有趣的方法: 方法 1:让任何人都可以轻松加入网络。一个例子是 KingsDS 预测试版。要加入,只需访问浏览器中的 URL 并让选项卡在后台运行。

方法二:帮助其他应用程序因共享用户资源而获得补偿。一个例子是 FREEDcoin pre-beta。他们为游戏开发者提供了一套软件开发包SDK。当玩家开始运行 FREEDcoin SDK 的游戏时,他们有机会贡献自己的 CPU 以换取游戏内奖励。这将带来双赢局面:FREEDcoin 可以吸引高性能游戏 PC 加入其网络,游戏开发商可以在不展示广告的情况下通过游戏获利,玩家有机会获得虚拟奖励。

方法三:搭建客户端,让每个节点都可以提交和完成任务。例如,Golem beta 可以在客户端提交任务和执行计算,这意味着其每个最终用户都可以简单地成为计算节点。这有助于它们在网络的两端均匀增长。

方法四:最后​​一种方法是为其他计算项目提供计算资源。一个例子是 SONM beta,它试图帮助其他计算网络快速扩展。借助 SONM 的开放市场,机器可以以标准化格式显示它们可以提供多少 RAM、CPU 和 GPU。然后,任何使用 SONM 的项目都可以在整个 SONM 网络中搜索具有可用资源的机器。

将任务与主机隔离的方法的一个挑战是确保任务不能读取或修改主机的内存,反之亦然。如果多个任务同时在同一台机器上运行,将它们彼此隔离也很重要。

保持数据的私密性是一项艰巨的挑战;尽管 SONM 将所有任务运行在一个 Docker 容器中,但它们也需要运行节点的合作伙伴签署保密协议。大多数项目依赖现有的容器运行时(如 Docker)来满足这种需求。这是完全有道理的——在有了一个现成的轮子之后,谁还想重新发明另一个?

但是,在这个领域,有两个项目在做一些独特的事情,分别值得一提。

Enigma pre-beta 正在设计他们所谓的“秘密合约”——这些是计算节点,很像智能合约,但因为每条数据都被分解并分发到处理相同计算任务的多个节点,单个节点无法读取 取任何数据。他们使用 1980 年代开发的称为“多方计算 MPC”的加密方法来实现这一想法。 Enigma 正在构建自己的存储和计算链。Keep pre-beta 是另一个使用类似方法的项目。他们还使用多方计算拆分加密数据进行计算,计算节点无法读取任何输入数据。通过Keep,私有数据在集群中存储和计算,输出数据发布在区块链上。

最后的想法:狭义用例与。广泛的用例对于分布式计算项目,可以使用两种方法:构建一个可以接受任何工作负载或仅接受小范围任务的通用计算工具。

Union Square Ventures投资的大多数公司都是从专注一件事开始,专注做一件事才能成长,并围绕这件事建立网络和平台。比如我们对Cloudflare、Stash、Carta等的投资,都是处于这种情况。

我认为同样的模型对于计算网络也非常有效:从一个狭窄的用例开始,例如训练机器学习模型、渲染 3D 图形和蛋白质折叠灯,这将有助于项目快速运行并随着时间的推移扩展到其他计算场地。

有人要问,从什么用例开始最合适?

似乎有两种路径:一种是从训练机器学习任务开始,因为机器学习是增加计算资源需求的驱动因素之一。另一条路径是从 3D 渲染或学术/科学计算等用例开始,其中没有保护私有数据的开销。

总体而言,该领域仍处于早期阶段,但前景令人兴奋。计算供应商之间更激烈的竞争不仅会压低价格并促进创新,而且可能会出现新的应用,例如 VR 和自动驾驶汽车。此应用程序仅在分布式计算距离大于终端设备速度时可用。 - 西部 2 区域只有在速度快几百毫秒时才有可能。

以上是我6月份写的一些总结,概述了我们见过的计算项目的类型。在过去的两个月里,该领域出现了许多快速发展。以下是我继续分享的一些观察结果。

有两种方法可以隔离网络与开放协议分布式计算。在其中一个模型中,有一个占主导地位的分布式计算协议,它创建了一个共享计算机网络,任何人都可以在该网络上构建接口和客户端。就像 Heroku 和 EC2 一样:它们都运行在 AWS 服务器上,但是它们提供的界面有着完全不同的体验,可以满足不同的用户。

在另一个模型中,有一些主导的计算项目,每个项目都有自己的计算机网络。

这两种模式都允许共存的项目为不同的受众提供服务,但一方面,项目是位于同一个共享资源池中的客户,另一方面,它们都运行自己的独立网络。这两种模式有共存的可能,但我认为考虑到网络效应,共存实际上是不可行的。只要有机会,项目可能会选择连接现有的计算机网络,而不是自己搭建计算机网络,因为相比从头开始,一开始可以接入更多的CPU,为客户提供更好的质量服务。 .

我们看到两者都尝试过用例。 SONM 是一个试图构建共享资源层的项目。此外,它是分布式计算实验室构建的“分布式计算协议”DCP。大多数其他项目目前都在构建自己的网络,但是使用开放协议,没有什么可以阻止任何人为这些项目构建替代接口。我们可能会看到,有些项目一开始就是自己的系统,然后有机地发展成为他们现在共享的资源层之上的客户之一。我对共享计算层以及尝试构建它的团队和项目的可能性感到非常兴奋。

代币问题 我们一直在考虑的一个问题是开发者将使用哪些代币以及最终用户将使用哪些代币。也就是说:如果用户在分布式计算网络上与运行代码的DApp进行交互,用户向DApp支付的费用是否等同于DApp为计算服务支付的费用?

现在,计算服务的主要答案是否定的。Akash、Render、Perlin、Enigma 和 SONM 是一些拥有自己交易代币的计算项目。这与 IPFS/Filecoin 的模型相同。用户可以用任何主要的面向消费者的货币支付 DApps,目前看起来是 ETH 或 BTC,DApps 将交换他们在幕后提供服务所需的代币。

另一方面,Hypernet 和 Truebit 是两个具有双令牌模型的计算项目。

在 Truebit 中,买家可以使用 ETH 来支付服务费用,而 Truebit TRU 代币仅用于特定协议的投注和争议解决功能。这与我们今年在 The Graph 和 Augur 等基础设施项目中看到的模式相匹配,它们使用主流消费货币进行交易,而他们自己的代币仅用于治理、抵押和争议解决。

我预计未来会有更多的项目转移到双通证模式,因为它允许治理的价格随着网络的增长而增加,但不会增加使用其服务的价格。

EC2 模型 vs. Lambda 模型 在现有的 web2 世界中,计算服务主要有两种类型:在 EC2 模型中,开发者获得运行和托管服务的环境,在 Lambda 模型中,开发者可以编写被调用的函数需要。

分布式计算项目也可以分为两类:一类以 lambda 或 Cloudflare Workers 为代表,用户编写脚本,项目在参与的计算机上运行。另一种方法是EC2,也就是“别人的电脑”:用户匹配网络上的某个人,可以在对方的电脑上运行容器。

请注意,Lambda 方法并不完全是类似于 Lambda 的分布式网络中的 Lambda 机器。它不会存储已推送给它们的所有函数并根据需要调用它们。相反,这些网络用于为科学计算或绘制图形等用例运行离线和异步脚本。我预计随着延迟问题的改善,它们将变得更像无服务器计算。生态系统同时需要这两种模式:托管DApp前端需要一个持久化的主机,运行一次性计算更适合在类服务器平台上运行。

在托管平台上运行的两个项目是 Akash 和 DADI。从终端用户的角度来看,Akash其实很像传统的计算服务。开发人员在 Kubernetes 集群中管理 Akash 部署的机器上的容器。这些容器可以在 Akash 网络上的机器之间联合。 Akash 由 Greg Osuri 创立并非巧合,他也是 Federated Kubernetes 的贡献者。如果你想尝试 Akash,他们最近刚刚启动了一个测试网。

在无服务器平台上运行的两个项目是 Ankr 和 DCP。

如何使用硬件设备对于基于加密货币的分布式计算网络,分布式无服务器计算项目的独特之处在于它们可以在陌生人的手机和笔记本电脑上运行代码,因为除了一次运行一个小脚本之外,他们不需要永久占用计算环境。

这里的想法是,这些项目可以将所有未使用的终端用户 CPU 联合起来,组成一个巨大的超级计算机,而且成本比目前云计算市场的价格便宜。

关于定价,我再多说几句:目前的主流观点是分布式网络会更便宜,因为它们不需要支付物理空间,并且已经包括了硬件资本支出的成本。然而,正如风险投资公司 Placeholder 的研究员 Mario Laul 向我指出的那样,云计算定价已经触底。如果分布式服务出现并削弱主要参与者,那么云服务提供商可能会压价以维持成本。为了保持竞争力。

目前,一些项目可以通过在最终用户的设备上收集可用的 CPU 来提供高性能的计算环境。我对这些项目很感兴趣。

在最终用户的设备上运行代码存在三个主要挑战。首先是说服足够多的人参与。上面已经讨论过了。

第二个挑战是终端用户设备的性能相对较低。为了解决这个问题,我们看到一些项目正在并行构建,以便同时在多台机器上运行代码。Ankr 允许用户将他们的代码打包成块,分别提交给网络,然后作业调度器将它们分发到不同的机器上。 DCP 自动将应用程序的子任务以在“Web Workers”中执行的 JavaScript 对象的形式分发到每台机器上。此外,DCP 也很智能:它使用 WebGL 访问终端用户设备的图像处理器,从而进一步提高效率。

第三个挑战是最终用户的设备不是可信硬件。自我们在 6 月份发表本文的前半部分以来,SGX 的使用取得了很大进展。 SGX 是内置于英特尔芯片中的可信硬件环境。

此后,Enigma 发布了使用 SGX 进行计算的测试网,Golem 发布了 Graphene-ng 帮助开发者编写支持 SGX 的代码,Oasis Labs 从 a16z 等机构筹集了 4500 万美元用于构建支持 SGX 的分布式计算平台。

三大笔记本厂商:惠普、联想、戴尔都支持SGX。 MacBook 有支持 SGX 的芯片,但 BIOS 尚未配置,操作系统无法支持此功能。有朝一日苹果也加入SGX阵营,全球四大笔记本电脑品牌都将内置对SGX计算的支持。

我本人一直在为 SGX 尖叫,因为它在消费类笔记本电脑上非常安全且易于实施。

除了 SGX,分布式计算协议验证计算的另一种方式是通过争议解决。 Truebit 是一个有争议解决协议的计算项目,他们称之为“验证游戏”。验证者使用 TRU 令牌来挑战计算结果。

在 Truebit 的争议解决机制中,在运行程序的每个时间步,“solver”的状态都会被计算为一个哈希值——事实上,任何给定的指令都可能不会在以太坊的 gas 限制内执行,所以TrueBit 将每条指令分解为 16 个子步骤。然后,验证程序查询哈希状态以发现错误指令,然后在以太坊上运行有争议的步骤或子步骤以获得最终结果。无论哪一方犯错,他们都会输掉赌注,这些代币将支付给获胜方。

堆栈中的哪个位置最适合计算?

一个悬而未决的问题是计算服务最终会成为第一层还是第二层解决方案。也就是说:下一个主要的区块链是否会将计算作为内置服务包含在内,或者计算将始终在链外运行。

计算是在链下完成的,因为当前可用的主要区块链是比特币,它的脚本语言有限,或者以太坊,它既昂贵又计算缓慢。未来很可能会出现第一层区块链可以以不需要网络中每个节点都运行相同计算的方式进行计算,这将使计算成本更低更快。 . Perlin 是一个试图构建此功能的项目。但即使在 Perlin 中,计算服务也是作为主要 Perlin 基础链的侧链实现的。

大多数项目要么构建现有区块链的侧链,要么是完全独立于现有基础链的链下网络。 Render是第一种方法,它是现有区块链侧链的一个例子。以太坊智能合约将与 Render 网络交互。 Akash 是后者的一个例子,即独立的链下网络,是一个完全独立的网络。

我更喜欢轻量级的横向协议,它可以相互分层,而不是形成一个万能的超级协议区块链。这就是 Internet 现在的工作方式:相互叠加的小协议 SMTP> STARTTLS> TCP> IP。它可以带来可重用的模块。 QUIC 和 DNS 都可以使用 UDP,而无需更改 UDP。它具有轻松更换和升级图层的能力。例如,HTTP 可以与 SPDY 交换或从 HTTP 1.1 升级到 HTTP 2.0,无需任何更改。下面一层。

开拓区域市场 最后我想说的是,我们看到有些项目喜欢专注于一个区域市场,这可能很诙谐。

例如,DCP 首先向加拿大的大学和实验室提供计算,但通过这个过程,他们也在加拿大以外产生了很多兴趣。另一个例子是Ankr,它正在将更多的精力投入到计算需求正在快速增长的中国计算市场。一个明显的例子是,阿里云的收入同比增长了104%,而亚马逊的云服务AWS,却在中国没有强大的基础。

我们相信,这些有针对性的开拓区域市场的举措会产生很好的效果。

本文由丹妮·格兰特授权,联文中文版发表。

报告/反馈

微信
登录
用户名
密码
注册
用户名
密码
确认密码
昵称
邮箱
QQ
找回密码
用户名
邮箱
※ 重置链接将发送到邮箱