-
-
Notifications
You must be signed in to change notification settings - Fork 312
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Lodestar CL < > Nimbus VC incompatibility #6634
Comments
Nimbus reports doppelganger detection:
|
Is this just the doppelganger? That's intentional. Does |
Nimbus doesn't use doppelganger protection on sync committees because they're not slashable. |
See #6634 (comment) |
even with
|
See #6634 (comment) |
After reviewing how Nimbus handles this case it does not seem to be the issue as it only uses metadata provided in headers which Lodestar is setting and only parses the beacon_chain/validator_client/api.nim#L2145 res = decodeBytes(ProduceBlockResponseV3, response.data, response.contentType, version, blinded, executionValue, consensusValue) And even there they seem to allow unknown fields beacon_chain/spec/eth2_apis/eth2_rest_serialization.nim#L3950-L3952 ok(RestJson.decode(value, T, requireAllFields = true, allowUnknownFields = true)) Based on just reviewing Lodestar and Nimbus code it's hard to tell what's the actual issue, would need to inspect the data we are sending the further investigate this |
This is not the case, Nimbus will only request an aggregated attestation if at least one validator is aggregator beacon_chain/validator_client/attestation_service.nim#L280 if len(aggregateItems) > 0: But I think I know what the issue here is, Nimbus uses different strategies per API, and if I interpreted them correctly this is why we are seeing the error: The beacon_chain/validator_client/attestation_service.nim#L66 await vc.submitPoolAttestations(@[attestation], ApiStrategyKind.First) While the beacon_chain/validator_client/attestation_service.nim#L283-L284 await vc.getAggregatedAttestation(slot, attestationRoot, ApiStrategyKind.Best) But Lodestar might not have an aggregated attestation in it's cache if the validator client did not previously submit an attestation for We have just improved the error handling if there is no aggregated attestation available #6648 to follow spec and produce a less nosiy error as this is somewhat expected to happen in a setup with multiple nodes. If my analysis is correct, this is also not an issue as Nimbus would still produce the aggregate attestation if it received the data from the primary node. @barnabasbusa this should not happen in a 1:1 setup without fallback node, I am assuming in your tests you had multiple bns connected to a single vc |
@nflaig We have 1:1 setups only. We haven't considered any testing for 1:x testing. |
Then I have no idea why this happens but something to note is that there is also a very strange error which should never happen
So maybe there was just a clock issue / time skew between the validator client and beacon node? |
All tests are ran on the same (docker backend) machine, and everyone should be able to replicate it with the config I have posted above. |
Will have to do this next, thanks for the detailed infos |
The aggregated attestation issue has been fixed by #6668. There still seems to be strange behavior by Nimbus VC that it requests an aggregated attestation for the first 1-5 slots even though it does not submit subnet subscriptions with The only remaining issue is block production, my best guess right now is that Nimbus does not like that Lodestar returns a JSON payload from |
Confirmed this issue is related us return a JSON payload in response
Block production with Nimbus VC will be fixed once we merge #6749 but there is another issue publishing blocks as SSZ (while JSON seems work fine there). Does not seem to be a problem with other clients and there is an issue on the Nimbus side to track this status-im/nimbus-eth2#6205 <-- this is an issue on Nimbus BN |
Describe the bug
We are in the process to test cross beacon <> validator client compatibility, and found a bug when testing lodestar CL with Nimbus VC.
Nimbus reports:
Lodestar reports:
Lodestar seems to be able to submit sync committee signatures, but not block proposals
Snooper between cl <> vc reports:
Expected behavior
I would expect all client combinations would work.
Steps to reproduce
config.yaml:
kurtosis run github.com/kurtosis-tech/ethereum-package --args-file config.yaml
Additional context
Current BN <> VC Compatibility list tracker
Operating system
Linux
Lodestar version or commit hash
Version: v1.17.0/898cd90
cc: @pk910
The text was updated successfully, but these errors were encountered: