IOHK官网博客:稳中求胜:网络演进促进网络增长

image
原文来自IOHK John Woods,由卡尔达诺大使陈哲Anson翻译

在卡尔达诺的智能合约时代成功开启后,我们将很快率先进行网络调整计划,以支持未来的增长

从概念上讲,卡尔达诺被设计为一个平台,以最好地平衡安全性、可扩展性和去中心化的长期权衡。因此,我们设计并构建了一个稳固且安全的网络层,同时具有增长和扩展的灵活性,以支持数百万用户的全球基础。

随着安全、高度去中心化的权益证明网络现已牢固建立,并部署了核心智能合约功能,我们现在进入 Basho 阶段,专注于优化、扩展和网络增长。

作为一个去中心化的免许可区块链,卡尔达诺对任何想要使用它或在其上构建的人开放。最近的硬分叉(添加原生代币和智能合约功能)为卡尔达诺生态系统带来了许多新用户,我们看到交易量和网络流量的快速增长(和峰值)。

作为核心组件——包括钱包连接器和 Plutus Application 后端 (PAB) 已完成并集成到主网中,我们预计网络活动将显着增长。一系列建立在 Cardano 上的项目将开始启动,首先在测试网上,然后在主网上。这些只会增加,未来几个月可能会有数十万新用户从区块链范围的各个方面进入卡尔达诺。

不可避免地,我们可以预期新的去中心化应用程序 (DApp) 的推出会带来大量流量,尤其是在早期和几周内。为了适应这种持续增长,并确保卡尔达诺保持其弹性和稳健性,我们现在开始对网络参数进行一系列调整。这些参数更改将持续改进和增强 Cardano 在其整个用户范围内的可用性和体验。

为增长而设计

Ouroboros旨在处理大量数据以及不同复杂性和大小的交易和脚本。目前,根据当前参数,卡尔达诺网络平均仅使用了其容量的 25% 左右。这是次优的,因为事实上,最有效的场景是卡尔达诺以其容量的 100% 或接近其容量运行(即网络“饱和”)。

虽然许多网络解决方案会在这种情况下受到影响,但 Ouroboros 和 Cardano 网络堆栈都被设计为公平且具有高弹性,即使在严重饱和的情况下也是如此。

高效的系统旨在最大限度地减少拥塞,同时在拥塞发生时进行有效管理。您可以在最近的这篇博客中阅读更多内容,但简而言之,网络使用背压来管理整个系统负载。因此,虽然在大量 NFT 下降期间的一些个人用户可能会经历更长的交易等待时间,但这并不意味着网络正在“挣扎”。这实际上意味着网络按预期运行。我们称之为“优雅降级”,您可以在网络设计论文中更深入地研究这一点。

调整参数

除了原始的架构设计以及在一系列模拟情况下的重要基准测试之外,只有在现实世界中,我们才能真正衡量需求和任何变化的有效性。

在广泛的基准测试和开发者反馈之后,我们现在开始逐步调整,今天提交了两个初步更改。这些更改计划于 11 月 25 日星期四在测试网上生效。一旦经过测试,我们预计随后将这些应用到主网,在 2021 年 12 月 1 日星期三 21:45:00 UTC 的 306 纪元生效。

那我们在调整什么?

我们将块大小增加 8KB 到 72KB(增加 12.5%)

