Original PRISM Node in Hyperledger Identus is closed source, resource intensive and not the easiest thing to host. NeoPRISM can be an alternative once it is ready for production workload.
This is the total amount allocated to NeoPRISM - Rust PRISM Node goes to production, supporting wider community use cases.
NeoPRISM is a Rust implementation of PRISM Node. It uses significantly less resource and directly talks to Cardano node using Oura. Substantial work is needed to prepare for the production workload.
No dependencies
The project is fully open source under Apache 2 license.
NeoPRISM is an implementation of PRISM Node that began as a side project with minimal functionality, testing and assurance. It is currently a proof of concept available at https://github.com/patextreme/neoprism and only supports PRISM DID resolution via a WebUI. By adding support for the Universal Resolver API, supporting DID operation publishing and improving its quality assurance, the project moves one step closer to potentially replacing the original PRISM Node in Hyperledger Identus.
One of the most critical components in the Hyperledger Identus is the PRISM Node, responsible for indexing and resolving the PRISM DID method. The PRISM DID method specification is publicly available here https://github.com/input-output-hk/prism-did-method-spec/blob/main/w3c-spec/PRISM-method.md. However, the original PRISM Node remains closed-source and is only available as a public Docker image. The future of it becoming open-source is uncertain due to the IOG internal restructuring. While there are some community efforts to implement the specification, these are still in the early days.
By productionizing NeoPRISM, the community can adopt it with confidence as a critical piece in the Hyperledger Identus stack. The original PRISM Node requires multiple components to work together—CardanoNode, DBSync, PRISMNode, and IdentusCloudAgent—to resolve a DID. In contrast, NeoPRISM only requires CardanoNode and NeoPRISM, simplifying adoption for the community and reducing infrastructure costs.
As a proof of concept, the user can quickly run NeoPRISM allowing the first DID to be resolved within minutes!
The image below show an example of NeoPRISM resolution and explorer UI in its current state.
The goal of this proposal is to allow programming interface known as Universal Resolver API and support other use cases such as operation publication to the blockchian. By introducing these features, NeoPRISM is one step closer to replace the original PRISM Node.
Pat Losoponkul - former Atala's member, engineer who was working closely with PRISM DID specification, implementation and Hyperledger Identus maintainer.
NeoPRISM - a pet project already capable of running and resolving PRISM DID using WebUI that is significantly less resource intensive and easy to spin up. Substantial work is required on this to prepare it for community and production workload.
DID Method implementation is a fairly complex subject and non-trivial involving many of intricacies. Being someone who was working closely with PRISM DID spec and related W3C specs before, and have implemented a POC, the work can start right away without ramping up and familarize with all the specs.
Universal Resolver API support
Estimation: 1 month
Objectives:
Key tasks:
Acceptance criteria:
Enhance project quality and test coverage of NeoPRISM repository
Estimation: 2.5 months
Objectives
Key tasks:
Acceptance criteria:
DID operation publication to Cardano blockchain
Estimation: 2.5 months
Objectives:
Key tasks:
Acceptance criteria:
Language agnostic property testing framework
Estimation: 2.5 months
Objectives:
Key tasks:
Deliverables:
Integration with Hyperledger Identus Cloud Agent and close-out report
Estimation: 1 months
Objectives:
Key tasks:
Deliverables:
Pat Losoponkul - Author and maintainer of NeoPRISM
GitHub1 - https://github.com/patextreme
Assume ADA price ~0.36 (on 2024-10-15)
Estimate budget per manday 1000ADA which is approximately $45 / hour
The figure describes the breakdown of each milestone and its budget.
The budgets are:
By having more efficient implementation of PRISM Node, the Hyperledger Identus ecosystem should have significant lower infrastructure cost and staff spending to maintain the entire infrastucture. From prior experience, a Cardano and DB-sync stack can cost weeks of engineers time just to spin up and keep it running. The sever and storage cost is also a big part of the bill to keep the heavy DB-sync infrastucture running.
Images below compare the footprint of both PRISM Node implementation running in container
Original PRISM Node taking more than half a GB on idle and need IdentusCloudAgent to provide resolution endpoint. Not including DB Sync resource.
NeoPRISM running and syncing from Cardano node using a fraction of resource
The lower resource requirement and ease of use should reduce the cost of using Hyperledger Identus and reduce adoption barrier.