skip gaslimit check on genesis block (#1968)

This commit is contained in:
Wanwiset Peerapatanapokin 2026-02-09 16:06:16 +07:00 committed by GitHub
parent e39a523260
commit b53fa6c6d9
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
2 changed files with 9 additions and 2 deletions

View file

@ -347,10 +347,13 @@ func (x *XDPoS_v2) Prepare(chain consensus.ChainReader, header *types.Header) er
if parent == nil {
return consensus.ErrUnknownAncestor
}
// Ensure gas settings are bounded
if err := misc.VerifyGaslimit(parent.GasLimit, header.GasLimit); err != nil {
err = misc.VerifyGaslimit(parent.GasLimit, header.GasLimit)
if err != nil && parent.Number.Sign() != 0 { // skip genesis block
return err
}
if header.GasUsed > header.GasLimit {
return fmt.Errorf("gas used exceeded gaslimit, gas used: %d, gas limit: %d", header.GasUsed, header.GasLimit)
}
@ -458,10 +461,13 @@ func (x *XDPoS_v2) Finalize(chain consensus.ChainReader, header *types.Header, s
if parentHeader == nil {
return nil, consensus.ErrUnknownAncestor
}
// Ensure gas settings are bounded
if err := misc.VerifyGaslimit(parentHeader.GasLimit, header.GasLimit); err != nil {
err = misc.VerifyGaslimit(parentHeader.GasLimit, header.GasLimit)
if err != nil && parentHeader.Number.Sign() != 0 { // skip genesis block
return nil, err
}
if header.GasUsed > header.GasLimit {
return nil, fmt.Errorf("gas used exceeded gaslimit, gas used: %d, gas limit: %d", header.GasUsed, header.GasLimit)
}

View file

@ -65,6 +65,7 @@ func (x *XDPoS_v2) verifyHeader(chain consensus.ChainReader, header *types.Heade
if err != nil && parent.Number.Sign() != 0 { // skip genesis block
return err
}
// Ensure gas used is less than or equal to gas limit
if header.GasUsed > header.GasLimit {
return fmt.Errorf("gas used exceeded gaslimit, gas used: %d, gas limit: %d", header.GasUsed, header.GasLimit)