nimbus-eth2/beacon_chain/spec/eth2_apis/rest_config_calls.nim
Etan Kissling f5791122f6 widen allowed specs for validator client
The validator client was only able to connect to beacon nodes exposing
the exact same set of spec constants that are locally known via their
config/spec REST API. However, that set of spec constants is dynamic.
As the validator client only requires a subset of relevant constants,
this may lead to compatible specs being rejected. This patch widens the
allowed specs by only verifying that the required set of constants are
present in the spec response, ignoring any spec constants that are not
locally known, and ignoring missing spec constants that are locally
known but not included by the remote beacon node when not relevant for
operation of the validator client.
2021-10-21 00:59:05 +03:00

30 lines
1.3 KiB
Nim

# Copyright (c) 2018-2021 Status Research & Development GmbH
# Licensed and distributed under either of
# * MIT license (license terms in the root directory or at https://opensource.org/licenses/MIT).
# * Apache v2 license (license terms in the root directory or at https://www.apache.org/licenses/LICENSE-2.0).
# at your option. This file may not be copied, modified, or distributed except according to those terms.
{.push raises: [Defect].}
import
chronos, presto/client,
"."/[rest_types, eth2_rest_serialization]
export chronos, client, rest_types, eth2_rest_serialization
proc getForkSchedule*(): RestResponse[GetForkScheduleResponse] {.
rest, endpoint: "/eth/v1/config/fork_schedule", meth: MethodGet.}
## https://ethereum.github.io/beacon-APIs/#/Config/getForkSchedule
proc getSpec*(): RestResponse[GetSpecResponse] {.
rest, endpoint: "/eth/v1/config/spec", meth: MethodGet.}
## https://ethereum.github.io/beacon-APIs/#/Config/getSpec
proc getSpecVC*(): RestResponse[GetSpecVCResponse] {.
rest, endpoint: "/eth/v1/config/spec", meth: MethodGet.}
## https://ethereum.github.io/beacon-APIs/#/Config/getSpec
proc getDepositContract*(): RestResponse[GetDepositContractResponse] {.
rest, endpoint: "/eth/v1/config/deposit_contract", meth: MethodGet.}
## https://ethereum.github.io/beacon-APIs/#/Config/getDepositContract