Skip to content

canow-co/did-resolver

 
 

Repository files navigation

cheqd DID Resolver

GitHub release (latest by date) GitHub Release Date GitHub license

GitHub release (latest by date including pre-releases) GitHub commits since latest release (by date) GitHub contributors

GitHub Workflow Status GitHub Workflow Status GitHub repo size

ℹ️ Overview

DID methods are expected to provide standards-compliant methods of DID and DID Document ("DIDDoc") production. The cheqd DID Resolver is designed to implement the W3C DID Resolution specification for did:cheqd method.

📝 Architecture

The Architecture Decision Record for the cheqd DID Resolver describes the architecture & design decisions for this software package.

✅ Quick Start

If you do not want to install anything and just want to resolve a did:cheqd entry from the ledger, you can load the REST API endpoint for resolver.cheqd.net in your browser.

Or, make a request from terminal to this hosted REST API:

curl -X GET https://resolver.cheqd.net/1.0/identifiers/did:cheqd:mainnet:zF7rhDBfUt9d1gJPjx7s1JXfUY7oVWkY

Running your own cheqd DID Resolver using Docker

Docker Compose command

Spinning up a Docker container from the pre-built did-resolver Docker image on Github is as simple as the command below:

docker-compose -f docker/docker-compose.yml --env-file docker/docker-compose.env up --no-build

Docker Compose environment variable configuration

Environment variables needed in Docker Compose are defined in the docker/docker-compose.env file. There are defaults already specified, but you can edit these.

  1. IMAGE_VERSION (default: latest): Version number / tag of the Docker image to run. By default, this is set to pull images from Github Container Registry.
  2. RESOLVER_PORT (default: 8080): Port on which the Resolver service is published/exposed on the host machine. Internally mapped to port 8080 in the container.

Configure resolver settings

To configure the resolver, use environment variables or edit them in the container.env file in the root of the @cheqd/did-resolver repository. The values that can be edited are as follows:

  1. MAINNET_ENDPOINT : Mainnet Network endpoint as string with the following format" <networks>,<useTls>,<timeout>. Example: grpc.cheqd.net:443,true,5s
    1. networks: A string specifying the Cosmos SDK gRPC endpoint from which the Resolver pulls data. Format: <resource_url>:<resource_port>
    2. useTls: Specify whether gRPC connection to ledger should use secure or insecure pulls. Default is true since gRPC uses HTTP/2 with TLS as the transport mechanism.
    3. timeout: Timeout (in seconds) to wait for before any ledger requests are considered to have time out.
  2. TESTNET_ENDPOINT : Testnet Network endpoint as string with the following format" <networks>,<useTls>,<timeout>. Example: grpc.cheqd.network:443,true,5s
  3. RESOLVER_LISTNER`: A string with address and port where the resolver listens for requests from clients.
  4. LOG_LEVEL: debug/warn/info/error - to define the application log level

Example container.env file

# Syntax: <grpc-endpoint-url:port>,boolean,time
# 1st parameter is gRPC endpoint
# 2nd (Boolean) parameter is whether to use TLS or not
# 3nd connection timeout 
MAINNET_ENDPOINT=grpc.cheqd.net:443,true,5s
TESTNET_ENDPOINT=grpc.cheqd.network:443,true,5s

# Sets Echo logging level
LOG_LEVEL="warn"

RESOLVER_LISTNER="0.0.0.0:8080"

📖 Documentation

Further documentation on cheqd DID Resolver is available on the cheqd Identity Documentation site. This includes instructions on how to do custom builds using Dockerfile / Docker Compose.

🐞 Bug reports & 🤔 feature requests

If you notice anything not behaving how you expected, or would like to make a suggestion / request for a new feature, please create a new issue and let us know.

💬 Community

The cheqd Community Slack is our primary chat channel for the open-source community, software developers, and node operators.

Please reach out to us there for discussions, help, and feedback on the project.

🙋 Find us elsewhere

Telegram Discord Twitter LinkedIn Slack Medium YouTube

Packages

No packages published

Languages

  • Go 86.9%
  • Python 11.4%
  • Dockerfile 1.1%
  • Shell 0.6%