IOHK官网博客:引入pipelining:Cardano 的共识层扩展解决方案

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

Pipelining是 2022 年部署的关键扩展改进之一。以下是它的工作原理和重要性。

你会认为pipelining听起来像是管道工可能采用的改造程序,这是可以原谅的。在某种程度上,这与事实相去甚远。实际上,pipelining是卡尔达诺“管道”的演变。这是我们今年扩展计划中的一个关键要素,是一系列已发布步骤中的一个,这些步骤涵盖了我们随着生态系统的发展而有条不紊地提高 flex Cardano 容量的方法。

如果要保持增长和竞争力,扩展和吞吐量是任何区块链的关键考虑因素。随着 Cardano 进入 Basho 开发阶段,我们专注于确保 Cardano 能够扩展以满足生态系统不断增长的需求。换句话说,我们需要确保底层协议——Ouroboros Praos——运行速度足够快,足以应对现在部署或准备在 Cardano 上启动的大量去中心化应用程序。

卡尔达诺将继续通过一系列可衡量的步骤稳步优化,随着需求的增加,谨慎而有条不紊地扩展#Cardano,以实现未来的增长。 1 月初发布的节点 1.33.0 引入的更改为我们提供了额外的空间来修改一些网络参数,包括块大小和内存单元。此处的调整与 Cardano 如何处理大量网络流量有直接关系,我们将继续密切监控网络性能。

继续密切观察现实世界的网络性能——重要的是——参数变化的累积影响将是整个过程的关键。每次更新后,我们都会仔细监控和评估至少一个时期(5 天),然后再继续进行进一步调整。尽管广泛的研究和工程工作已经投入到系统的设计和部署中,但分散的网络架构需要根据现实世界的用户行为和使用情况进行扩展。

引入pipelining

pipelining——或者更准确地说,扩散pipelining——是对共识层的改进,可以促进更快的区块传播。它可以在净空方面获得更大的收益,这将进一步提高 Cardano 的性能和竞争力。

要了解这种技术如何实现其预期目标,让我们回顾一下目前块的传播方式。

目前,一个块在整个链中移动时要经过六个步骤:

  1. 块头传输

  2. 区块头验证

  3. 块体请求和传输

  4. 区块体验证和本地链扩展

  5. 块头传输到下游节点

  6. 块体传输到下游节点

一个区块的旅程是一个非常序列化的旅程。每次在每个节点上,所有步骤都以相同的顺序发生。考虑到节点的数量和不断增长的块数量,块传输需要相当长的时间。

扩散pipelining将其中一些步骤重叠在一起,因此它们同时发生。这可以节省时间并提高吞吐量。
image

这种技术节省的时间将为进一步扩展 Cardano 带来更多的空间,包括对以下方面的更改:

• 区块大小——区块越大,它可以承载的交易和脚本就越多

• Plutus 内存限制 - 可供 Plutus 脚本运行的内存量

• Plutus CPU 限制 - 可以为脚本分配更多计算资源以更有效地运行

实施pipelining

扩散pipelining背后的设计原则之一是实现更快的块传播,同时避免对链进行“破坏性”更改。我们不想删除 Cardano 中已经发生的任何协议、原语或交互,因为节点依赖于这些已建立的机制。我们想要完全的向后兼容性,因此我们没有改变目前的工作方式,而是添加了一个新的迷你协议,其工作是在完全验证之前在看到新的理想块时预先通知订阅的实体。

pipelining引入的关键变化是能够预先通知对等方并在验证之前给它们一个块,这使下游对等方能够预取新的块体。这节省了大量时间,因为我们大大减少了跨多个跃点验证块所需的时间。

综上所述

pipelining只是今年支持卡尔达诺扩展的支柱之一。综合起来,所有这些变化将导致 Cardano 在今年比竞争对手更快,并成为一个竞争激烈的去中心化金融 (DeFi) 平台。

关键要点

image

感谢Fernando Sanchez对本文做出了贡献。

原文链接:Introducing pipelining: Cardano's consensus layer scaling solution - IOHK Blog