如果你是一名软件工程师,你可能听说过“噪音邻居效应”这个术语。它描述了计算中一个常见的问题,即一个应用程序或进程会影响同一系统上其他应用程序的性能。这就像有一个吵闹的邻居,整晚开派对,导致整个街区的人第二天工作时表现不佳。
这个术语最常用于描述多租户服务,其中多个应用程序在同一基础设施上运行。
为了说明这一点,想象一下你在运行一个云服务,你希望允许开发者租用服务器来托管他们的应用程序。如果你试图直接租用实际的物理服务器的远程访问,你会遇到一个问题:数据中心中的典型服务器性能非常强大,但大多数开发者并不需要这么多资源来运行他们的应用程序。
因此,你想出了一个解决方案:将每台服务器拆分成多个“虚拟”服务器。每个虚拟服务器将拥有自己的一组资源,每个开发者可以租用一个虚拟服务器来运行他们的应用程序。这样,你就可以高效利用物理服务器,并为不同资源需求的客户提供服务。
一切正常,如果你公平分享资源……
但有一个问题:如果某个开发者的应用程序开始占用过多资源,使用超过他们的“公平份额”呢?突然间,同一台服务器上的其他虚拟服务器将会有更少的资源可以分配——它们的性能将会下降。
关键是,这种性能下降纯粹是由于其他用户与您在同一物理服务器上“随机”共存。您对此毫无发言权。
幸运的是,在2023年,云服务提供商采取了一些措施来缓解噪音邻居效应。例如,他们可能提供更先进的虚拟化技术,对任何一个客户可用的资源设置严格限制。
但有一类情况,噪音邻居问题依然存在:区块链应用。
去中心化应用是噪音邻居
区块链可以通过多种方式来理解。从某种意义上说,区块链是一个分布式网络,由许多服务器共同维护一个共享的交易账本。
但从开发者的角度来看,运行在区块链上的虚拟机是一个单线程计算机,资源有限,所有运行在其上的应用程序共享这些资源。
没错:区块链是终极的“多租户”基础设施。
在单个区块链上,你可以有成千上万的应用程序(智能合约)竞争有限的资源。而且,由于这些资源是通过市场分配的,更多的竞争直接导致了更高的成本。
通常,“快速”和“便宜”的交易被认为是底层区块链的内在属性。但这是错误的:这些属性也受到链上使用情况的影响——并且随着使用情况的变化而迅速变化。
这意味着,如果某个记忆币在错误的时刻突然走红,你(和你的用户!)可能会突然发现自己支付了大幅增加的燃气费。
这个问题不仅仅是以太坊的一个问题!所有流行的链最终都会遇到这个问题——这证明了链在创造区块空间需求方面的成功。这是单体区块链普遍存在的问题。噪音邻居总是会毁了你的日子,导致用户体验下降和高成本。
进入专用Rollups
解决噪音邻居问题的唯一长期解决方案是避免一开始就采用“多租户”架构。专用Rollups应运而生:一种新技术,承诺一次性解决区块链应用的噪音邻居问题。
通过专用Rollup,项目获得一种作为独立区块链运行的二层扩展解决方案。二层链将交易数据发布到底层的第一层,但将计算和存储卸载到链外。这意味着应用程序之间的资源竞争显著减少。就像从共享主机计划转移到专用服务器一样。
更好的是:专用Rollups可以根据每个应用程序的特定需求进行定制。想要最小化交易成本?你可以选择在一个成本较低的链上结算。需要大量计算能力?在更强大的服务器上启动Rollup,并提高燃气限制。或者,也许你需要深入EVM并添加新的低级原语,如BLS曲线操作、ZK友好的哈希函数或更高效的内存管理工具。
Caldera:专用Rollup平台
Caldera是项目启动可定制专用Rollups的最简单方法。Caldera致力于赋能开发者,提供构建任何生态系统或应用程序所需的基础设施。
像zkHoldem、Syndr和Curio这样的开发者已经在使用Caldera启动快速、安全的区块链和应用程序,而不牺牲性能或功能。
如果你是一个开发者,欢迎联系我们!我们很乐意讨论为什么专用区块链可能适合你的应用。