区块链节点的承载力 区块链节点搭建费用

超果 专栏 2023-02-21 169 0

今天给大家聊到了区块链节点的承载力,以及区块链节点搭建费用相关的内容,在此希望可以让网友有所了解,最后记得收藏本站。

给大家说说我理解的区块链

什么是区块链?网上这么说,区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术区块链节点的承载力的新型应用模式。它本质上是一个去中心化区块链节点的承载力的数据库,是一种解决信任问题和降低信任成本的技术解决方案。

再延伸一下,区块链是比特币的基础技术,同时作为比特币的底层技术,是一串使用密码学方法相关联产生的数据块,每一个数据块中包含区块链节点的承载力了一批次比特币网络交易的信息,用于验证其信息的有效性(防伪)和生成下一个区块。也就是说区块链是一种由多方共同维护,使用密码学保证传输和访问安全,能够实现数据一致存储、难以篡改、防止抵赖的记账技术,也称为分布式账本技术。

是不是看不懂,其实很简单,你可以把它理解成一个大房子(区块链网络),大房子里有着无数多的人(节点),你每说一句话(出一个块),就等于整个房子里的人都听到(链上透明公开),你说了一句话之后(出块以后),因为这个房子里的人都听到了(验证出块),所以你就没法和区块链节点的承载力他们撒谎说你刚刚没说话(不可篡改)。当然,如果你非常非常厉害,这房子超过一半的人都害怕你,或者你控制了房子里超过一半的人,这一半人都说“刚刚你没有说话”,那么少数服从多数,你就可以成功让整个房子确定一个口径:刚刚你没说话(51%攻击)。

整个房子里,有很多很多的黄金待挖掘,但是这个黄金并不是你想拿就能拿的,你需要体现自己对整个房子的价值,所以你选择贡献自己的劳动力(提供算力),房子里的大家都看到了你的辛勤劳动(证明机制),大家都认可了你的价值(共识),你就可以获得属于你的黄金作为酬劳(激励)。除此之外,这个房子里有足够多的储藏柜(钱包),藏着你的东西,为了保证安全,你需要拿出一张身份证(私钥),和储藏柜校对密码(公钥),通过发现你确实是你,就可以打开你的储藏柜(钱包),看到你自己相应的在房子的黄金(Token)。

不难理解吧?那么,这套体系,究竟有什么神奇?最重要的就是去中心化、透明化和不可篡改。当这个房子足够大(区块链网络),人有好几十万的时候(节点多),没人可以真正控制一半以上的人,那么在这个房子里,你所做的所有行为,都将公之于众(信息共享),大家都看到了你在干嘛,你想撒谎成为了一件不可能的事情(不可篡改)。这就是区块链最大的价值。

浅析 Fabric Peer 节点

Hyperledger Fabric,也称之为超级账本,是由 IBM 发起,后成为 Linux 基金会 Hyperledger 中的区块链项目之一。

Fabric 是一个提供分布式账本解决方案的平台,底层的账本数据存储使用了区块链。区块链平台通常可以分为公有链、联盟链和私有链。公有链典型的代表是比特币这些公开的区块链网络,谁都可以加入到这个网络中。联盟链则有准入机制,无法随意加入到网络中,联盟链的典型例子就是 Fabric。

Fabric 不需要发币来激励参与方,也不需要挖矿来防止有人作恶,所以 Fabric 有着更好的性能。在Fabric 网络中,也有着诸多不同类型的节点来组成网络。其中 Peer 节点承载着账本和智能合约,是整个区块链网络的基础。在这篇文章中,会详细分析 Peer 的结构及其运行方式。

在本文中,假设读者已经了解区块链、智能合约等概念。

本文基于 Fabric1.4 LTS。

区块链网络是一个分布式的网络,Fabric 也是如此,由于 Fabric 是联盟链,需要准入机制,所以在网络结构上会复杂很多,下面是一个简化的 Fabric 网络:

各个元素的含义如下:

对于 Fabric 网络,外部的用户需要通过客户端应用,也就是图中的 A1、A2 或者 A3 来访问网络,客户端应用需要通过 CA 证书表明自己的身份,这样才能访问到 Fabric 网络中有权限访问的部分。

在上面的网络中,共有四个组织,R1、R2、R3 和 R4。其中 R4 是整个 Fabric 网络的创建者,网络是根据 NC4 配置的。

