Issuer Node UI
The Issuer Node UI provides the full experience of having an Issuer Node with all its capabilities. Although it offers only a single identity, it also presents a few extra features, such as establishing connections and importing schemas. It comes in an API format but there is also the possibility of generating a full-fledged user interface.
Issuer Node API UI with Managing Schemas, Credentials and other functionalities:
Issuer Node User Interface with a more visual experience:
Issuer Node Components
The Issuer Node comprises the following components and each one of these components can be either dockerized or launched as a separate service.
Issuer Application to issue Verifiable Credentials and communicate with users' wallets.
Vault: Based on HashiCorp, the Vault is used in the Issuer Node for providing key management services. It is utilized to protect the user sensitive data by securing their private key. The Vault has been provided with a plugin called
vault-plugin-secrets-iden3; this plugin is used to sign the data with Baby Jubjub Keys that are stored in the Vault.
Redis: Redis is used for caching the schemas that we use in the Issuer Node. The schemas are downloaded from IPFS and stored on Redis. This way, every time the Issuer Node issues a credential, it doesn't need to fetch the schemas from an external source; it can fetch it directly from Redis. This boosts the performance of the application.
DB: This container is used as the data source for the Issuer Node. In our implementation of the Issuer Node, we have used Postgres as the database. It is where all the data related to issued credentials are stored.
In a testing environment, you can run the Vault, Redis, and Postgres services inside a docker. For production environments, you are advised to secure these services first before using them.