Conversation
This PR changes the signature of `CalcExcessBlobGas` to take in just the header timestamp instead of the whole object. It also adds a sanity check for the parent->child block order to `VerifyEIP4844Header`.
Here we add some more changes for live tracing API v1.1: - Hook `OnSystemCallStartV2` was introduced with `VMContext` as parameter. - Hook `OnBlockHashRead` was introduced. - `GetCodeHash` was added to the state interface - The new `WrapWithJournal` construction helps with tracking EVM reverts in the tracer. --------- Co-authored-by: Felix Lange <fjl@twurst.com>
Co-authored-by: Felix Lange <fjl@twurst.com>
upstream: merge geth date 0205
Co-authored-by: lightclient <lightclient@protonmail.com>
After recent changes in Geth (removing TD): ethereum/go-ethereum@39638c8#diff-d70a44d4b7a0e84fe9dcca25d368f626ae6c9bc0b8fe9690074ba92d298bcc0d Non-Geth clients are failing many devp2p tests with an error: `peering failed: status exchange failed: wrong TD in status: have 1 want 0` Right now only Geth is passing it - all other clients are affected by this change. I think there should be no validation of TD when checking `Status` message in hive tests. Now Geth has 0 (and hive tests requires 0) and all other clients have actual TD. And on real networks there is no validation of TD when peering
Draft release v1.5.5
upstream: merge geth v1.15.0
upstream: merge geth v1.15.0
Agreed to the following fork dates for Holesky and Sepolia on ACDC 150 Holesky slot: 3710976 (Mon, Feb 24 at 21:55:12 UTC) Sepolia slot: 7118848 (Wed, Mar 5 at 07:29:36 UTC)
This removes the method `TestingTTDBlock` introduced by #30744. It was added to make the beacon consensus engine aware of the merge block in tests without relying on the total difficulty. However, tracking the merge block this way is very annoying. We usually configure forks in the `ChainConfig`, but the method is on the consensus engine, which isn't always created in the same place. By sidestepping the `ChainConfig` we don't get the usual fork-order checking, so it's possible to enable the merge before the London fork, for example. This in turn can lead to very hard-to-debug outputs and validation errors. So here I'm changing the consensus engine to check the `MergeNetsplitBlock` instead. Alternatively, we assume a network is merged if it has a `TerminalTotalDifficulty` of zero, which is a very common configuration in tests.
The new SetCode transaction type introduces some additional complexity when handling the transaction pool. This complexity stems from two new account behaviors: 1. The balance and nonce of an account can change during regular transaction execution *when they have a deployed delegation*. 2. The nonce and code of an account can change without any EVM execution at all. This is the "set code" mechanism introduced by EIP-7702. The first issue has already been considered extensively during the design of ERC-4337, and we're relatively confident in the solution of simply limiting the number of in-flight pending transactions an account can have to one. This puts a reasonable bound on transaction cancellation. Normally to cancel, you would need to spend 21,000 gas. Now it's possible to cancel for around the cost of warming the account and sending value (`2,600+9,000=11,600`). So 50% cheaper. The second issue is more novel and needs further consideration. Since authorizations are not bound to a specific transaction, we cannot drop transactions with conflicting authorizations. Otherwise, it might be possible to cherry-pick authorizations from txs and front run them with different txs at much lower fee amounts, effectively DoSing the authority. Fortunately, conflicting authorizations do not affect the underlying validity of the transaction so we can just accept both. --------- Co-authored-by: Marius van der Wijden <m.vanderwijden@live.de> Co-authored-by: Felix Lange <fjl@twurst.com>
Fixes an error when the block is not found in debug methods.
| @@ -775,32 +1273,38 @@ func (p *Satoshi) BeforeValidateTx(chain consensus.ChainHeaderReader, header *ty | |||
| if p.isRoundEnd(chain, header) { | |||
There was a problem hiding this comment.
@zfliex924 the comment above says that we also update the validator set. This happens on epoch+minerHistoryCheckLen of every epoch now. Is the comment still valid?
What other happens on turnRound?
There was a problem hiding this comment.
Will we consider the ranking on turnRound and then on every epoch just get the top voted and active validators for this epoch?
| } | ||
| if p.config.IsPrague(block.Number(), block.Time()) || p.config.IsVerkle(block.Number(), block.Time()) { | ||
| ProcessParentBlockHash(block.ParentHash(), evm) |
There was a problem hiding this comment.
@zfliex924 this creates a similar to system transaction as the first TX, and is being called before the BeforeValidateTx. Will it affect our system contract calls?
There was a problem hiding this comment.
Same for BeforePackTx on worker.go
… instead of Hermes
| @@ -23,25 +23,30 @@ import ( | |||
| ) | |||
|
|
|||
| const ( | |||
| GasLimitBoundDivisor uint64 = 256 // The bound divisor of the gas limit, used in update calculations. | |||
| GasLimitBoundDivisor uint64 = 1024 // The bound divisor of the gas limit, used in update calculations. | |||
There was a problem hiding this comment.
@zfliex924 the GasLimitBoundDivisor has been changed, which will make its adjustments much slower.
Do we want to bring this change?
They introduced this, because of the reduced block time. We can keep our old divisor, but we will have to keep a note, if we decide to reduce our block times later.
…defaults might be changed again, at this point we will conduct tests with this defaults
…tract before system txs
…vated in our network
6cb4d98 to
74ac758
Compare
065e4fd to
ffb5b70
Compare
ffb5b70 to
6d80cd4
Compare
No description provided.