Jack Kubinec:
Solana 的长期扩展策略是什么?目前团队似乎主要关注于优化现有的技术栈,而不是拓展架构。除了优化现有技术,Solana 是否还有其他扩展策略?还是说,通过优化现有代码库来提升吞吐量就是唯一的研究方向?Mert,你怎么看?
Mert Mumtaz:
性能工程和系统扩展的基本方法是,首先构建一个系统,在实际运行中施加负载,然后观察瓶颈所在,并通过优化这些瓶颈来改进系统。接着,再次测试优化后的系统表现。分布式系统的复杂性在于,其各个组件之间的交互呈指数增长。例如,如果一个系统有八个组件,每个组件都可以彼此通信,那么潜在的交互复杂性是巨大的,无法在理论设计中完全预测。因此,唯一可行的方法是设计一个原则上可扩展的简单架构,并在实际运行中不断调优和修复问题。
这种方法已经被证明可以带来很大的进步。目前团队正采用了这样的策略,他们在过程中发现了一些非常奇怪的 bug,比如代码中存在重复的数据结构等低级错误。通过解决这些问题,团队逐步积累了关于如何进一步扩展系统的洞察力。
这一过程可以类比赛车设计。比如在 F1 比赛中,即使你设计了一辆发动机强劲、轮胎抓地力优秀的赛车,但可能会因为车身过轻而导致转弯时表现不佳。此时的挑战是,如何在不影响其他性能的情况下解决这个问题。同样,在设计分布式系统时,只要遵循物理法则,其他问题都可以通过优化解决。这也是我最初被 Solana 吸引的原因之一——通过增加带宽和减少延迟来最大化利用物理资源。
目前来看,系统的主要瓶颈在于带宽,尤其是在异步执行功能上线后,这为扩展提供了新的方向。相比之下,多个并发提案更多是为了增强系统的容错能力,而异步执行则侧重于提升扩展性。要解决带宽瓶颈,需要综合运用多种技术,比如零知识证明,以及设计新的共识机制来高效利用带宽,并通过异步执行进一步优化带宽的使用效率。
然而,传统的“论文驱动”方法,即通过理论假设解决问题的方法并不适用于分布式系统。因为系统的非线性复杂性在实际运行中会暴露出许多意想不到的问题,而这些问题无法通过理论设计完全预测。因此,Solana 的扩展策略是通过不断修复瓶颈和优化系统,逐步生成关于核心架构变更的洞察力。一个很好的例子是 Alpenglow 优化与异步执行功能的结合,这两者相辅相成,共同推动系统的扩展能力。
