平均而言,Flow 每天要处理500,000-1 百万笔交易,即使是顺序执行交易,也有足够的空间支持 10 倍的交易吞吐量增长。虽然核心协议的每秒交易量(TPS)扩展始终是重中之重,但随着链上存储的数据越来越多,协议也必须能够扩展,以满足状态增长的需要。
通过以下升级,运行节点和访问数据的障碍将大大降低。用户将受益于安全、无权限的网络访问,而无需牺牲对电脑的明显硬件要求。在使用应用程序时,他们将不必依赖第三方进行数据或网络访问。
倡议
Flow 的执行状态完全驻留在内存中,这对于支持高交易吞吐量非常有效。不过,一旦链上数据超过数百 GB,它就不能很好地扩展;作为参考,一个执行节点至少需要 ~800GB 的内存。
通过优化执行状态数据结构(Atree 寄存器内联),可将 Trie 的大小减少 15%。通过将执行状态从内存移至磁盘,还可将执行节点的内存需求降低约 50%。这将大大降低执行节点的运行成本,并使单个执行状态扩展到数百 TB 而对事务吞吐量的影响降到最低成为可能。
要实现 Flow 的扩展潜力,并发执行是关键。非冲突事务的确定性并发执行是扩展事务吞吐量的基础。它涉及在多个内核上以单块方式执行事务。
实际上,一个区块内的所有事务并不能同时执行。然而,随着链上事务负载的增加,并发执行将越来越有必要,以便在与单一状态交互时保持事务执行速度。
对许多基于 Flow 的开发人员来说,速率受限的Access API是一项挑战。之所以存在速率限制,是因为 Access API 仍然依赖于执行节点来执行脚本和事件。为消除这一瓶颈,我们推出了多项举措。
所有执行数据都应通过执行数据同步协议提供,并添加最后缺失的部分--事务结果。
为观察者节点启动执行数据同步后,任何人都可以从已标记或未标明的对等节点上无误地下载执行数据,并运行事件流应用程序接口。
最后,在访问节点和观察节点上集成执行状态索引和本地脚本执行功能,将使开发人员能够运行自己的节点,并在任何区块执行脚本,而不受速率限制。
目前的进展情况
Atree 寄存器内嵌预计将于 2023 年 8 月底完成。在部署这种优化的执行状态之前,仍需完成状态迁移,这将在未来的福禄网络升级期间进行。
在磁盘上存储执行状态的概念验证试验取得了令人鼓舞的结果,与在 SSD 上存储 Pebble DB 中的执行状态相比,数据访问速度降低了不到 60%。目前正在进行设计研讨,以便在 2023 年第三季度完成第二个里程碑,为将执行节点内存使用量降低约 50% 奠定基础。
并发执行的基础工作以重构执行运行时(FVM)而告终,以确保 Flow 可以运行多个执行线程而不会产生副作用。此外,还对导致事务冲突的 UUID 生成进行了重构,并开始对导致事务冲突和并发执行受阻的其他原因进行重构,包括费用扣除、程序缓存导致的副作用以及 Cadence 类型检查器集成。
今年晚些时候,将完成对公共网络上可用的整套执行数据进行无信任访问的工作,访问节点和观察节点将能够在本地执行脚本。
路线图目标
继续阅读
了解有关福禄的最新信息。
了解有关福禄的最新信息。