Movement Aptos Core存储库的一个新拉取请求(#274)引入了关键的故障转移逻辑,旨在在Governed Gas Pool(GGP)没有足够余额来覆盖计算的质押奖励时保护网络稳定性。该功能防止时代转变在资金耗尽时完全失败。
该实现修改了stake.move中的`distribute_rewards`函数,在尝试提取之前检查可用的GGP余额。系统现在使用`min(rewards_amount, available_balance)`在实际可用余额处限制奖励提取,而不是在资金耗尽时中止时代。这确保验证者在国库耗尽期间收到部分奖励或零奖励,而不会导致网络停止。
全面的测试证实了故障转移的有效性。一个新的冒烟测试(`test_staking_reward_failsafe_zero_ggp_balance`)通过启用国库功能而不预先为GGP提供资金,在4个验证者群上验证了该机制。该测试确认三个连续的时代变更在零GGP余额下成功,所有验证者都保留了其质押而没有损失。这一变化代表了网络复原力的重大改进,确保在国库约束下的持续运营,同时维持验证者安全。

