* don't add to bad blocks manager on StorageException
* add bugfix to changelog
* adds test coverage
Signed-off-by: Justin Florentine <justin+github@florentine.us>
Our current GraphQL scalar parsing interacts poorly with the variables
support in the library. Revise the parsing so it works correctly.
Signed-off-by: Danno Ferrin <danno.ferrin@gmail.com>
* re-emits correct block added event when reminding
* uprevs version of log bloom cache metadata to force regeneration on startup
Signed-off-by: Justin Florentine <justin+github@florentine.us>
* Refactor unverified forkchoice event
Renaming to make clear everywhere that the forkchoice is not verified, so
it will be clear in case there will be a future event for a verified forkchoice.
Finalized block hash no more optional.
Signed-off-by: Fabio Di Fabio <fabio.difabio@consensys.net>
Update the graphQL to be closer to the execution-api specs.
This is a departure from EIP-1767 but the core devs have made it clear
that the execution-apis repo is considered canonical, not the EIP.
Major changes:
* Add support for EIP-2930 access lists
* Add support for EIP-1559 fees
* Add transaction, block, receipt, and header raw rlp fields
* Add chainID as base level query
Some items are still fake (fee estimate, estimated tip).
Signed-off-by: Danno Ferrin <danno.ferrin@gmail.com>
* Log index is counted per block, not per transaction
Signed-off-by: Daniel Lehrner <daniel.lehrner@consensys.net>
Co-authored-by: Sally MacFarlane <macfarla.github@gmail.com>
Co-authored-by: mark-terry <mark.terry@consensys.net>
* Add Rpc method name when logging IOException
Signed-off-by: Gabriel Trintinalia <gabriel.trintinalia@consensys.net>
* Simplify syntax of the logged message
Signed-off-by: Gabriel Trintinalia <gabriel.trintinalia@consensys.net>
Signed-off-by: Gabriel Trintinalia <gabriel.trintinalia@consensys.net>
Co-authored-by: Gabriel Trintinalia <gabriel.trintinalia@consensys.net>
* Add more tracing logs to transaction pool
* Prevent adding non executable transactions and evict based on age
* Move sender account in TransactionsForSenderInfo
* Implement a size expiration cache for lowest invalid nonce for sender
Signed-off-by: Fabio Di Fabio <fabio.difabio@consensys.net>
Signed-off-by: Justin Florentine <justin+github@florentine.us>
Co-authored-by: Justin Florentine <justin+github@florentine.us>
* reset engine QoS timer with every call to the engine API, ExchangeTransitionConfiguration mismatch will only submit a debug log not a warning anymore
Signed-off-by: Daniel Lehrner <daniel.lehrner@consensys.net>
Inject vertx dependency into EngineJsonRpcMethods instead of creating a new one.
Improves testability, before some tests failed with too many files open because vertx inside EngineJsonRpcMethods was not being closed on test's afterEach hook
Signed-off-by: Pedro Novais <jpvnovais@gmail.com>
* adds a failure handler to all routes that will log failure exceptions with their message only. stacks can be printed by turning debug on.
Signed-off-by: Justin Florentine <justin+github@florentine.us>
* correct fallback ttd to correct value
Signed-off-by: Daniel Lehrner <daniel.lehrner@consensys.net>
Co-authored-by: Sally MacFarlane <sally.macfarlane@consensys.net>
* initial impl of engine-api override:
* remove reliance on isMergeEnabled in pre-merge block header validation rules
* create a merge-specific block header validtion stack rather than leveraging mainnet
* re-add --engine-api-enabled cli param
* make engine api usable without a merge config.
leaves the door open to supporting the engine api with other MiningCoordinators, but disables all but engine_exchangeTransitionConfiguration in the absence of mergeCoordinator
Signed-off-by: garyschulte <garyschulte@gmail.com>
* fix infinite loop if a reorg contain a bad block
* add cache for latest valid ancestors for bad blocks
Signed-off-by: Daniel Lehrner <daniel.lehrner@consensys.net>
* Return of lastest valid hash in case of bad block
Signed-off-by: Fabio Di Fabio <fabio.difabio@consensys.net>
* Add CHANGELOG entry
Signed-off-by: Fabio Di Fabio <fabio.difabio@consensys.net>
* Remove now unused method
Signed-off-by: Fabio Di Fabio <fabio.difabio@consensys.net>
* Revert changes to backward sync, since not needed for this fix
Signed-off-by: Fabio Di Fabio <fabio.difabio@consensys.net>
* Adapt new test coming from the rebase with main
Signed-off-by: Fabio Di Fabio <fabio.difabio@consensys.net>
* Unit tests
Signed-off-by: Fabio Di Fabio <fabio.difabio@consensys.net>
* ignore forkchoice update if new head is an ancestor of the chain head
* added draft for CHANGELOG.md
* update PR link for CHANGELOG.md
Signed-off-by: Daniel Lehrner <daniel.lehrner@consensys.net>
Co-authored-by: Justin Florentine <justin+github@florentine.us>
* make invalid timestamp error return success response with INVALID status
* fix newPayloadTest expectation for invalid timestamp, add check in bad blocks for heads not in blockchain, return Hash.ZERO for latest valid ancestors that are PoW
* assert latestValidHash returns ZERO if PoW and ancestor hash if not.
Signed-off-by: garyschulte <garyschulte@gmail.com>
* integration test covering websocket subscription without auth
* uses authenticated user on websocket handler when auth enabled and successful
* sonarlint fixes and copyright correction
* moved test specific class to test sources
Signed-off-by: Justin Florentine <justin+github@florentine.us>
Co-authored-by: garyschulte <garyschulte@gmail.com>
* When executing a newPayload do not move the chain head or update the world state
* When proposing a block, use a lightweight validation, without storing
* forwardToBlock moves head to the block and triggers advanced head event
* Do not persist prepared blocks
Signed-off-by: Fabio Di Fabio <fabio.difabio@consensys.net>
Co-authored-by: garyschulte <garyschulte@gmail.com>
Co-authored-by: Jiri Peinlich <jiri.peinlich@gmail.com>
Co-authored-by: Karim TAAM <karim.t2am@gmail.com>