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

Simplify the way that signatures are collected #283

Open
wants to merge 14 commits into
base: master
Choose a base branch
from

Conversation

quantumagi
Copy link
Contributor

See #281

@@ -0,0 +1,12 @@
namespace Stratis.FederatedPeg.Features.FederationGateway.Interfaces
{
public interface ISignatureProvider
Copy link
Contributor

Choose a reason for hiding this comment

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

Please describe the purpose and behaviour of this class in details, its clear it provides signatures but from who and how are the keys provided?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

The keys are provided by the API call that activates federation. The purpose of the class is in the associated issue. I will add the detail to the class.

@dangershony
Copy link
Contributor

@quantumagi please describe again the intention behind this change.
And I suggest you verify it does not break the current cross chin transfer as we just got ti to work.

One thing I don't get here is why do you need to pass signature information between the main and sidechain nodes (the two nodes connect to each other via api), signature material is passed around int he p2p payloads.

@quantumagi
Copy link
Contributor Author

quantumagi commented Dec 16, 2018

@dangershony, let's keep this PR on hold until after the release.

There is no intention to pass signatures between main and sidechain nodes. The plan is to replace the P2P calls with API calls (or wait for the P2P results) to support the following simplified synchronous workflow:

e.g. a new SignAndBroadcastMethod could do the following:

  • Build a transaction
  • Passes the transaction from leader to other sidechain members via parallel synchronous calls for signing). Wait for the results up to a max of a few seconds.
  • Broadcasts the transaction if enough signatures were collected.
  • This will require a quorum to be online simultaneously but should not be too big an ask.

This way there is no need to reserve UTXO's in the current way. We simply build, sign and broadcast in a single step.

Copy link
Contributor

@bokobza bokobza left a comment

Choose a reason for hiding this comment

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

Locking so it doesn't go in by mistake.

@bokobza bokobza added the discussion Where a discussion is needed label Dec 20, 2018
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
discussion Where a discussion is needed
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants