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

Cardano Connector for SDK #86

Open
FabioPinheiro opened this issue Nov 14, 2024 · 2 comments
Open

Cardano Connector for SDK #86

FabioPinheiro opened this issue Nov 14, 2024 · 2 comments
Assignees
Labels
type:roadmap This issue will appear in the [project roadmap](https://github.com/orgs/hyperledger/projects/48)

Comments

@FabioPinheiro
Copy link
Contributor

FabioPinheiro commented Nov 14, 2024

Short Description

A connector for the SDKs to submit the PRISM Block to the Cardano Blockchain.

Value statement

As a community we already agreed this is value coming from the discussion in #80

But just the summarize:

The PRISM Node can be view as a Cardano Connector. But is a component that is able to do much more that simple submit transaction with metadata.
But this is a very common use case in Cardano.

The value of this come from bypassing this dedicated component of the did:prism method. With a generic component that uses infrastructure that already exists and that is largely available.

Again, the ONLY concern that we care about in here is the Writing Path.
We don't care about the status of DID in here. But to create valid PRISM Block you need to know the status of the DID. For that you have the Reading Path. Both PRISM Node or the universal resolver cover that.
For example when you create a new did:prism you already know the state of the DID, because it is no existed.

So let's split responsibility:

  • The SDKs needs to produce the bytes that constitute a valid PRISM Block.
    Note the PRISM Block is already sign with the private keys if the DID, so the Keys is never shared with the connector.
  • The Cardano Connector receive the bytes of the PRISM Block (which is a protobuf) and create a transactions with those bytes on the metadata and a metadata id 21325.
    See Appendix A & B on the PRISM DID method specs for more for more information.
  • Private keys. There are you two pairs of Private keys, one is the Master key on the DID and another is the key of the wallet.
    • The Master private key of the DID is never shared with the Connector. This key is used to sign the PRISM Object in order to make the PRISM Block.
    • The private key of the wallet its also never shared to other components. This key is used to sign the Cardano transactions.

I propose we do a proof of concept of a connector that will be a Chrome extension and use the TS SDK to call the Lace wallet and make a transaction via the Lace wallet.

The idea is to explore CIP30 API and try to build from there https://cips.cardano.org/cip/CIP-30

Components

Proof of concept for a new company Component
Writing path of the did:prism method using the TS SDK

@FabioPinheiro FabioPinheiro added the type:roadmap This issue will appear in the [project roadmap](https://github.com/orgs/hyperledger/projects/48) label Nov 14, 2024
@FabioPinheiro FabioPinheiro self-assigned this Nov 14, 2024
@FabioPinheiro
Copy link
Contributor Author

I tried to ask via the Lace's public channels, if its possible to build a Chrome extension that calls the Lace Chrome extension, to make a transaction from the wallet to itself with some metadata that will be passed.
But I got no response

@robertocarvajal
Copy link

why do we need a Chrome extension for the edge SDK?, I think they didn't respond because extensions are limited and sandboxed, so calling code from one extension to run on another might not be possible by design.

Maybe if the edge SDK runs directly on a page, we have a chance of calling the public Lace API to publish a DID on chain.. if the edge SDK runs in an extension it will be harder to achieve that without some sort of middle layer that communicates the two components. We need to quick PoC test to try this over testnet, could be a fun weekend project :)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
type:roadmap This issue will appear in the [project roadmap](https://github.com/orgs/hyperledger/projects/48)
Projects
Development

No branches or pull requests

2 participants