区块验证
简介
Xode 平行链作为 Polkadot 平行链 3417 运行(此前作为 Kusama 平行链 3344 运行),基于 Substrate Parachain Template 构建。本文档概述了为确保交易完整性、共识安全性和链的最终性而采用的安全机制和区块验证流程。
区块验证
交易验证
每笔交易在被打包进区块之前都要经过多个验证步骤:
- 签名验证:确保交易由有效账户使用 Schnorrkel(Sr25519)或 Ed25519 密码学方案进行签名。
- Nonce 检查:通过确保交易 nonce 按顺序递增来防止重放攻击。
- 余额验证:确保发送方拥有足够的余额来执行交易(包括手续费)。
- 权重计算:为交易分配权重,以避免超出区块限制。
区块生产
- 区块通过 AURA(Authority Round)机制生产:
- 验证人驱动的区块生产:验证人以轮询方式轮流生产区块。
- 基于槽位的出块者选择:验证人被分配槽位来生产区块,出块者依据 AURA 协议选出。
- 分叉选择规则:使用基于 GHOST 的规则选择最长的有效链。
收集人节点验证
- 收集人:通过收集交易和执行外部交易(extrinsic)来准备区块。
- 状态转换验证:通过执行运行时逻辑,确保区块的结果状态有效。
- 执行证明生成:收集人提交状态证明,供验证人进行验证。
平行链与中继链通信
- 收集人向验证人提交区块:区块被发送至中继链验证人进行交叉验证。
- 候选验证:Polkadot 中继链验证人使用 PVF(平行链验证函数)验证平行链区块。
- 共识达成:区块在通过 GRANDPA 达成一致后被最终确认。
更多信息
https://wiki.polkadot.network/docs/learn-parachains-protocol