在 Fabric 网络中,不同的组织可以组成联盟,不同的联盟之间数据通过 Channel 来隔离。Channel 中的数据只有该联盟中的组织才能访问,每一个新的 Channel 都可以认为是一条新的链。与其他的区块链网络中通常只有一条链不一样,Fabric 可以通过 Channel 在网络中快速的搭建出一个新的区块链。

上面 R1 和 R2 组成了一个联盟,在 C1 上交易。R2 同时又和 R3 组成了另外一个联盟,在 C2 上交易。R1 和 R2 在 C1 上交易时,对 R3 是不可见的,R2 和 R3 在 C2 上交易时,对 R1 是不可见的。Channel 机制提供了很好的隐私保护能力。

Orderer 节点是整个 Fabric 网络共有的,用来为所有的交易排序、打包。比如上面网络中 O4 节点。本文不会对 Orderer 节点进行详细说明,可以把这个功能理解为比特币网络中的挖矿过程。

Peer 节点表示网络中的节点,通常一个 Peer 就表示一个组织,Peer 是整个区块链网络的基础,是智能合约和账本的载体,Peer 也是本文讨论的重点。

一个 Peer 节点可以承载多套账本和智能合约,比如 P2 节点,既维护了 C1 的账本和智能合约,也维护了 C2 的账本和智能合约。

为了可以更深入了解 Peer 节点的作用,先了解一下 Fabric 整体的交易流程。整体的交易流程图如下:

Peer 节点按照功能来分可以分为 背书节点 和 记账节点 。

客户端会提交交易请求到背书节点,背书节点开始模拟执行交易,在模拟执行之后,背书节点并不会去更新账本数据,而是把这个交易进行加密和签名,然后返回给客户端。

客户端收到这个响应之后就会把响应提交到 Orderer 节点,Orderer 节点会对这些交易进行排序,并打包成区块,然后分发到记账节点,记账节点就会对交易进行验证,验证结束之后,就会把交易记录到账本里面。

一笔交易是否能成功是根据背书策略来指定的,每一个智能合约都会指定一个背书策略。

Peer 节点代表着联盟链中的各个组织,区块链网络也是由 Peer 节点来组成的,而且也是账本和智能合约的载体。

通过对上面交易过程的了解可以知道,Peer 节点是主要的参与方。如果用户想要访问账本资源,都必须要和 peer 节点进行交互。在一个 Peer 节点中,可以同时维护多个账本,这些账本属于不同的 Channel 。每个 Peer 节点都会维护一套冗余账本,这样就避免了单点故障。

Peer 节点根据在交易中的不同角色,可以分成背书节点(Endorser)和记账节点(Committer),背书节点会对交易进行模拟执行,记账节点才会真正将数据存储到账本中。

账本可以分成两个部分,一部分是区块链,另一部分是 Current State,也被称之为 World State。

区块链上只能追加,不能对过去的数据进行修改,链上也包含两部分信息,一部分是通道的配置信息,另一部分是不可修改,序列化的记录。每一个区块记录前一个区块的信息,然后连成链,如下图所示:

第一个区块被称之为 genesis block,其中不存储交易信息。每个区块可以被分为 区块头 、 区块数据 和 区块元数据 。区块头中存储着当前区块的区块号、当前区块的 hash 值和上一个区块的 hash 值,这样才能把所有的区块连接起来。区块数据中包含了交易数据。区块元数据中则包括了区块写入的时间、写入人及签名。

其中每一笔交易的结构如下,在 Header 中,包含了 ChainCode 的名称、版本信息。Signature 就是交易发起用户的签名。Proposal 中主要是一些参数。Response 中是智能合约执行的结果。Endorsements 中是背书结果返回的结果。

WorldState中维护了账本的当前状态,数据以 Key-Value 的形式存储,可以快速查询和修改,每一次对 WorldState 的修改都会被记录到区块链中。WorldState 中的数据需要依赖外部的存储,通常使用 LevelDB 或者 CouchDB。

区块链和 WorldState 组成了一个完整的账本,World State 保证的业务数据的灵活变化,而区块链则保证了所有的修改是可追溯和不可篡改的。

在交易完成之后,数据已经写入账本,就需要将这些数据同步到其他的 Peer,Fabric 中使用的是 Gossip 协议。Gossip 也是 Channel 隔离的,只会在 Channel 中的 Peer 中广播和同步账本数据。

智能合约需要安装到 Peer 节点上,智能合约是访问账本的唯一方式。智能合约可以通过 Go、Java 等变成语言进行编写。

