Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Downgrade unknown transaction log message #12297

Merged
merged 1 commit into from
Mar 7, 2024

Conversation

dimriou
Copy link
Collaborator

@dimriou dimriou commented Mar 5, 2024

Many chains are expected to have more than 3 types of transactions so we downgrade this log message to reduce noise.

@dimriou dimriou requested a review from a team as a code owner March 5, 2024 12:03
Copy link
Contributor

github-actions bot commented Mar 5, 2024

I see that you haven't updated any CHANGELOG files. Would it make sense to do so?

@dimriou dimriou requested review from samsondav and prashantkumar1982 and removed request for a team and samsondav March 5, 2024 14:56
Copy link
Collaborator

@samsondav samsondav left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can we get a prom metric on this so we can alert on it maybe?

@derek1287
Copy link

derek1287 commented Mar 5, 2024

Adding some comments to this issue, as we've done a deep dive here in the past, while supporting our own Chainlink oracles at LinkWell Nodes:


As we all know, the default GasEstimator mode for Sepolia chains is "BlockHistory", which is essentially using the gas prices of recent blocks to determine what the gas price of any of our submitted DR txns should be.

There are several different "txn types" in ETH, which refers to the version of the ETH token standard that was used to submit the txn:
https://docs.infura.io/api/networks/ethereum/concepts/transaction-types

  • 0x0 (0) is the legacy (original) txn format
  • 0x1 (1) txns were introduced after EIP-2930
  • 0x2 (2) txns were introduced after EIP-1559
  • 0x3 (3) txns are now appearing on Sepolia networks

0x3 is apparently extremely new, and I see little to no discussion about it. So it could either be a malicious / spammy actor submitting unsupported txns on Sepolia networks, but more likely an EIP that I'm unaware of. There's some evidence here that 0x3 will be the standard for ETH staking withdrawals, so this may be the core devs testing out that new feature on testnet:
https://www.galaxy.com/insights/research/ethereum-all-core-developers-consensus-call-106/

Because it's rather new, when CL sees these 0x3 txns it complains, but appears to be simply ignoring them in its BlockHistory gas estimation calculations (deferring to the known 0x0, 0x1, and 0x2 txn types.

As you can see in the following CL node log snippet, gas price was successfully estimated as 2.88 gwei, despite 0x3 txns existing in these blocks:

{
   "level":"debug",
   "ts":"2024-02-28T05:04:01.531Z",
   "logger":"EVM.11155111.Txm.BlockHistoryEstimator",
   "caller":"gas/block_history_estimator.go:571",
   "msg":"Setting new default prices, GasPrice: 2.88 Gwei, TipCap: 1.76 Gwei",
   "version":"2.9.0@065ef85",
   "gasPriceWei":"2.875890299 gwei",
   "gasPriceGWei":"2.88",
   "maxGasPriceWei":"115792089237316195423570985008687907853269984665.640564039457584007913129639935 tether",
   "headNum":5378586,
   "blocks":[
      5378574,
      5378575,
      5378576,
      5378577,
      5378578,
      5378579,
      5378580,
      5378581,
      5378582,
      5378583,
      5378584,
      5378585
   ],
   "tipCapWei":"1.760224088 gwei",
   "tipCapGwei":"1.76"
}

@dimriou
Copy link
Collaborator Author

dimriou commented Mar 6, 2024

Adding some comments to this issue, as we've done a deep dive here in the past, while supporting our own Chainlink oracles at LinkWell Nodes:

As we all know, the default GasEstimator mode for Sepolia chains is "BlockHistory", which is essentially using the gas prices of recent blocks to determine what the gas price of any of our submitted DR txns should be.

There are several different "txn types" in ETH, which refers to the version of the ETH token standard that was used to submit the txn: docs.infura.io/api/networks/ethereum/concepts/transaction-types

  • 0x0 (0) is the legacy (original) txn format
  • 0x1 (1) txns were introduced after EIP-2930
  • 0x2 (2) txns were introduced after EIP-1559
  • 0x3 (3) txns are now appearing on Sepolia networks

0x3 is apparently extremely new, and I see little to no discussion about it. So it could either be a malicious / spammy actor submitting unsupported txns on Sepolia networks, but more likely an EIP that I'm unaware of. There's some evidence here that 0x3 will be the standard for ETH staking withdrawals, so this may be the core devs testing out that new feature on testnet: galaxy.com/insights/research/ethereum-all-core-developers-consensus-call-106

Because it's rather new, when CL sees these 0x3 txns it complains, but appears to be simply ignoring them in its BlockHistory gas estimation calculations (deferring to the known 0x0, 0x1, and 0x2 txn types.

As you can see in the following CL node log snippet, gas price was successfully estimated as 2.88 gwei, despite 0x3 txns existing in these blocks:

{
   "level":"debug",
   "ts":"2024-02-28T05:04:01.531Z",
   "logger":"EVM.11155111.Txm.BlockHistoryEstimator",
   "caller":"gas/block_history_estimator.go:571",
   "msg":"Setting new default prices, GasPrice: 2.88 Gwei, TipCap: 1.76 Gwei",
   "version":"2.9.0@065ef85",
   "gasPriceWei":"2.875890299 gwei",
   "gasPriceGWei":"2.88",
   "maxGasPriceWei":"115792089237316195423570985008687907853269984665.640564039457584007913129639935 tether",
   "headNum":5378586,
   "blocks":[
      5378574,
      5378575,
      5378576,
      5378577,
      5378578,
      5378579,
      5378580,
      5378581,
      5378582,
      5378583,
      5378584,
      5378585
   ],
   "tipCapWei":"1.760224088 gwei",
   "tipCapGwei":"1.76"
}

0x3 transactions are the new Blob transactions introduced in Cancun fork (EIP-4844) . We've already added a PR to support them here.

@prashantkumar1982 prashantkumar1982 added this pull request to the merge queue Mar 6, 2024
Merged via the queue into develop with commit ad0817f Mar 7, 2024
97 checks passed
@prashantkumar1982 prashantkumar1982 deleted the bci-2724/downgrade_log_message branch March 7, 2024 00:25
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants