$ETH #dusk $DUSK @Dusk 跑完DuskDS节点才看明白,DuskEVM的最终性根本不在EVM那一层
把Rusk节点日志级别拉到debug,盯着DuskEVM提交通知进DuskDS的那几秒,结论比我预想的更干脆。DuskEVM的Sequencer只管执行和排序,SBA三轮签名该在哪还在哪,全在L1主链。批次状态根、Phoenix note commitment、Hedger变量PLONK证明打包成候选交易后,DuskDS开始抽签出块,验证委拿5%块奖励按质押权重签一次,批淮委再拿5%签一次。日志里sba::round=88213那行 producer=sig_ok validators=5/5 approvers=5/5 finalized=true,挂在duskds模块下面,不在duskevm模块。Sequencer那边只留batch_submitted_to_l1 tx_hash,想知道最终行得跨模块看。
拿这个跟Arbitrum、OP比,差别挺直接。那边sequencer出块后要等L1合约确认状态根,乐观窗口或者证明验证都会拖慢最终性。Dusk反着来,执行壳不碰共识,三层签名齐了直接给秒级不可回滚。NPEX债券DvP那种场景要的就是这个,不靠L1出块时间熬。缺点也实在,签名轮次多,委员会出问题排障麻烦。我有次approver签名一直不齐,finalized挂起,最后查到是ds层权重配置写错,evm日志完全看不出来。跑节点得同时盯evm和ds两套日志,新手容易懵。
这个架构取舍我挺喜欢,执行和数据可用性压在主链,换一致性不靠乐观窗口。别再把DuskEVM当独立链看,它就是个执行壳,最终性全是DuskDS签出来的。跑节点的建议分开看日志,evm层告诉你执行了什么,ds层才告诉你这事算不算数。
把Rusk节点日志级别拉到debug,盯着DuskEVM提交通知进DuskDS的那几秒,结论比我预想的更干脆。DuskEVM的Sequencer只管执行和排序,SBA三轮签名该在哪还在哪,全在L1主链。批次状态根、Phoenix note commitment、Hedger变量PLONK证明打包成候选交易后,DuskDS开始抽签出块,验证委拿5%块奖励按质押权重签一次,批淮委再拿5%签一次。日志里sba::round=88213那行 producer=sig_ok validators=5/5 approvers=5/5 finalized=true,挂在duskds模块下面,不在duskevm模块。Sequencer那边只留batch_submitted_to_l1 tx_hash,想知道最终行得跨模块看。
拿这个跟Arbitrum、OP比,差别挺直接。那边sequencer出块后要等L1合约确认状态根,乐观窗口或者证明验证都会拖慢最终性。Dusk反着来,执行壳不碰共识,三层签名齐了直接给秒级不可回滚。NPEX债券DvP那种场景要的就是这个,不靠L1出块时间熬。缺点也实在,签名轮次多,委员会出问题排障麻烦。我有次approver签名一直不齐,finalized挂起,最后查到是ds层权重配置写错,evm日志完全看不出来。跑节点得同时盯evm和ds两套日志,新手容易懵。
这个架构取舍我挺喜欢,执行和数据可用性压在主链,换一致性不靠乐观窗口。别再把DuskEVM当独立链看,它就是个执行壳,最终性全是DuskDS签出来的。跑节点的建议分开看日志,evm层告诉你执行了什么,ds层才告诉你这事算不算数。