IOTA Verifiable Claims Proof of Concept
This project is an example of how to use the IOTA tangle with Discipl library to publish digital verifiable claims. These digital certificates replace the certificates the City of Haarlem has to print on expensive forge-proof paper. Thus increasing the speed and decreasing the cost of our digital service delivery.
We believe there are many more applications for digital verifiable claims in public administrations. This proof of concept demonstrates where we can start. However, once these verifiable claims are digital many others can also be digitised on the same infrastructure, dramatically lowering the barrier to using verifications.
- Why we've made this this Proof of Concept
- The scenario this Proof of Concept fulfills
- The technologies we use, why we've used them and how they work
This proof of concept is made out of three components that the three handle discrete steps set out in the scenario.
- ClaimPage: A webserver that hosts the web-page where citizens can download their certificate.
- ClaimServer: A server for the public administration that can handle the claim for a certificate and return it to the client of the ClaimPage.
- Scanner: A webserver that hosts the web-app that can be used to scan the generated QR code and verify the certificate.
Trying it out and running the dev environment
Development mode is easy to set up with just 1 command, the Docker VM will also autoreload when making changes. The full stack can be obtained and started by doing the following:
docker-compose -f docker-compose.dev.yml up -d
- When done, you can access the:
For production, we'll only spawn the claim server, the rest (scanner and city demo page) should be hosted using a well-optimized static file server, like Nginx.
This manual assumes you've got a working version of NodeJS (min v6) installed.
docker-compose -f docker-compose.production.yml up -d
cdto the directories ClaimPage and Scanner, and do the following steps in each:
npm run build
- Now you can use the output in the dist-folder to host said page. The files in dist are static, so a simple static file server would suffice.
Please feel free to file Issues and Pull Requests against this project. Thanks for contributing.