You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何配置Substrate PoA网络中Aura验证者的奖励额度

Substrate Aura验证者奖励配置方案

首先明确核心前提:pallet-aura本身只负责共识层的出块权限校验、验证者轮次排序,没有内置任何原生奖励发放逻辑。你运行的网络如果已经存在验证者奖励,说明已经接入了自定义经济逻辑,调整奖励数值按你实际用的奖励实现方式对应修改即可:

  • 如果你是最常见的、在runtime hook里写死固定出块奖励的实现:
    直接打开runtime/src/lib.rs,找到区块生命周期钩子(on_initialize/on_finalize)里的奖励发放代码,直接修改写死的奖励常量即可,示例代码段参考:

    // 每个区块执行到最终阶段时触发
    fn on_finalize(n: BlockNumberFor<T>) {
        // 获取当前区块的Aura出块作者
        let block_author = pallet_aura::Pallet::<T>::author().unwrap();
        // 👇 这里就是你要改的单块奖励数值,单位是链上最小精度
        const BLOCK_REWARD: u128 = 1_000 * 10u128.pow(12); // 例:单块奖励1000个精度12位的代币
        // 给作者铸造奖励的逻辑
        pallet_balances::Pallet::<T>::mint_into(&block_author, BLOCK_REWARD.into()).ok();
    }
    

    修改完成后重新编译runtime,通过set_code交易做无分叉runtime升级就能生效,不要直接替换节点二进制硬分叉,会导致链分裂。

  • 如果你的奖励来自交易手续费分成:
    这类实现一般会把用户支付的交易手续费按比例分给出块验证者,剩余部分销毁/进入国库,你只需要找到手续费分流逻辑里的分成比例、基础手续费换算系数两个参数调整即可,不需要动Aura相关配置。

  • 如果你是把Aura和pallet-staking绑定做质押奖励(PoA网络也可以用staking管理验证者集合和奖励):
    Aura本身不处理奖励逻辑,你直接调整staking pallet的对应参数即可:包括每个周期(Era)的总奖励额度、验证者佣金比例、奖励释放周期这些配置,改完升级runtime生效。

不要修改pallet-aura源码来嵌入奖励逻辑,Aura的定位就是纯共识组件,经济逻辑和共识逻辑耦合会给后续链升级埋很大隐患。

enter image description here

内容的提问来源于stack exchange,提问作者hgminerva

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.30 03:12:24