智能合约编写完成之后,需要打包到 ChainCode 中,每个 ChainCode 中可以包含多个智能合约。ChainCode 需要安装,ChainCode 需要安装到 Peer 节点上。安装好了之后,ChainCode 需要在 Channel 上实例化,实例化的时候需要指定背书策略。

智能合约在实例化之后就可以用来与账本进行交互了,流程图如下:

用户编写并部署实例化智能合约之后,就可以通过客户端应用程序来向智能合约提交请求,智能合约会对 WorldState 中数据进行 get、put 或者 delete。其中 get 操作直接从 WorldState 中读取交易对象当前的状态信息,不会去区块链上写入信息,但 put 和 delete 操作除了修改 WorldState,还会去区块链中写入一条交易信息,且交易信息不能修改。

区块链上的信息可以通过智能合约访问,也可以在客户端应用通过 API 直接访问。

Event 是客户端应用和 Fabric 网络交互的一种方式,客户端应用可以订阅 Event,当 Event 发生时,客户端应用就会接受到消息。

事件源可以两类,一类是智能合约发出的 Event,另一类是账本变更触发的 Event。用户可以从 Event 中获取到交易的信息,比如区块高度等信息。

在这篇文章中,首先介绍了 Fabric 整体的网络架构,通过对 Fabric 交易流程的分析,讨论了 peer 节点在交易中的作用,然后详细分析了 peer 节点所维护的账本和智能合约,并分析了 peer 节点维护账本以及 peer 节点执行智能合约的流程。

文 / Rayjun

[1]

[2]

[3]

什么是区块链扩容?

普通用户能够运行节点对于区块链的去中心化至关重要

想象一下凌晨两点多,你接到了一个紧急呼叫,来自世界另一端帮你运行矿池 (质押池) 的人。从大约 14 分钟前开始,你的池子和其区块链节点的承载力他几个人从链中分离了出来,而网络仍然维持着 79% 的算力。根据你的节点,多数链的区块是无效的。这时出现了余额错误:区块似乎错误地将 450 万枚额外代币分配给了一个未知地址。

一小时后,你和其他两个同样遭遇意外的小矿池参与者、一些区块浏览器和交易所方在一个聊天室中,看见有人贴出了一条推特的链接,开头写着“宣布新的链上可持续协议开发基金”。

到了早上,相关讨论广泛散布在推特以及一个不审查内容的社区论坛上。但那时 450 万枚代币中的很大一部分已经在链上转换为其他资产,并且进行了数十亿美元的 defi 交易。79%的共识节点,以及所有主要的区块链浏览器和轻钱包的端点都遵循了这条新链。也许新的开发者基金将为某些开发提供资金,或者也许所有这些都被领先的矿池、交易所及其裙带所吞并。但是无论结果如何,该基金实际上都成为了既成事实,普通用户无法反抗。

或许还有这么一部主题电影。或许会由 MolochDAO 或其他组织进行资助。

这种情形会发生在你的区块链中吗?你所在区块链社区的精英,包括矿池、区块浏览器和托管节点,可能协调得很好,他们很可能都在同一个 telegram 频道和微信群中。如果他们真的想出于利益突然对协议规则进行修改,那么他们可能具备这种能力。以太坊区块链在十小时内完全解决了共识失败,如果是只有一个客户端实现的区块链,并且只需要将代码更改部署到几十个节点,那么可以更快地协调客户端代码的更改。能够抵御这种社会性协作攻击的唯一可靠方式是“被动防御”,而这种力量来自去一个中心化的群体:用户。

想象一下,如果用户运行区块链的验证节点 (无论是直接验证还是其他间接技术),并自动拒绝违反协议规则的区块,即使超过 90% 的矿工或质押者支持这些区块,故事会如何发展。

如果每个用户都运行一个验证节点,那么攻击很快就会失败:有些矿池和交易所会进行分叉,并且在整个过程中看起来很愚蠢。但是即使只有一些用户运行验证节点,攻击者也无法大获全胜。相反,攻击会导致混乱,不同用户会看到不同的区块链版本。最坏情况下,随之而来的市场恐慌和可能持续的链分叉将大幅减少攻击者的利润。对如此旷日持久的冲突进行应对的想法本身就可以阻止大多数攻击。

Hasu 关于这一点的看法:

“我们要明确一件事,我们之所以能够抵御恶意的协议更改,是因为拥有用户验证区块链的文化,而不是因为 PoW 或 PoS。”

