Flow Community Rewards are here. Earn points for engaging in the ecosystem, spend points on prizes. Learn more.
生态系统
2023年6月7日
升级Flow的开发者体验、网络弹性,以及更多内容
维沙尔-昌格拉尼
升级Flow的开发者体验、网络弹性,以及更多内容

Flow网络正在进行另一次重大升级,这将增强其BFT(拜占庭容错)能力,并为更有效的数据交换格式、改善开发者体验的新流媒体API以及未来交易吞吐量的大幅增加奠定基础。

让我们深入了解这些更新中的每一项。

提高所有非共识节点的复原力和性能

Flow有一个多角色架构,共识节点负责在它们之间运行共识算法,并通过建立新的区块来扩展链。

然而,所有其他非共识节点--访问、执行、收集、验证,甚至观察者等非裸体节点都需要跟踪链,或者换句话说--在链前进的过程中跟踪链,完成他们的责任。

共识跟随者是一个模块,它允许任何非共识节点通过向其提供已被共识节点最终确定的最新区块来跟随链。跟随者独立地应用共识规则来断言区块的有效性并检测区块的最终性。从本质上讲,它屏蔽了节点内的高层处理逻辑,使其不受任何恶意节点发送虚假数据的影响。

在这次网络升级中,共识追随者架构已被改造,使其更加BFT和高效。改造的内容包括

  1. 对传入的区块头进行即时验证,只接受链上的有效延伸部分进行进一步处理。新的跟随者利用每个标头中包含的法定人数证书(QC)作为共识进展的加密证明。具体来说,QC证明了共识委员会的超级多数同意该链到父块的有效性。
  2. 通过只验证范围顶部的区块的QC,优化了区块范围的同步性。
  3. 通过永不将潜在的无效区块持久化到磁盘(所有存储的区块都是有效的状态扩展),优化磁盘的使用和攻击的弹性。
  4. 在处理管道中分别并行处理经认证和未经认证的块。

因此: 

  • 每个节点在共识的核心功能中都得到了大幅提高的BFT弹性,使Flow更接近于自主处理和应对攻击场景。
  • 这也为构建具有微小计算足迹的轻型客户端提供了基础,这些客户端可以在有限的硬件上运行,包括智能手机。

你可以在这里阅读更多关于它的信息。

为更快、更有效的Cadence数据交换添加构建模块

今天,dApps、钱包和其他发送交易、执行脚本和从链上读取现有交易或事件的客户端使用JSON-Cadence数据交换格式(JSON-CDC)编解码器来序列化和反序列化Cadence外部值,如交易、参数、脚本参数和链上的返回值,如交易事件或脚本的返回值。然而,由于JSON-CDC是基于JSON的,它有几个缺点。首先,JSON是相当啰嗦的,导致网络有效载荷的大小很大。其次,它本身也没有提供一种确定地编码数值的方法。

Cadence紧凑格式(CCF)是一种新的数据格式,设计用于Cadence外部值的紧凑、高效和确定性的编码。CCF使用CCF规范中规定的CBOR(RFC 8949)。这次升级在代码库中引入了一个完全实现的CCF编解码器。

CCF解决了JSON-CDC中的所有缺点。基于CCF的消息可以是完全自描述的或部分自描述的。两者都比JSON-CDC消息更紧凑。例如,一个FeesDucted事件,如::


类型A.f919ee77447b7497.FlowFees.FeesDucted
价值
    - 数量(UFix64):0.00003368
    - 包容努力(UFix64):1.00000000
    - 执行力 (UFix64):0.00000655

 

当以JSON-CDC(minified)编码时,使用了298个字节,但在CCF完全自描述模式下仅使用118个字节,在CCF部分自描述模式下约使用20个字节。

此外,基于CCF的协议可以对所有相同类型的消息只发送一次Cadence元数据。  

与JSON-CDC编解码器相比,CCF编解码器的速度更快,使用的内存更少。它通过大量的测试案例和模糊处理进行了全面的测试。

在下一阶段,CCF编解码器将用于序列化和反序列化所有的Cadence外部值(即使用CCF格式的交易参数、脚本参数、事件和脚本返回值),从而使Cadence数据与链的交换更加有效。

为更新的、更符合人体工程学的链式数据消费方式铺平道路

在这个网络升级中,访问节点与FLIP事件流API中提出的事件流API的测试版实现一起发货。事件流API,当最终通过功能切换打开时,将为dApps提供一种新的和更符合人体工程学的方式,通过基于推送的流模型来消费执行数据(交易事件和账户更新),而不是持续轮询变化。

更新以最终支持并行事务的执行

在上一次mainnet升级中,我们曾提到过平行交易执行,它允许执行节点同时执行多个交易。这次升级包括对执行节点的近九十项更新,使其更接近于完全支持并行交易执行。

按照新的Flow升级时间表进行

如果你还没有注意到,Flow现在采用了之前宣布的新的升级时间表,每季度只有一次预定的spork会导致网络停机,而不像去年那样每两个月就有一次spork。现在还有一个高度协调的升级,每个月都会发生一次,当没有预定的spork时,它不会导致超过7分钟的网络停机--同时允许新功能和错误修复更频繁地推送到所有节点。

我们希望你和我们一样对这次升级感到兴奋,因为它将通过使Flow更安全、性能更强、对开发者更友好而进一步加速主流Web3的采用。

感谢Alex Hentschel、Bastian Müller、Faye Amacker、Jordan Schalm和Jan Bernatik对本内容的贡献。