Set up Issuer Node Core API
This article details the steps to set up your own Issuer Node Core API.
The content of the QR code provided by the Issuer or Verifier has changed since the release 2.3.0 of the Issuer node. Instead of sending the JSON information through the QR code, now we provide an embedded link to a page where this JSON is hosted, which improves the application performance. Please check the IDEN3MESSAGE_PARSER.md file for more information on how to parse the new QR code content.
Installation
For an advance configuration of the Issuer Node (RHS, Ethereum Identities and more), visit the Advanced Issuer Node configuration guide.
There are two options for installing and running the server alongside the UI:
We encourage the use of Standalone for production environments.
For either one, you first have to clone the repository.
Standalone Mode Guide
Standalone Mode Guide Requirements
- Docker Engine 1.27
- Makefile toolchain
- Unix-based operating system (e.g. Debian, Arch, Mac OS X)
- Go version 1.19 or higher
- Postgres
- Redis
- Hashicorp Vault
Standalone Mode Setup
Env files configuration:
1.1. Copy the config sample files
cp .env-issuer.sample .env-issuer
cp .env-api.sample .env-api
1.2. Fill the .env-issuer config file with the proper variables
For advanced Issuer Node configurations, visit the Advanced Issuer Node configuration guide.
.env-issuer
ISSUER_ETHEREUM_URL=<YOUR_RPC_PROVIDER_URI_ENDPOINT>
ISSUER_DATABASE_URL=<YOUR_POSTGRESQL_DB_INSTANCE>
ISSUER_REDIS_URL=<YOUR_REDIS_INSTANCE>
ISSUER_KEY_STORE_ADDRESS=<YOUR_VAULT_INSTANCE>
ISSUER_SERVER_URL=<PUBLICLY_ACCESSIBLE_URL_POINTING_TO_ISSUER_SERVER_PORT>
1.3. Enable vault authentication
make add-vault-token
1.4. Write the private key in the vault. This step is needed in order to be able to transit the issuer's state. To perform that action the given account has to be funded. For Amoy network you can request some testing Matic here.
make private_key=<YOUR_WALLET_PRIVATE_KEY> add-private-key
- Run
make build-local
. This will generate a binary for each of the following commands:platform
platform_ui
migrate
pending_publisher
notifications
- Run
make db/migrate
. This command checks the database structure and applies the necessary changes to the database schema. - Run
./bin/platform
command to start the issuer. - Run
./bin/pending_publisher
. This checks that publishing transactions to the blockchain works. - (Optional) Run
./bin/notifications
. This enables push notifications when issuing credentials to PID Wallet.
Core API specification - http://localhost:3001
Related guides:
How to Set Up Issuer Node UI Guide