假设你的社区有 37 个节点运行者,以及 80000 名被动监听者,对签名和区块头进行检查,那么攻击者就获胜了。如果每个人都运行节点的话,攻击者就会失败。我们不清楚针对协同攻击的启动群体免疫的确切阈值是多少,但有一点是绝对清楚的:好的节点越多,恶意的节点就越少,而且我们所需的数量肯定不止于几百几千个。

那么全节点工作的上限是什么?

为了使得有尽可能多的用户能够运行全节点,我们会将注意力集中在普通消费级硬件上。即使能够轻松购买到专用硬件,这能够降低一些全节点的门槛,但事实上对可扩展性的提升并不如我们想象的那般。

全节点处理大量交易的能力主要受限于三个方面:

算力:在保证安全的前提下,我们能划分多少 CPU 来运行节点?

带宽:基于当前的网络连接,一个区块能包含多少字节?

存储:我们能要求用户使用多大的空间来进行存储?此外,其读取速度应该达到多少?(即,HDD 足够吗?还是说我们需要 SSD?)

许多使用“简单”技术对区块链进行大幅扩容的错误看法都源自于对这些数字过于乐观的估计。我们可以依次来讨论这三个因素:

算力

错误答案:100% 的 CPU 应该用于区块验证

正确答案:约 5-10% 的 CPU 可以用于区块验证

限制之所以这么低的四个主要原因如下:

我们需要一个安全边界来覆盖 DoS 攻击的可能性 (攻击者利用代码弱点制造的交易需要比常规交易更长的处理时间)

节点需要在离线之后能够与区块链同步。如果我掉线一分钟,那我应该要能够在几秒钟之内完成同步

运行节点不应该很快地耗尽电池,也不应该拖慢其他应用的运行速度

节点也有其他非区块生产的工作要进行,大多数是验证以及对 p2p 网络中输入的交易和请求做出响应

请注意,直到最近大多数针对“为什么只需要 5-10%?”这一点的解释都侧重于另一个不同的问题:因为 PoW 出块时间不定,验证区块需要很长时间,会增加同时创建多个区块的风险。这个问题有很多修复方法,例如 Bitcoin NG,或使用 PoS 权益证明。但这些并没有解决其他四个问题,因此它们并没有如许多人所料在可扩展性方面获得巨大进展。

并行性也不是灵丹妙药。通常,即使是看似单线程区块链的客户端也已经并行化了:签名可以由一个线程验证,而执行由其他线程完成,并且有一个单独的线程在后台处理交易池逻辑。而且所有线程的使用率越接近 100%,运行节点的能源消耗就越多,针对 DoS 的安全系数就越低。

带宽

错误答案:如果没 2-3 秒都产生 10 MB 的区块,那么大多数用户的网络都大于 10 MB/秒,他们当然都能处理这些区块

正确答案:或许我们能在每 12 秒处理 1-5 MB 的区块,但这依然很难

如今,我们经常听到关于互联网连接可以提供多少带宽的广为传播的统计数据:100 Mbps 甚至 1 Gbps 的数字很常见。但是由于以下几个原因,宣称的带宽与预期实际带宽之间存在很大差异:

“Mbps”是指“每秒数百万 bits”区块链节点的承载力;一个 bit 是一个字节的 1/8,因此我们需要将宣称的 bit 数除以 8 以获得字节数。

网络运营商,就像其他公司一样,经常编造谎言。

总是有多个应用使用同一个网络连接,所以节点无法独占整个带宽。

P2P 网络不可避免地会引入开销:节点通常最终会多次下载和重新上传同一个块 (更不用说交易在被打包进区块之前还要通过 mempool 进行广播)。

当 Starkware 在 2019 年进行一项实验时,他们在交易数据 gas 成本降低后首次发布了 500 kB 的区块,一些节点实际上无法处理这种大小的区块。处理大区块的能力已经并将持续得到改善。但是无论我们做什么,我们仍然无法获取以 MB/秒为单位的平均带宽,说服自己我们可以接受 1 秒的延迟,并且有能力处理那种大小的区块。

存储

错误答案:10 TB

正确答案:512 GB

正如大家可能猜到的,这里的主要论点与其他地方相同:理论与实践之间的差异。理论上,我们可以在亚马逊上购买 8 TB 固态驱动 (确实需要 SSD 或 NVME;HDD 对于区块链状态存储来说太慢了)。实际上,我用来写这篇博文的笔记本电脑有 512 GB,如果你让人们去购买硬件,许多人就会变得懒惰 (或者他们无法负担 800 美元的 8 TB SSD) 并使用中心化服务。即使可以将区块链装到某个存储设备上,大量活动也可以快速地耗尽磁盘并迫使你购入新磁盘。

