feat: update Lodestar BN <> VC compatibility#664
Conversation
|
Regarding the issue with Nimbus BN, can be resolved by forcing Lodestar to sent requests as JSON This config works participants:
- el_type: geth
el_image: ethereum/client-go:stable
cl_type: lodestar
cl_image: chainsafe/lodestar:next
vc_type: nimbus
vc_image: statusim/nimbus-validator-client:amd64-latest
vc_extra_params:
- --doppelganger-detection=off
count: 2
- el_type: geth
el_image: ethereum/client-go:stable
cl_type: nimbus
cl_image: statusim/nimbus-eth2:amd64-latest
vc_type: lodestar
vc_image: chainsafe/lodestar:next
vc_extra_params:
- --http.requestWireFormat=json # <-- Lodestar VC will publish JSON-serialized blocks
count: 2The chain is finalizing and no missed proposals with 100% pariticipation. |
|
I can confirm latest lodestar BN is compatible with all VCs :) Testing latest nimbus BN, the compatibility actually got worse. I'm not really happy with supplying special flags for client compatibility. When looking at the snooper logs from Nimbus BN <> Nimbus/Lighthouse VC I can see that they're using the I think this should be resolved with nimbus instead of working around the issue with special flags :) |
Might be a combination of both as v2 adds broadcast validation, not sure where Nimbus does the signature check though. I tend to agree that client should be compatible by default. I reported this issue a while ago on Nimbus side, it was closed but it is not actually resolved. Maybe should re-open this or open a new issue. |
🤖 I have created a release *beep* *boop* --- ## [4.0.0](3.1.0...v4.0.0) (2024-06-13) ### ⚠ BREAKING CHANGES * migrate from kurtosis-tech to ethpandaops repository ([#663](#663)) ### Features * add names to run-sh ([#666](#666)) ([6b447b7](6b447b7)) * Adding arbitrary contract definition ([#646](#646)) ([cb58b65](cb58b65)) * migrate from kurtosis-tech to ethpandaops repository ([#663](#663)) ([d980fee](d980fee)) * update Lodestar BN <> VC compatibility ([#664](#664)) ([7f365da](7f365da)) ### Bug Fixes * permissions on autorelease ([#671](#671)) ([fcaa2c2](fcaa2c2)) * update release please ([#670](#670)) ([fa53672](fa53672)) --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please). Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Lodestar works with all clients now on `unstable` branch(es). There is just one exception which is related to publishing blocks to Nimbus BN but that's an issue with all other VCs as well and seems to be only happening when running via kurtosis as confirmed here status-im/nimbus-eth2#6205 (comment). This issue can be solved though by forcing Lodestar to publish blocks as JSON, see ethpandaops/ethereum-package#664 (comment). The kurtosis config I was using ```yaml participants: # Lighthouse - el_type: geth el_image: ethereum/client-go:stable cl_type: lodestar cl_image: chainsafe/lodestar:next vc_type: lighthouse vc_image: sigp/lighthouse:latest count: 1 - el_type: geth el_image: ethereum/client-go:stable cl_type: lighthouse cl_image: sigp/lighthouse:latest vc_type: lodestar vc_image: chainsafe/lodestar:next count: 1 # Teku - el_type: geth el_image: ethereum/client-go:stable cl_type: lodestar cl_image: chainsafe/lodestar:next vc_type: teku vc_image: consensys/teku:latest count: 1 - el_type: geth el_image: ethereum/client-go:stable cl_type: teku cl_image: consensys/teku:latest vc_type: lodestar vc_image: chainsafe/lodestar:next count: 1 # Nimbus - el_type: geth el_image: ethereum/client-go:stable cl_type: lodestar cl_image: chainsafe/lodestar:next vc_type: nimbus vc_image: statusim/nimbus-validator-client:amd64-latest vc_extra_params: - --doppelganger-detection=off count: 1 - el_type: geth el_image: ethereum/client-go:stable cl_type: nimbus cl_image: statusim/nimbus-eth2:amd64-latest vc_type: lodestar vc_image: chainsafe/lodestar:next vc_extra_params: - --http.requestWireFormat=json count: 1 # Grandine - el_type: geth el_image: ethereum/client-go:stable cl_type: grandine cl_image: sifrai/grandine:stable vc_type: lodestar vc_image: chainsafe/lodestar:next # Prysm - el_type: geth el_image: ethereum/client-go:stable cl_type: lodestar cl_image: nflaig/lodestar:ignore-empty-statuses vc_type: prysm # vc_image: gcr.io/prysmaticlabs/prysm/validator:latest vc_image: ethpandaops/prysm-validator:develop-dfe31c9 count: 1 - el_type: geth el_image: ethereum/client-go:stable cl_type: prysm # cl_image: gcr.io/prysmaticlabs/prysm/beacon-chain:latest cl_image: ethpandaops/prysm-beacon-chain:develop-dfe31c9 vc_type: lodestar vc_image: chainsafe/lodestar:next count: 1 # Lodestar stable - el_type: geth el_image: ethereum/client-go:stable cl_type: lodestar cl_image: chainsafe/lodestar:next vc_type: lodestar vc_image: chainsafe/lodestar:latest count: 1 - el_type: geth el_image: ethereum/client-go:stable cl_type: lodestar cl_image: chainsafe/lodestar:latest vc_type: lodestar vc_image: chainsafe/lodestar:next count: 1 # Lodestar ssz - el_type: geth el_image: ethereum/client-go:stable cl_type: lodestar cl_image: chainsafe/lodestar:next vc_type: lodestar vc_image: chainsafe/lodestar:next vc_extra_params: - --http.requestWireFormat=ssz count: 1 - el_type: geth el_image: ethereum/client-go:stable cl_type: lodestar cl_image: chainsafe/lodestar:next vc_type: lodestar vc_image: chainsafe/lodestar:next count: 1 network_params: genesis_delay: 120 num_validator_keys_per_node: 64 launch_additional_services: true additional_services: - assertoor - dora snooper_enabled: false disable_peer_scoring: true assertoor_params: image: "ethpandaops/assertoor:master" run_stability_check: false run_block_proposal_check: false tests: - https://raw.githubusercontent.com/ethpandaops/assertoor-test/2a45f2f78dd2c336ac99bf15e61edc076f15ce67/assertoor-tests/block-proposal-check.yaml ``` --------- Co-authored-by: pk910 <github@pk910.de>
🤖 I have created a release *beep* *boop* --- ## [4.0.0](ethpandaops/ethereum-package@3.1.0...v4.0.0) (2024-06-13) ### ⚠ BREAKING CHANGES * migrate from kurtosis-tech to ethpandaops repository ([#663](ethpandaops/ethereum-package#663)) ### Features * add names to run-sh ([#666](ethpandaops/ethereum-package#666)) ([6b447b7](ethpandaops/ethereum-package@6b447b7)) * Adding arbitrary contract definition ([#646](ethpandaops/ethereum-package#646)) ([cb58b65](ethpandaops/ethereum-package@cb58b65)) * migrate from kurtosis-tech to ethpandaops repository ([#663](ethpandaops/ethereum-package#663)) ([d980fee](ethpandaops/ethereum-package@d980fee)) * update Lodestar BN <> VC compatibility ([#664](ethpandaops/ethereum-package#664)) ([7f365da](ethpandaops/ethereum-package@7f365da)) ### Bug Fixes * permissions on autorelease ([#671](ethpandaops/ethereum-package#671)) ([fcaa2c2](ethpandaops/ethereum-package@fcaa2c2)) * update release please ([#670](ethpandaops/ethereum-package#670)) ([fa53672](ethpandaops/ethereum-package@fa53672)) --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please). Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>



Lodestar works with all clients now on
unstablebranch(es).There is just one exception which is related to publishing blocks to Nimbus BN but that's an issue with all other VCs as well and seems to be only happening when running via kurtosis as confirmed here status-im/nimbus-eth2#6205 (comment). This issue can be solved though by forcing Lodestar to publish blocks as JSON, see #664 (comment).
The kurtosis config I was using