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

Design & Architecture #1

Open
zachyking opened this issue Feb 14, 2022 · 7 comments
Open

Design & Architecture #1

zachyking opened this issue Feb 14, 2022 · 7 comments

Comments

@zachyking
Copy link
Contributor

We should start a conversation about designs posted in Discord and collaboratively design the solution.

@zachyking
Copy link
Contributor Author

After discussions today also with @rjharmon , our best bet would be to get started with a collaborative effort to design & build simple web UI to create transactions. And explore more options for coordination of signatures in parallel. @siegfried

When you start work, let others know. The ideal case is to also create some tasks or issues so we can freely help each other.

@zachyking
Copy link
Contributor Author

Did anybody already start on tx building UI? Are we going to go with a design like this (copied from governance contract UX) or does somebody want to make a different one?
Treasury Donation - Dark – 8 1

@zachyking
Copy link
Contributor Author

https://github.com/orgs/ADAOcommunity/projects/3 I created tasks and they are free to take

@emiflake
Copy link

emiflake commented Feb 16, 2022

Is the intention to also be able to arbitrarily witness transactions through this? A workflow that I expect to be common in the cardano ecosystem is for complicated manual transactions that involve multisigs:

  • There is a transaction body assembled by someone which then is sent over to various of the multisig members.
  • They all view the transaction (ideally through some easy UI)
  • They create a witness of it using their particular wallet (Ideally, this would be able to interact with a wallet extension, but even something that uses a mnemonic is already very useful)
  • They send this witness over to the transaction creator
  • The transaction creator assembles them all together and submits the transaction.

Of course orthogonal to this workflow is the actual creation of addresses that are locked by "N out of M" multisig scripts (both Plutus and NativeScript).

@zachyking
Copy link
Contributor Author

Is the intention to also be able to arbitrarily witness transactions through this? A workflow that I expect to be common in the cardano ecosystem is for complicated manual transactions that involve multisigs:

  • There is a transaction body assembled by someone which then is sent over to various of the multisig members.
  • They all view the transaction (ideally through some easy UI)
  • They create a witness of it using their particular wallet (Ideally, this would be able to interact with a wallet extension, but even something that uses a mnemonic is already very useful)
  • They send this witness over to the transaction creator
  • The transaction creator assembles them all together and submits the transaction.

Of course orthogonal to this workflow is the actual creation of addresses that are locked by "N out of M" multisig scripts (both Plutus and NativeScript).

Yes, thank you @emiflake for jumping in!

We got more people than initially expected around this task, so we proposed a bounty in a way where we can explore multiple options of coordination of those signatures.

We would also like to do as much as we can for the decentralization of this solution, so by inspiration from a bitcoin wallet, it would be great to allow users to not use the server at all, only assemble transactions and pass files between themselves how they feel like it.
For server coordination options:
@siegfried was suggesting a possibility of using something from libp2p for real-time signing sessions.
Myself, @rjharmon , @sake-pool were thinking about some lightweight solution, using Next.js fully if possible (easy free hosting), but most probably we won't be able to hack it without db so that part is not yet fully decided. That would be something like you described.
Another option is to use https://github.com/input-output-hk/adrestia-multisig-coordination. Hosting it would be maybe possible with cooperation with Gimbalabs, who are already providing servers to the community Dandelion (@rjharmon is our connect :) )

I created some tasks based on this: because we need only one UI to construct transactions in all cases, that should be the first thing. Then we should try to prototype one or more solutions for coordination.

@siegfried
Copy link

An app pushed to here: https://github.com/ADAOcommunity/cardano-multi-sig-app
Demo: https://cardano-multi-sig-app.vercel.app/scripts/new

@sake-pool
Copy link

I've made a design based on the governance contract UX available to everyone who knows the link in figma. I will continue to work on it.
Figma: https://www.figma.com/file/wAnBgP23rvj4SVbEJFLMVY/cardano-multi-sig-app?node-id=0%3A1

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

No branches or pull requests

4 participants