-
Notifications
You must be signed in to change notification settings - Fork 302
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
Support threshold custody for validators #4037
Conversation
832baaf
to
8b97a81
Compare
The protobuf lint failure is because I made Here are all the scenarios I'd ideally like to test:
Ideally, we would have an integration test for each, exercising all of:
@cratelyn how feasible do you think it would be to set up such tests? |
4f5dd6e
to
e034bdf
Compare
@plaidfinch that sounds very feasible! check out https://github.com/penumbra-zone/penumbra/blob/main/crates/core/app/tests/mock_consensus_staking.rs#L29-L52 that test creates a validator, and (un)delegates to it. #3913 and #3973 track the work to integrate the view server into these tests, which should further streamline the ergonomics of creating transactions in tests. you can check out the i'm happy to talk sometime next week, or if you'd like, feel free to file a ticket and i can take a look as part of my ongoing work in #3588. |
This does not finish the work, because it does not actually correctly sign the requests
This is so that we can use AuthorizationData for authorizations which may or may not be transaction authorizations.
We don't need the differentiation because we can use SigningRequest and SigningResponse, which are specific to only the threshold backend and do not need to leak.
f99dc65
to
893ede9
Compare
This will no longer prompt for signatures if none are required for a transaction.
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.
Paired on this with @plaidfinch.
@hdevalence I think this is ready to merge, but I need an administrative override to merge with the failing protobuf lint, which is showing that I'm making a breaking change to the threshold custody struct |
De-activated, merged, then re-activated the rule. Thanks! |
This PR finishes #3813, adding support for signing validator definitions and votes to the threshold custody backend, as well as widening the general interface for custody backends to permit any backend to support these operations.
Status: @cronokirby and I walked through this and determined that it does work after all, the UX is just a little unfortunate when multiple calls to threshold custody backend are required to broadcast a single transaction (as in the case with validator custody). But it works!