有保障的出块空间
Stable v1.8.0 将每个区块划分为具有独立 gas 预算的通道。符合条件的优先级交易进入企业通道,因此普通交易流量无法占用为它们预留的容量。
区块通道
提案和验证规则识别三种通道类型:
- 企业通道:承载
CustomTx交易,其NonceKey的第 63 位已设置,但无序标记MaxUint64除外。 - 交易类型通道:为配置的交易类别保留容量。
- 普通通道:承载不匹配其他已配置通道的标准交易。
maxBlockspaceGasWeight 设置了所有已配置通道预留的区块 gas 限制的百分比。每个通道的 weight 设置了该预留池的百分比。
提案者在这些限制内填充通道,并且验证者在验证提议区块时强制执行相同的限制。
这使得预留方案在协议层面是确定性的。它不依赖于提案者自愿留下未使用的空间。
二维 nonce
以太坊账户通常只有一个 nonce 序列。如果交易 12 缺失或卡住,交易 13 及后续交易将无法执行。
二维 nonce 为账户提供了多个独立的序列。NonceKey 选择序列,交易的 nonce 给出其在该序列中的位置。
例如,一个支付账户可以使用 NonceKey = 1 进行工资支付,使用 NonceKey = 2 进行供应商结算。延迟的工资支付交易不会阻塞供应商序列。
nonce 键空间有三个重要区域:
NonceKey = 0保持标准的 EVM 兼容 nonce 行为。uint64范围的上半部分预留给协议使用。设置第 63 位表示企业通道的资格。NonceKey = MaxUint64标记无序交易。TimeoutTimestamp提供其重放保护截止日期。
Stable 在 CustomTx 中携带这些字段,交易类型为 0x3F。现有的 EVM 交易格式仍然可用,默认的 nonce 通道保留了它们的预期行为。
治理和激活
治理通过一个 MsgUpdateParams 提案控制通道定义和 gas 配额。接受的参数在下一个区块生效。
v1.8.0 主网升级设定了 maxBlockspaceGasWeight = 20 和一个 weight = 50 的企业通道。它没有设定交易类型通道。治理可以在之后更改这些参数。
StableSystem 预编译上的 blockspaceLanes() 查询返回活跃配置。两个通道数组都按 id 升序排序,较低的 ID 优先匹配。
保证边界
当所有这些条件都满足时,企业交易将获得确定性的下一区块包含:
- 交易符合企业通道的条件。
- 该通道有足够的预留 gas 用于该交易。
- 验证者遵循协议。
- 网络保持足够的同步性,以便验证者在提案之前收到交易。
Stable 的企业 RPC 网关向验证者提供符合条件的交易。预留的提案容量可以防止普通交易流量将其挤占。
接下来去哪里
- 有保障的结算:查看依赖于有保障出块空间的支付模式:具有确定性包含的定时 DvP 结算周期。
- StableSystem 预编译:查询活跃的企业通道和交易类型通道定义。
- 网络升级:查看 v1.8.0 发布和激活详情。
- 执行:了解 Stable 如何执行为每个区块选择的交易。

