-
Notifications
You must be signed in to change notification settings - Fork 19
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
Clarify expected behavior if remote signer URL is not provided #76
Comments
In Lighthouse the |
Based on reviewing other clients (and if I got this correctly)
And as noted in Lodestar and Lighthouse the We could set it as required in the spec and it wouldn't really require a change on server side but api client implementations that currently assume that the URL can be omitted would require a breaking change but since those api clients already don't work with most server implementations it might be for the best. |
it was quite intentionally optional... Making it To me the clear answer is the clients marking it required should probably become compliant with the spec, and if that means they 400 when a url isn't present, at least it's consistent. I'm fairly sure the reason that it's 'optional' is because a default url from another source is one of the flows. |
Might be that I am not fully aware of the use case of this API but so far I have just seen it being misused to fix some other shortcomings clients have, e.g. keeping keys between validator client and remote signer in sync (ChainSafe/lodestar#6624). For example, Diva has implemented a custom reload script to import missing keys but it does not provide the In my opinion, the remote keys api only makes sense if you either don't have a 1:1 setup or the remote signer is not configured via CLI. And if a client has a remote signer configured via CLI flag (e.g. As of right now, only Nimbus keeps the keys in sync but I feel like this would remove a headache for tooling around remote signers if all clients could handle this internally. Curious what other teams think about this |
Agreed that it's probably not worth a spec change, and keeping it as optional leaves the option open for the implementation to get it from another source. If the implementation returns a 400 if the url is not provided it is probably not strictly spec compliant but at least in case of Lodestar it is better than setting a default value which might not be transparent to the user. This clarifies the expected behavior, although it could be more well-defined in the spec, but likely not worth the effort / coordination considering the limited use cases for this api |
As per spec, importing remote keys does not require to provide the
url
as part of the remote signer definition as only thepubkey
is required.keymanager-APIs/types/import_remote_signer_definition.yaml
Line 2 in f99e415
At least in Lodestar, we require the
url
to be present and to be a valid URL, otherwise the key will not be imported due to an error.What I would like to clarify is the following
url
is optional and should it be required insteadThe later is not always possible, at least in Lodestar, as the
--externalSigner.url
flag is optional and is not strictly required to use a remote signer. Using the keymanager API also allows to import remote signer keys from different remote signers while the CLI flag has a 1:1 relationship.As the URL will be required when the validator client has to send a remote signing request , the spec should at a minimum clarify the expected behavior if the remote signer URL is not provided.
The text was updated successfully, but these errors were encountered: