Gas 和 Fees
Last updated
Last updated
Gas代表执行特定操作所需的计算工作量。
Injective利用gas的概念来跟踪在执行过程中操作的资源使用情况。Injective上的操作表示对区块链存储的读写操作。
在消息执行过程中,会计算并向用户收取Fees。这个Fees是根据消息执行中消耗的所有gas的总和来计算的:
Gas用于确保操作完成时不会消耗过多的计算力,并且能够防止恶意用户对网络进行垃圾信息攻击。
Gas
在 Cosmos SDK 中,gas 通过主 GasMeter 和 BlockGasMeter 进行追踪:
GasMeter:用于跟踪执行过程中消耗的 gas,这些执行会导致状态转移。它在每次交易执行时会被重置。
BlockGasMeter:用于跟踪一个区块中消耗的 gas,并确保消耗的 gas 不超过预定的限制。这个限制由 Tendermint 共识参数定义,并且可以通过治理参数变更提案进行修改。
有关 Cosmos SDK 中 gas 的更多信息,可以在找到。
在 Cosmos 中,有些操作并不是由交易触发的,但也可能导致状态转移。具体的例子包括 BeginBlock 和 EndBlock 操作,以及 AnteHandler 检查,这些操作可能在运行交易的状态转移之前,也会读取和写入存储。
BeginBlock
和 EndBlock
这些操作由 Tendermint Core 的应用区块链接口(ABCI)定义,并由每个 Cosmos SDK 模块定义。顾名思义,它们分别在每个区块处理的开始和结束时执行(即,在交易执行之前和之后)。
AnteHandler
Cosmos SDK 的 AnteHandler
在交易执行之前执行基本检查。这些检查通常包括签名验证、交易字段验证、交易费用等。