一群区块链协议研究员对每个人的磁盘空间进行了调查。我知道样本量很小,但仍然...

请点击输入图片描述

此外,存储大小决定了新节点能够上线并开始参与网络所需的时间。现有节点必须存储的任何数据都是新节点必须下载的数据。这个初始同步时间 (和带宽) 也是用户能够运行节点的主要障碍。在写这篇博文时,同步一个新的 geth 节点花了我大约 15 个小时。如果以太坊的使用量增加 10 倍,那么同步一个新的 geth 节点将至少需要一周时间,而且更有可能导致节点的互联网连接受到限制。这在攻击期间更为重要,当用户之前未运行节点时对攻击做出成功响应需要用户启用新节点。

交互效应

此外,这三类成本之间存在交互效应。由于数据库在内部使用树结构来存储和检索数据,因此从数据库中获取数据的成本随着数据库大小的对数而增加。事实上,因为顶级 (或前几级) 可以缓存在 RAM 中,所以磁盘访问成本与数据库大小成正比,是 RAM 中缓存数据大小的倍数。

不要从字面上理解这个图,不同的数据库以不同的方式工作,通常内存中的部分只是一个单独 (但很大) 的层 (参见 leveldb 中使用的 LSM 树)。但基本原理是一样的。

例如,如果缓存为 4 GB,并且我们假设数据库的每一层比上一层大 4 倍,那么以太坊当前的 ~64 GB 状态将需要 ~2 次访问。但是如果状态大小增加 4 倍到 ~256 GB,那么这将增加到 ~3 次访问。因此,gas 上限增加 4 倍实际上可以转化为区块验证时间增加约 6 倍。这种影响可能会更大:硬盘在已满状态下比空闲时需要花更长时间来读写。

这对以太坊来说意味着什么?

现在在以太坊区块链中,运行一个节点对许多用户来说已经是一项挑战,尽管至少使用常规硬件仍然是可能的 (我写这篇文章时刚刚在我的笔记本电脑上同步了一个节点!)。因此,我们即将遭遇瓶颈。核心开发者最关心的问题是存储大小。因此,目前在解决计算和数据瓶颈方面的巨大努力,甚至对共识算法的改变,都不太可能带来 gas limit 的大幅提升。即使解决了以太坊最大的 DoS 弱点,也只能将 gas limit 提高 20%。

对于存储大小的问题,唯一解决方案是无状态和状态逾期。无状态使得节点群能够在不维护永久存储的情况下进行验证。状态逾期会使最近未访问过的状态失活,用户需要手动提供证明来更新。这两条路径已经研究了很长时间,并且已经开始了关于无状态的概念验证实现。这两项改进相结合可以大大缓解这些担忧,并为显著提升 gas limit 开辟空间。但即使在实施无状态和状态逾期之后,gas limit 也可能只会安全地提升约 3 倍,直到其他限制开始发挥作用。

另一个可能的中期解决方案使使用 ZK-SNARKs 来验证交易。ZK-SNARKs 能够保证普通用户无需个人存储状态或是验证区块,即使他们仍然需要下载区块中的所有数据来抵御数据不可用攻击。另外,即使攻击者不能强行提交无效区块,但是如果运行一个共识节点的难度过高,依然会有协调审查攻击的风险。因此,ZK-SNARKs 不能无限地提升节点能力,但是仍然能够对其进行大幅提升 (或许是 1-2 个数量级)。一些区块链在 layer1 上探索该形式,以太坊则通过 layer2 协议 (也叫 ZK rollups) 来获益,例如 zksync, Loopring 和 Starknet。

分片之后又会如何?

分片从根本上解决了上述限制,因为它将区块链上包含的数据与单个节点需要处理和存储的数据解耦了。节点验证区块不是通过亲自下载和执行,而是使用先进的数学和密码学技术来间接验证区块。

因此,分片区块链可以安全地拥有非分片区块链无法实现的非常高水平的吞吐量。这确实需要大量的密码学技术来有效替代朴素完整验证,以拒绝无效区块,但这是可以做到的:该理论已经具备了基础,并且基于草案规范的概念验证已经在进行中。

以太坊计划采用二次方分片 (quadratic sharding),其中总可扩展性受到以下事实的限制:节点必须能够同时处理单个分片和信标链,而信标链必须为每个分片执行一些固定的管理工作。如果分片太大,节点就不能再处理单个分片,如果分片太多,节点就不能再处理信标链。这两个约束的乘积构成了上限。