现在有超过 200 万个 Cardano 钱包在使用,流量在一年内增长了 20 多倍(从 2020 年 11 月的每天不到 10,000 笔交易增加到每天超过 200,000 笔交易。因为随着开发人员的推出,预计流量会增加在新的 DApp 中,块大小正迅速成为一个关键考虑因素。更大的块大小意味着更多的交易可以放入一个块中,从而为用户提供更大的容量。能够将 12.5% 的交易放入一个块中是很重要的,因为它意味着我们每秒处理更多交易,或者我们认为——一个更有用的指标——更大的数据吞吐量。

我们正在对卡尔达诺参数化的变化采取稳定、有条理的方法。 12.5% 的增长是相当可观的,但也不算太大。它为进一步扩展留下了空间,并允许权益池运营商 (SPO) 适应不断增长的需求。我们将采取“缓慢而稳定”的方法来进一步改变区块大小,以便我们向最终用户提供底层网络容量,同时确保我们能够继续作为全球去中心化的区块链成功运营。当前一代 Ouroboros(名为 Praos)具有必须满足的特定要求,以确保满足其安全目标,最重要的参数之一是块传播时间。区块传播时间是衡量新铸造的区块在网络上的节点之间传播所需的时间,代表 95% 的抵押 ada。为了让 Praos 保持安全,网络必须在 5 秒内传播新块。

我们可以认为这 5 秒限制了我们可以“花费”在增加块大小等事情上的“预算”。诸如增加块大小之类的更改自然会增加传播块所需的时间,因此我们必须仔细监控以确保我们为提高性能所做的更改不会影响网络的安全性。在 Ouroboros 的未来迭代中,此预算将增加。同时,我们的重点将放在维护安全性上,同时根据不断增长的需求灵活调整网络。

我们还将每笔交易的 Plutus 脚本内存单元增加到 1125 万(再次增加 12.5%)

这是一个强大的变化,我们知道 DApp 开发人员会非常欣赏这一变化。增加Plutus 内存限制意味着他们可以开发更复杂的 Plutus 脚本,或者现有脚本将能够处理更多数据项、增加并发性或以其他方式扩展其功能。这将是对内存单元设置的一系列更改中的第一个,这些更改将大大增强 Plutus 脚本的实际功能。与块大小一样,我们将逐步但稳定地推出更改,以便网络和 SPO 适应增加的需求。

例如,许多应用程序开发人员要求进行下面描述的更改(块大小增加和 Plutus 脚本内存单元每笔交易的增加)。这两个变化是相辅相成的。这不仅仅是创建更复杂的脚本。这也是为了让更多的数据通过。

稳稳当当

随着 Cardano 平台的发展,每一项更改都将被仔细考虑,一旦采取行动,就会对其进行监控以衡量其对性能的影响。所有更改都将基于从网络中提取的经验数据以及真实、持续的用户需求。至关重要的是,不要围绕网络使用的短期激增做出具有长尾影响的决策。例如,我们不会过早地进行更改,也不会以可能损害卡尔达诺长期安全性的速度进行更改。

卡尔达诺的发展以基础研究和持续研究为基础。中长期的进一步网络增强将共同带来显着的容量改进,并调整网络以提供最佳的整体体验。

我将加入 11 月 Cardano360 以分享对此的进一步想法。但简而言之,这是关于建立新的、功能强大的区块链基础设施,建立在先进的、基本去中心化的技术之上。最初,我们将专注于多项性能改进,这将使我们能够利用 Ouroboros Praos 协议的限制。然后,我们将专注于优化 Plutus 脚本的大小以及 Plutus 解释器和 Cardano 节点实现的底层性能。这将使我们能够在相同的协议参数内处理更多有用的工作。与此相关的是压缩技术的使用,以减少脚本和交易的大小,这意味着可以在相同大小的块中承载更多的交易。所有这些(以及更多)将提高第 1 层的性能和容量。展望未来,Hydra 将引入第 2 层解决方案,通过允许用户提供重用相同分类账表示的多个链来提供极大的可扩展性。

结语

从某种意义上说,卡尔达诺是一个生命体,随着每一步进化而成长和适应。这听起来可能有点矛盾,但虽然它的基础是由坚如磐石的基础研究形成的,但从一开始就设计了灵活性(通过硬分叉组合器(HFC)改变整个协议。

参数化更改是此转换过程的一部分。虽然不可避免地会有人想要更快地行动,但随着卡尔达诺的影响力和采用率的增长,我们的重点将继续放在稳定、安全的发展上。

感谢 Duncan Coutts、Kevin Hammond 和 Fernando Sanchez 对本文的贡献。

原文链接:Slow and steady wins the race: network evolution for network growth - IOHK Blog