一条证券结算链最尴尬的时刻,不一定是黑客闯进来,而是没人明显作恶,账本却迟迟翻不到下一页。节点掉线、网络分区、委员会凑不齐票,钱没有丢,但所有人只能等。对普通公链这叫拥堵,对金融市场这可能直接变成交收事故。
我重新翻 @Dusk 白皮书的Emergency Mode,发现它没有假装这种情况不会发生。Succinct Attestation每轮最多执行50次迭代;当连续16次迭代失败,协议会进入应急模式。正常流程里的步骤超时被关闭,NoCandidate和NoQuorum也不再作为推进结果,已经开启的迭代会继续等待候选区块以及验证、批准两阶段真正达到法定票数。
这个设计的意思很直接:平时共识可以因为超时换下一批人,极端情况下却不能一直靠“没人到齐”跳过问题。系统宁愿把多个开放迭代并行挂着,也要等出一个能被委员会确认的区块,提高账本继续前进的概率。
但代价也写在白皮书里。并行迭代可能让同一轮出现多个已获共识的候选块,分叉风险反而上升,协议只能选择迭代编号最低的候选块收束。如果走到最后仍无法恢复,多数质押权还可以共同请求一个不包含交易的应急空区块,由Dusk节点生成新种子,让网络跨过这一轮。
我不会把这理解成“永不停机”。它更像一份灾难恢复手册:承认共识会失速,再规定谁能推动恢复、恢复时可以牺牲什么。以后看 $DUSK 的金融结算能力,我更关心应急模式实际触发次数、持续时间、分叉数量和空区块请求,而不是只看正常状态下几秒出块。
真正的机构级基础设施,不是从不出故障,而是故障发生时,处理规则提前写明,代价也能被所有人看见。
#dusk
我重新翻 @Dusk 白皮书的Emergency Mode,发现它没有假装这种情况不会发生。Succinct Attestation每轮最多执行50次迭代;当连续16次迭代失败,协议会进入应急模式。正常流程里的步骤超时被关闭,NoCandidate和NoQuorum也不再作为推进结果,已经开启的迭代会继续等待候选区块以及验证、批准两阶段真正达到法定票数。
这个设计的意思很直接:平时共识可以因为超时换下一批人,极端情况下却不能一直靠“没人到齐”跳过问题。系统宁愿把多个开放迭代并行挂着,也要等出一个能被委员会确认的区块,提高账本继续前进的概率。
但代价也写在白皮书里。并行迭代可能让同一轮出现多个已获共识的候选块,分叉风险反而上升,协议只能选择迭代编号最低的候选块收束。如果走到最后仍无法恢复,多数质押权还可以共同请求一个不包含交易的应急空区块,由Dusk节点生成新种子,让网络跨过这一轮。
我不会把这理解成“永不停机”。它更像一份灾难恢复手册:承认共识会失速,再规定谁能推动恢复、恢复时可以牺牲什么。以后看 $DUSK 的金融结算能力,我更关心应急模式实际触发次数、持续时间、分叉数量和空区块请求,而不是只看正常状态下几秒出块。
真正的机构级基础设施,不是从不出故障,而是故障发生时,处理规则提前写明,代价也能被所有人看见。
#dusk