可以想象,通过三次方分片甚至指数分片,我们可以走得更远。在这样的设计中,数据可用性采样肯定会变得更加复杂,但这是可以实现的。但以太坊并没有超越二次方,原因在于,从交易分片到交易分片的分片所获得的额外可扩展性收益实际上无法在其他风险程度可接受的前提下实现。

那么这些风险是什么呢?

最低用户数量

可以想象,只要有一个用户愿意参与,非分片区块链就可以运行。但分片区块链并非如此:单个节点无法处理整条链,因此需要足够的节点以共同处理区块链。如果每个节点可以处理 50 TPS,而链可以处理 10000 TPS,那么链至少需要 200 个节点才能存续。如果链在任何时候都少于 200 个节点,那可能会出现节点无法再保持同步,或者节点停止检测无效区块,或者还可能会发生许多其他坏事,具体取决于节点软件的设置。

在实践中,由于需要冗余 (包括数据可用性采样),安全的最低数量比简单的“链 TPS 除以节点 TPS”高几倍,对于上面的例子,我们将其设置位 1000 个节点。

如果分片区块链的容量增加 10 倍,则最低用户数也增加 10 倍。现在大家可能会问:为什么我们不从较低的容量开始,当用户很多时再增加,因为这是我们的实际需要,用户数量回落再降低容量?

这里有几个问题:

区块链本身无法可靠地检测到其上有多少唯一用户,因此需要某种治理来检测和设置分片数量。对容量限制的治理很容易成为分裂和冲突的根源。

如果许多用户突然同时意外掉线怎么办?

增加启动分叉所需的最低用户数量,使得防御恶意控制更加艰难。

最低用户数为 1,000,这几乎可以说是没问题的。另一方面,最低用户数设为 100 万,这肯定是不行。即使最低用户数为 10,000 也可以说开始变得有风险。因此,似乎很难证明超过几百个分片的分片区块链是合理的。

历史可检索性

用户真正珍视的区块链重要属性是永久性。当公司破产或是维护该生态系统不再产生利益时,存储在服务器上的数字资产将在 10 年内不再存在。而以太坊上的 NFT 是永久的。

是的,到 2372 年人们仍能够下载并查阅你的加密猫。

但是一旦区块链的容量过高,存储所有这些数据就会变得更加困难,直到某时出现巨大风险,某些历史数据最终将……没人存储。

要量化这种风险很容易。以区块链的数据容量 (MB/sec) 为单位,乘以 ~30 得到每年存储的数据量 (TB)。当前的分片计划的数据容量约为 1.3 MB/秒,因此约为 40 TB/年。如果增加 10 倍,则为 400 TB/年。如果我们不仅希望可以访问数据,而且是以一种便捷的方式,我们还需要元数据 (例如解压缩汇总交易),因此每年达到 4 PB,或十年后达到 40 PB。Internet Archive (互联网档案馆) 使用 50 PB。所以这可以说是分片区块链的安全大小上限。

因此,看起来在这两个维度上,以太坊分片设计实际上已经非常接近合理的最大安全值。常数可以增加一点,但不能增加太多。

结语

尝试扩容区块链的方法有两种:基础的技术改进和简单地提升参数。首先,提升参数听起来很有吸引力:如果您是在餐纸上进行数学运算,这就很容易让自己相信消费级笔记本电脑每秒可以处理数千笔交易,不需要 ZK-SNARK、rollups 或分片。不幸的是,有很多微妙的理由可以解释为什么这种方法是有根本缺陷的。

运行区块链节点的计算机无法使用 100%的 CPU 来验证区块链;他们需要很大的安全边际来抵抗意外的 DoS 攻击,他们需要备用容量来执行诸如在内存池中处理交易之类的任务,并且用户不希望在计算机上运行节点的时候无法同时用于任何其他应用。带宽也会受限:10 MB/s 的连接并不意味着每秒可以处理 10 MB 的区块!也许每 12 秒才能处理 1-5 MB 的块。存储也是一样,提高运行节点的硬件要求并且限制专门的节点运行者并不是解决方案。对于去中心化的区块链而言,普通用户能够运行节点并形成一种文化,即运行节点是一种普遍行为,这一点至关重要。

写到这里,本文关于区块链节点的承载力和区块链节点搭建费用的介绍到此为止了,如果能碰巧解决你现在面临的问题,如果你还想更加了解这方面的信息,记得收藏关注本站。

评论