动态能量模型是波场网络的一个资源平衡机制,可以根据合约的资源占用情况动态调整每个合约的能量消耗量,从而使能量资源在链上的分配更加合理,防止网络资源过度集中在少数热门合约上,详情请参考动态能量模型介绍。
工作原理
如果合约在一个维护周期(目前是6小时)内使用过多的能量,则在下一个维护周期内,用户向该合约发送相同的交易将产生更多的额外能量消量。当合约合理使用资源时,用户调用该合约所产生的能量消耗将逐渐恢复正常。
每一个合约有一个能量消耗放大系数,表示该智能合约交易的能量消耗相对于基础能量消耗的增加倍数,初始值是0。合约的能量消耗放大系数为0时,表示该合约在合理的使用资源,调用该合约不会有额外的能量消耗。当能量消耗放大系数大于0时,表示该合约已经是热门合约,调用该合约时将消耗额外的能量。
合约调用交易最终需要消耗的能量的计算公式为:合约交易能量消耗量 = 合约调用交易产生的基础能量消耗 * (1 + 能量消耗放大系数)