completed
Universal Resolver for did:prism
Current Project Status
Complete
Amount
Received
$6,425
Amount
Requested
$6,425
Percentage
Received
100.00%
Solution

We will develop the driver so worldwide users and platforms can retrieve Prism Decentralized IDs using the well known Universal Resolver

Problem

There are no drivers available to resolve Prism DID methods for the popular Universal Resolver of the Decentralized Identity Foundation

Addresses Challenge
Feasibility
Auditability

RootsID

1 member

Universal Resolver for did:prism

The Universal Resolver resolves Decentralized Identifiers (DIDs) documents across many different DID methods, based on the W3C DID Core 1.0 and DID Resolution specifications. It is a work item of the Decentralized Identity Foundation. You can see this blog post for a nice introduction.

More than 50 drivers are already available from Different Decentralized identifiers such as did:btcr, did:ethr, did:sov and did:web. However no driver is available for did:prism, the Decentralized Identifier of Atala Prism.

This project is about developing this missing driver for the Atala Prism community. It will be an open source code that can be used by the Universal Resolver. As a reference, I’ve already developed a similar driver for sidetree-cardano in my funded F6 project Interoperability as Growth Driver.

Additionally, a running instance of the Universal Resolver with the Prism driver will be deployed in AWS services.

It’s important to note that the Universal Resolver is the facto method that most platforms use to resolve external Decentralized Identifiers, so it is an important tool to provide interoperability among different systems such as Hyperledger Indy/Aries for example.

We are aiming to reach the goal of the challenge by providing this missing Universal Resolver Driver for Atala Prism, an indispensable component to have Atala Prism identities interoperable with the rest of the ecosystem. This is an additional component for the Atala Prism ecosystem that helps lower the barrier for bringing new Identity solutions to Cardano.

I do not foresee a technical challenge since I’ve already developed and implemented a Universal Resolver Driver for sidetree. However, the main challenge I may face is the ability to allocate enough time to commit the project in time. Since this is not the only project I’m planning to deliver during the same period of time, I’ve been carefully planning time allocation among all Catalyst projects and personal daily jobs. Besides that planing, and as the schedule is really tight, I have planned two options to mitigate that risk in case of necessity:

  • As I’m part of RootsId, a team of four members, I will count the support from the rest in case we need it.
  • I have identified a number of community members that I met at the Atala Prism Pioneer Program that are willing to collaborate and jump into the project in case we needed it.

Based on the time allocation planning mentioned above, we have defined the following plan of actions and durations for this project:

  • Develop Driver with Atala Prism SDK: 10 days
  • Fork Universal Resolver and upload docker hub images: 5 days
  • Deploy a cloud instance of the Universal Resolver + Driver in AWS and document: 5 days

<u>TOTAL DURATION</u>: 4 weeks

As I've already developed a similar driver for sidetree-cardano, I have a clear picture of what it takes to code a similar driver for Atala Prism in terms of effort and time. In summary it can be described in the following main activities;

  • Develop the driver following guidelines provided by DIF
  • Fork the Universal Resolver and add the new driver as a requirement: once the did:method become registered by Atala in WC3 DID Specification Registries, the plugin will be merged into the DIF Universal Resolver code so this fork won’t be necessary.
  • Create docker images and upload to Docker Hub
  • Create and instance in AWS, deploy the forked image, and set up DNS and SSL
  • Test and document

<u>Deliverables</u>:

  1. the open source code of the Universal Resolver Driver available in a public repository
  2. A built version of the Driver uploaded to docker hub
  3. A forked Universal Resolver that will include this new driver
  4. A built version of the modified Universal Resolver uploaded to docker hub
  5. An instance of the both dockers running on AWS and available for anyone to use

Budget is mostly composed of development hours at a ratio of $100/hr, plus the hosting costs. Based on the activities defined above the requested breakdown budget is:

  • Driver Development: 40hr = $4.000
  • Forks, dockerhub and hosting activities: 20hr = $2.000
  • Yearly AWS instance: $400
  • Domain name + SSL: $25

<u>TOTAL BUDGET</u>: $6.425

This is a solo team composed by Rodolfo Miranda. He is well involved in the Cardano Decentralized Identity community from the beginning in Fund 6, has been funded for several open source projects, some of them are already delivered, and has participated in the first cohort of the Atala Prism Pioneer Program. As a result of the later participation, he joined efforts with other cohort members and founded RootsId with the goal of providing useful building blocks for the Cardano SSI Community. Additionally, He frequently participates and contributes in working groups and task forces related to the Self-Sovereign Identity world such as the Linux Foundation Project Trust Over IP and the Decentralized Identity Foundation DIDComm Working Group among others.

As special note, Rodolfo Mirada was the proposer of the Challenge “Self-Sovereign Identity” that is closely related to this one, and currently is part of the Challenge Team.

SSI products delivered / on development:

  • Sidetree-cardano, a sidetree implementation on top of Cardano. See github repo.
  • Hyperledger Aries Cloud Agent Python (ACA-Py) adapted to work with sidetree-cardano did:ada. See github repo.
  • Universal Resolver Driver for Sidetree-Cardano did:ada method:. See girhub repo
  • RootsWallet, an open source identity/credential wallet. See github repo

Additional references of the team:

<u>Rodolfo Miranda</u>: <https://www.linkedin.com/in/rodolfomiranda/>

His background includes a MS EE degree at Stanford University and more than 25 years of successful work experience in both large multinational companies and owned startup projects. His main activities involve architecting, developing, and implementing large scale software solutions for the Telecommunication Industry. Lately, he was engaged in blockchain technologies and joined Cardano community where he:

This project is basically a software development project with five clear deliverables that will act as proofs of completion:

  1. the open source code of the Universal Resolver Driver available in a public repository
  2. A built version of the Driver uploaded to docker hub
  3. A forked Universal Resolver that will include this new driver
  4. A built version of the modified Universal Resolver uploaded to docker hub
  5. An instance of the both dockers running on AWS and available for anyone to use

Additionally, this team adopts Agile methodology based on the tools provided by github. Besides progress reports, the advancement will be tracked by github issues, project views (like Kanban board) and commits. Intermediate progress will be reported as Sprint Burndown, a KPI metric that shows the progress in percentage of each development sprint.

The success of the project is the release of a Universal Resolver Driver that can be available to any user to query and retrieve Decentralized Identifiers created on the Atala Prism platform. And a hosted version of the Universal Resolver with the plugin so Atala Prism method can be retrieved with simple GET request messages.

This project is not a continuation of a previously funded project, however is part of my effort of providing building blocks for the Cardano SSI ecosystem.

close

Playlist

  • EP2: epoch_length

    Authored by: Darlington Kofa

    3m 24s
    Darlington Kofa
  • EP1: 'd' parameter

    Authored by: Darlington Kofa

    4m 3s
    Darlington Kofa
  • EP3: key_deposit

    Authored by: Darlington Kofa

    3m 48s
    Darlington Kofa
  • EP4: epoch_no

    Authored by: Darlington Kofa

    2m 16s
    Darlington Kofa
  • EP5: max_block_size

    Authored by: Darlington Kofa

    3m 14s
    Darlington Kofa
  • EP6: pool_deposit

    Authored by: Darlington Kofa

    3m 19s
    Darlington Kofa
  • EP7: max_tx_size

    Authored by: Darlington Kofa

    4m 59s
    Darlington Kofa
0:00
/
~0:00