status-im / nimbus-eth2

Nim implementation of the Ethereum Beacon Chain
https://nimbus.guide
Other
523 stars 227 forks source link

Nimbus CL < > Prysm VC incompatibility #6175

Closed barnabasbusa closed 2 months ago

barnabasbusa commented 5 months ago

Describe the bug

We are in the process to test cross beacon <> validator client compatibility, and found a bug when testing nimbus CL with prysm VC.

Prysm reports:

time="2024-04-05 12:15:11" level=info msg="Waiting for deposit to be observed by beacon node" prefix=client pubkey=0xa2e2d8384fc8 status="UNKNOWN_STATUS"

Nimbus reports:

nothing out of the ordinary

Snooper between cl <> vc reports:

Apr  5 12:15:47.524 2024 RESPONSE (status 200 OK) 
{
  "execution_optimistic": false,
  "finalized": false,
  "data": []
}

Apr  5 12:15:47.524 2024 REQUEST /eth/v1/node/version
null

Apr  5 12:15:47.524 2024 RESPONSE (status 200 OK) 
{
  "data": {
    "version": "Nimbus/v24.3.0-dc19b0-stateofus"
  }
}

Apr  5 12:15:59.523 2024 REQUEST /eth/v1/beacon/states/head/validators
{
  "ids": [
    "0xaaf6c1251e73fb600624937760fef218aace5b253bf068ed45398aeb29d821e4d2899343ddcbbe37cb3f6cf500dff26c",
    "0x8aa5bbee21e98c7b9e7a4c8ea45aa99f89e22992fa4fc2d73869d77da4cc8a05b25b61931ff521986677dd7f7159e8e6",
...

It seems like prysm is stuck on requesting genesis state, and stops there.

Expected behavior

I would expect all client combinations would work.

Steps to reproduce

config.yaml:

participants:
  - cl_type: nimbus
    vc_type: prysm
additional_services:
  - dora
snooper_enabled: true
global_log_level: debug

kurtosis run github.com/kurtosis-tech/ethereum-package --args-file config.yaml

Additional context

Current BN <> VC Compatibility list tracker

Screenshot 2024-04-05 at 14 08 53

Operating system

Linux

Nimbus version or commit hash

statusim/nimbus-eth2:multiarch-latest - sha256:8e79e02b37351bdcf0a4b07c9cb5a8dd23afdf83144a0d948644b72884cdd10d

cc: @pk910

cheatfate commented 5 months ago

Could you please provide more information? There is no reason for VC to request genesis state from BN. But anyway i do not see from your issue that something requests for genesis state.

nflaig commented 3 months ago

This is likely related to Prysm VC sending an empty statuses array in POST /eth/v1/beacon/states/head/validators. Have seen the same issue with Lodestar but we now handle it in the same way as omitting the statuses which resolved the issue.

barnabasbusa commented 2 months ago

Fixed as of: nimbus - unstable-85c2850