危机(Crisis)
摘要
crisis
模块在区块链不变量被破坏的情况下停止区块链运行。
不变量可以在应用程序初始化过程中注册到应用程序中。
目录
状态
ConstantFee
由于验证不变量预计会消耗大量 gas
(并可能超出区块的最大 gas
限制),因此采用固定费用 (ConstantFee
) 代替标准的 gas
消耗方法。
ConstantFee
旨在高于使用标准 gas
消耗方法运行不变量的预计成本。
ConstantFee
参数存储在模块参数状态中,前缀为 0x01
,可通过治理或具有权限的地址进行更新。
参数:
mint/params -> legacy_amino(sdk.Coin)
消息
在本节中,我们描述 crisis
消息的处理过程及相应的状态更新。
MsgVerifyInvariant
区块链不变量可以使用 MsgVerifyInvariant
消息进行检查。
如果出现以下情况,该消息预计会失败:
发送者的代币不足以支付固定费用
不变量路由未注册
该消息检查提供的不变量,如果不变量被破坏,则触发 panic,停止区块链。如果不变量被破坏,固定费用不会被扣除,因为交易从未被提交到区块(相当于退款)。然而,如果不变量没有被破坏,固定费用将不会被退款。
事件
crisis
模块会触发以下事件:
Handlers
MsgVerifyInvariance
invariant
route
{invariantRoute}
message
module
crisis
message
action
verify_invariant
message
sender
{senderAddress}
参数
crisis
模块包含以下参数:
ConstantFee
object (coin)
{"denom":"uatom","amount":"1000"}
客户端
CLI
用户可以使用 CLI 查询和与 crisis
模块进行交互。
Transactions
tx
命令允许用户与 crisis
模块进行交互。
invariant-broken
invariant-broken
命令提交证明,当不变量被破坏时,用于停止链的运行。
示例:
Last updated