Lighthouse: Guidance for alternate Eth1.x clients

Created on 26 May 2020  路  3Comments  路  Source: sigp/lighthouse

Description

In order to participate in running the more popular Eth2 testnets, Lighthouse must connect to a Goerli node. While Geth already can be used to run this node, it would seem that Nethermind (and potentially others) cannot.

This is a request for guidance on what requirements exist for connecting an Eth1.x node with Lighthouse.

Steps to resolve

I would guess at two possibilities for resolution, though there are likely more:

  1. A specification of what data Lighthouse needs from the Goerli node, including how the data is to be formatted
  2. Client-specific issues that would need to be remedied (I suspect that websockets is what is preventing Nethermind from working, for example.)

Thanks! Keep up the great work!

A0 t Documentation

Most helpful comment

Hey @wschwab ,
The issue with Nethermind seems to be https://github.com/NethermindEth/nethermind/issues/1958
You can fix it by creating a plugins folder so that the json rpc methods work as expected or wait for the patch to get merged :)

I'll try to list down the requirements from an eth1 node for Lighthouse.

We need a fast synced node (or its equivalent) at the minimum.
We currently use the HTTP JSON RPC api for querying an eth1 node as specified in https://github.com/ethereum/wiki/wiki/JSON-RPC.
Note that we don't require the ws endpoint, just http would suffice.

The json rpc methods that we currently hit are eth_blockNumber, eth_getBlockByNumber, eth_call, eth_getLogs.

I have tested against geth and nethermind(with the patch) and they work fine. Will test against other clients and update here :)

Edit: Open ethereum node works too

All 3 comments

Hey @wschwab ,
The issue with Nethermind seems to be https://github.com/NethermindEth/nethermind/issues/1958
You can fix it by creating a plugins folder so that the json rpc methods work as expected or wait for the patch to get merged :)

I'll try to list down the requirements from an eth1 node for Lighthouse.

We need a fast synced node (or its equivalent) at the minimum.
We currently use the HTTP JSON RPC api for querying an eth1 node as specified in https://github.com/ethereum/wiki/wiki/JSON-RPC.
Note that we don't require the ws endpoint, just http would suffice.

The json rpc methods that we currently hit are eth_blockNumber, eth_getBlockByNumber, eth_call, eth_getLogs.

I have tested against geth and nethermind(with the patch) and they work fine. Will test against other clients and update here :)

Edit: Open ethereum node works too

Hmm... Nethermind seems to have a problem with eth_blocknumber:

ERRO Failed to update eth1 cache             error: Failed to update eth1 cache: GetBlockNumberFailed("Eth1 node returned error: {\"code\":-32601,\"message\":\"Method eth_blocknumber is not supported\"}"), retry_millis: 7000, service: eth1_rpc

Starting Nethermind with these flags may help.
The on disk size will keep getting bigger over time but this should work for awhile (until your disk fills up)
--Sync.AncientBodiesBarrier 11052983
--Sync.AncientReceiptsBarrier 11052983

By default Nethermind prunes old blocks and I believe some of these blocks may actually be needed...
One of those (Receipts or Bodies) may not actually be needed by LIghthouse.....
So If we could remove that flag then less disk space would be needed.

I believe this should fix issues with Teku as well.

Was this page helpful?
0 / 5 - 0 ratings