Skip to content

iTx的gas机制 #209

@blackpainter

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

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions