Skip to content

iTx的gas机制 #209

Description

@blackpainter

gasUsed, err := app.gasHandler(runCtx, tx.ITxs[0].GetGasPayer())

一个transaction中含多条iTx时,当前gas策略是,先执行所有交易,再扣gas,且只扣第一个iTx的gas

存在问题:
假如扣gas失败,则整个交易回滚,之前的计算资源被浪费
应用可以将耗费gas较大的iTx放在后面,规避gas

方案:
扣gas失败的iTx及其以前的iTx执行结果回滚,之前的iTx扣gas,失败的iTx及其之后的iTx不被扣gas。缺点,有失公平
iTx增加参数maxGas,执行时先扣maxGas,执行后将maxGas - gasUsed返还

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions