ethereum / ethereum/beacon-APIs

Consuming `/eth/v1/config/spec` as VC

Open
#361 2 comments 0 reactions 0 assignees View on GitHub
Dominant language
HTML
Stars
387
Forks
224
Avg merge
8h 29m
Merged PRs (30d)
3

Description

We recently had some interoperability issues when new parameters has been introduced in the configuration.

As an example, when networking parameters has been promoted to [configuration parameters](https://github.com/ethereum/consensus-specs/blob/28e3c807e29f0125f6871fbc06ec3465597b8175/configs/mainnet.yaml#L106) caused VCs failing to start if upgraded before their BNs.

In Teku we recently merged a PR making the VC less `choosy` by following the new sequence when consuming `/eth/v1/config/spec`:

1. load local known preset (as per `PRESET_BASE`)
2. load local known config (as per `CONFIG_NAME`) **[new]**
3. load remaining params from remote

By applying known config by looking up `CONFIG_NAME`, the final configuration is guaranteed to have all expected params.

Wrt additional unexpected param (ie. upgrade BN exposing new configs, restart previous VC version) we just print a warning ignoring unknown params.

How are other clients do? If we all agree on a common strategy we could avoid interoperability issues.

Contributor guide

No contributing guide indexed for this repository

Research direction

Start by reviewing the `/eth/v1/config/spec` endpoint and the configuration-parameter behavior described in this issue. Compare how beacon clients consume known presets, known configurations, and unexpected remote parameters. Done means the clients agree on a documented interoperability strategy for handling newly introduced configuration parameters.

Written by the indexing model from the issue text.

Assessment

Tech stack
openapi
Domain
api
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.