Consensys / teku

Open-source Ethereum consensus client written in Java
https://consensys.io/teku
Apache License 2.0
672 stars 283 forks source link

Make the engine get blobs method required #8669

Open mehdi-aouadi opened 1 month ago

mehdi-aouadi commented 1 month ago

The current implementation of the engine_getBlobsV1 is marked as non critical and doesn't trigger an EL status update (in DefaultExecutionWeb3jClientProvider::buildClient) since it hasn't been implemented by all the ELs yet. This should be removed from the non critical methods once it's implemented widely. The required change: Remove engine_getBlobsV1 from DefaultExecutionWeb3jClientProvider::buildClient

A new notion of optional execution RPC methods has also been added to handle the use case when an EL doesn't support the new method. This should be removed once all ELs have implemented it. The required change: Remove isOptional from EngineJsonRpcMethod Remove MilestoneBasedEngineJsonRpcMethodsResolver::getOptionalCapabilities Remove optionalCapabilitiesSupplier from EngineCapabilitiesMonitor

tbenr commented 1 month ago

Regarding nonCritical, I think we should leave that method in the list. Imagine a CL client has a bug only on engine_getBlobs: we can still work nicely. Marking the EL as offline as a "critical" method, IIRC, has downstream affects on our overall availability.