Skip to content
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

adds multisig server to broker dkg messages #5459

Merged
merged 2 commits into from
Oct 2, 2024

Conversation

hughy
Copy link
Contributor

@hughy hughy commented Sep 30, 2024

Summary

copies stratum module from sdk into cli to serve as foundation for multisig network module

replaces stratum mining messages with dkg messages:

  • 'dkg.status': returns the dkg status of the session including minSigners, identities, and all public packages
  • 'dkg.get_status': requests the status of the dkg session from the server
  • 'dkg.identity': sends an identity over the socket
  • 'dkg.round1': sends a round1 public package over the socket
  • 'dkg.round2': sends a round2 public package over the socket

reuses single message for submitting an identity to the server and broadcasting it from the server. likewise for round1 public packages and round2 public packages

adds a cli command, 'wallet:multisig:server', to start a server for a dkg session. requires maxSigners and minSigners on start to set the parameters for DKG

updates 'wallet:multisig:dkg:create' with a '--server' flag to connect to a server. at each step, submits the participant's information to the server and then waits for server to broadcast packages from other participants. uses 'dkg.get_status' to get the status at the beginning of each step to account for the possibility of having missed broadcasts

Testing Plan

manual testing:

  • start server with 'wallet:multisig:server --maxSigners 2 --minSigners 2'
  • run dkg with two participants using 'wallet:multisig:dkg:create --server localhost:9035' in two separate windows

Documentation

Does this change require any updates to the Iron Fish Docs (ex. the RPC API
Reference
)? If yes, link a
related documentation pull request for the website.

[ ] Yes

Breaking Change

Is this a breaking change? If yes, add notes below on why this is breaking and label it with breaking-change-rpc or breaking-change-sdk.

[ ] Yes

@hughy hughy requested a review from a team as a code owner September 30, 2024 19:26
hughy and others added 2 commits October 2, 2024 09:24
copies stratum module from sdk into cli to serve as foundation for multisig
network module

replaces stratum mining messages with dkg messages:
- 'dkg.status': returns the dkg status of the session including minSigners,
  identities, and all public packages
- 'dkg.get_status': requests the status of the dkg session from the server
- 'dkg.identity': sends an identity over the socket
- 'dkg.round1': sends a round1 public package over the socket
- 'dkg.round2': sends a round2 public package over the socket

reuses single message for submitting an identity to the server and broadcasting
it from the server. likewise for round1 public packages and round2 public
packages

adds a cli command, 'wallet:multisig:server', to start a server for a dkg
session. requires maxSigners and minSigners on start to set the parameters for
DKG

updates 'wallet:multisig:dkg:create' with a '--server' flag to connect to a
server. at each step, submits the participant's information to the server and
then waits for server to broadcast packages from other participants. uses
'dkg.get_status' to get the status at the beginning of each step to account for
the possibility of having missed broadcasts
supports using a single server for multiple runs of dkg and/or signing

updates 'wallet:multisig:dkg:create' to join an existing session with the
'sessionId' flag or create a new session if none is specified
@hughy hughy force-pushed the feat/hughy/multisig-server branch from 1dee06e to c8fd91a Compare October 2, 2024 16:24
Copy link
Contributor

@NullSoldier NullSoldier left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is going to have more changes, but I think merging this into staging and having additional PRs is a better strategy. This is outside the current main path so it's very low risk.

@NullSoldier NullSoldier merged commit 58a1b3c into staging Oct 2, 2024
9 checks passed
@NullSoldier NullSoldier deleted the feat/hughy/multisig-server branch October 2, 2024 20:23
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants