-
Notifications
You must be signed in to change notification settings - Fork 468
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
[Config Change] Multi exec servers #2267
Conversation
returns all the wasmModuleRoots that the application supports
Multiple rpc-URLs are just for multiple execution client. Every validation is only run on one validation client per wasmModuleRoot. Fa
Testing with multiple exec servers done in this draft PR: #2268 |
supported, err := spawner.WasmModuleRoots() | ||
if err != nil { | ||
log.Warn("WasmModuleRoots returned error", "err", err) | ||
return false |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This case is a bit concerning to me because we'll somewhat silently permanently disable this validator. Shouldn't we return an error here?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I changed scemantics to only require one validation to succeed per wasmModuleRoot. So if one spawner is down for some reason but others can cover for it - it'll work which seems like the right behavior to me. If no spawner is found for a certain root it will error out in a different pace.
RUN apt-get install -y xxd | ||
RUN export DEBIAN_FRONTEND=noninteractive && \ | ||
apt-get update && \ | ||
apt-get install -y xxd netcat-traditional |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think we should remove the apt cache after this
@@ -398,7 +398,7 @@ func (v *StatelessBlockValidator) ValidateResult( | |||
} | |||
} | |||
if run == nil { | |||
return false, &entry.End, errors.New("this validation not supported by node") | |||
return false, nil, fmt.Errorf("validation woth WasmModuleRoot %v not supported by node", moduleRoot) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
nit: woth -> with
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Let's get this merged for now, and I'll make a follow-up PR for the small requested changes
This removes rpc validation-only clients.
Rpc clients will always be execution clients.
Both validation and exec clients can support a list of wasmModuleRoots.
Validations are executed against one client only (per wasmModuleRoot), wich will either be a redis queue or if not found an execution server.
This PR also creates a Docker with split-validation, which only has one validator but will be used as base for multi-validator dockers