scroll-tech / go-ethereum

Scroll's fork of the official Go implementation of the Ethereum protocol
GNU Lesser General Public License v3.0
458 stars 262 forks source link

fix(GPO): min suggested tip cap if there's congestion to avoid filtering through `DefaultIgnorePrice` #883

Closed jonastheis closed 2 weeks ago

jonastheis commented 3 weeks ago

1. Purpose or design rationale of this PR

The gas price oracle uses a oracle.ignorePrice to filter out transactions below a certain price/tip. By default it is set to DefaultIgnorePrice=2 wei.

This is problematic as we return a gas price of 1 wei if there's no congestion. This means that other nodes that did not configure with --gpo.ignoreprice=1 nor gpo.congestionthreshold will always ignore these low prices and never adjust their price prediction down.

By using 2 wei as the default price if there's no congestion, other nodes that did not explicitly configure the GPO accordingly will also adjust their prices down without needing to upgrade to this version.

Additionally, we set DefaultIgnorePrice=1 wei so that in the future we can reduce to 1 wei as the default price with no congestion.

2. PR title

Your PR title must follow conventional commits (as we are doing squash merge for each PR), so it must start with one of the following types:

3. Deployment tag versioning

Has the version in params/version.go been updated?

4. Breaking change label

Does this PR have the breaking-change label?