Cover photo

Smooth 模块化区块链系列教程(七): QoS 和 DAG

传统的 QoS (Quality of service)

在电话通信领域,QoS 由 ITU 于 1994年定义。QoS 涵盖了连接所有方面的要求,例如服务响应时间、损耗、信噪比、回声、中断、频率响应、响度等。其中一个重要的维度,是服务等级(GoS)要求,它包括与网络容量和覆盖范围相关指标,例如可以保证的最大阻塞概率和中断概率。

在计算机网络和其他分组交换网络领域,QoS 是为不同的应用程序、用户或数据流提供不同优先级的能力,或保证数据流具有一定性能的能力。例如,保证所需的比特率、延迟、延迟变化、分组丢失或误码率。QoS 对于实时流媒体应用很重要,例如语音、多人在线游戏,并且在容量有限的网络中尤其重要,例如蜂窝数据通信。

QoS
QoS

区块链的 QoS (Quality of service)

QoS 面向的是 dApps 和 app-specific chains, 对于不同类型的 Transaction,不同的 dApps,需求场景是多样化的,且对于交易效率、安全保障、用户体验、交易成本、计算资源消耗,都有着不同的要求,这需要区块链可以为不同的需求,构建对应的执行协议、执行标准、Rollup 规则等,同时要保证整个系统的安全性。

因此 Smooth 提出了一种框架,在 Execution 层和 Settlement 层,进行交易排序的优化,面向不同的 dApps,不同的 transaction,不同的 app-specific chains,实现 QoS 机制。Smooth 采用 Move 语言,实现交易的可并行处理和最大程度的安全性,从而达到更优的可扩展性,并且应用模块化区块链的思想,让每一层具有更清晰的边界,构建 Move 语言下 DA 层和共识层的处理层(参考 Celestia)。

有向无环图 DAG 结构

DAG
DAG

Move 语言构建的系统,以用户为基础作为资源管理。

Smooth 参考了 Sui 的交易流程模型,采用 DAG 模型,会带来以下的优点:

  1. 为并行化创造条件:DAG 作为一类数据结构,其与区块链结合,可以解决效率问题。因为链式结构使整个网络只能存在一条链,导致出块无法并发执行,引入 DAG 结构后,网络中可以并行打包多个区块。

  2. 因果顺序加快共识过程:在 Sui 中,链上事务的因果顺序是很重要的一个特点,也是上图中的每一个节点,它类似于区块中的 Merkle Root,是 DAG 结构的主干,也是共识投票的参考证明。

Reservation 交易池定序

借助 DAG 的事务执行流程,Smooth 构建出一个独立的 Reservation 交易池,将交易提交、存储、排序、有效性验证,集中执行处理。

Reservation Tx Pool
Reservation Tx Pool

采用这种堆栈式的存储模式,虽然牺牲了一部分的即时性,但可以为不急于在链上立刻成交的用户,提供一种更为人性化的选择,降低用户成本的同时,也减轻了区块链的负担。

当 Transaction 提交到 Node,此时并不做 validation 和 available 的验证,直接压入 pool,这一步的交易类型,是根据对应 app chain 的 Namespace 标记进行甄别,采用分布式存储,在筛选出交易后,对应的 Pool 负责做中间件,为后续的节点投票 DAG 提供交易列表。

引用

从"Diem”系看下一代公链范式: https://move-china.com/topic/184

Quality of service - From Wikipedia, the free encyclopedia: https://en.wikipedia.org/wiki/Quality_of_service