the root cause is that when `inMemoryExecution` lambda gets created in
the `eth/backend.go`, it captures the reference of
`backend.notifications`, and so the execution of side-forks actually
adds notifications to there, and it all gets sent out to tx pool (and
RPC daemon) at the end of the stage loop (regardless of whether there
was forkchoice update or not)
so we can create a separate notification, but then somehow flush it to
the "main" nofitications when the in-memory exec state is flushed
Co-authored-by: Alexey Sharp <alexeysharp@Alexeys-iMac.local>
Co-authored-by: Alex Sharp <alexsharp@Alexs-MacBook-Pro.local>
* Consensus tests update 11
* Add GrayGlacier fork
* Wire currentRandom from tests into PREVRANDAO
* Serenity engine
* Support insertion of PoS blocks in MockSentry
* Introduce marshallTypedTransactionsAsRlpStrings arg into (*Block) RawBody()
* Revert "Introduce marshallTypedTransactionsAsRlpStrings arg into (*Block) RawBody()"
This reverts commit 903fca572be03c7de33318ce177a03a4be34927b.
* Post-merge fix
* Don't wait for Beacon Chain in tests
* Skip powToPosBlockRejection transition test
* ForkChoice in insertPoSBlocks
* Add withPosDownloader arg to MockWithEverything in order to fix TestPoSDownloader
* avoid constantly triggering stageloop when using Engine API
* fix lint + test
* fixed comments
* ops
* little fixes here and there
Co-authored-by: giuliorebuffo <giuliorebuffo@system76-pc.localdomain>
* Remove TotalDifficulty stage
* Introduce FeedHeaderFuncType
* Some TODOs
* Don't gossip PoS headers
* FeedHeaderPoS
* Call header.Hash once
* Use FeedHeaderPoS for to write PoS header
* Support errors in EngineExecutePayloadV1
* useExternalTx boilerplate
* Call VerifyHeader on PoS header
* latestValidHash must be nil when status is SYNCING
* fixCanonicalChain instead of canonicalHeadersCollector
* engine.VerifyHeader + FeedHeaderPoS as headerLoadFunc
* fix daemon
Co-authored-by: Giulio Rebuffo <giulio.rebuffo@gmail.com>
* added download channel to stage headers
* added direct execution
* now channel of headers rather than bodies
* simplifications
* fixed ttd headerForward
* garbage removed
* added some more stepping stones
* better transition
* covered edge case
* added names to returned values
* clean