mirror of
https://github.com/status-im/nimbus-eth2.git
synced 2025-01-10 06:16:25 +00:00
f5791122f6
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.
30 lines
1.3 KiB
Nim
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
|