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.
I would guess at two possibilities for resolution, though there are likely more:
Thanks! Keep up the great work!
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.
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
pluginsfolder 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
wsendpoint, justhttpwould 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