Contract Registry Microservice

Goal

Contract-Registry is responsible for

  • Storing smart-contracts’ related information;
  • Versioning these smart-contracts.

Thus facilitating smart-contracts deployment, decoding of events of transactions associated to these smart-contracts; and to read smart-contract’s states on chain.

Quick-Start

The application can be configured through flags or environment variables, we can run the help run command line.

go run . help run

Configure Run

Usage:
  orchestrate contract-registry run [flags]

Flags:
      --abi strings                     Smart Contract ABIs to register for crafting (expected format <contract>:<abi>:<bytecode>:<deployedBytecode>)
                                        Environment variable: "ABI"
      --contract-registry-type string   Type of Contract Registry (one of ["postgres" "in-memory"])
                                        Environment variable: "CONTRACT_REGISTRY_TYPE" (default "postgres")
      --db-database string              Target Database name
                                        Environment variable: "DB_DATABASE" (default "postgres")
      --db-host string                  Database host
                                        Environment variable: "DB_HOST" (default "127.0.0.1")
      --db-password string              Database User password
                                        Environment variable: "DB_PASSWORD" (default "postgres")
      --db-poolsize int                 Maximum number of connections on database
                                        Environment variable: "DB_POOLSIZE"
      --db-port int                     Database port
                                        Environment variable: "DB_PORT" (default 5432)
      --db-user string                  Database User.
                                        Environment variable: "DB_USER" (default "postgres")
      --grpc-hostname string            Hostname to expose GRPC services
                                        Environment variable: "GRPC_HOSTNAME"
      --grpc-port uint                  Port to expose GRPC services
                                        Environment variable: "GRPC_PORT" (default 8080)
  -h, --help                            help for run
      --rest-hostname string            Hostname to expose REST services
                                        Environment variable: "REST_HOSTNAME"
      --rest-port uint                  Port to expose REST services
                                        Environment variable: "REST_PORT" (default 8081)

Configure Migrate

```text Usage: orchestrate contract-registry migrate [flags] orchestrate contract-registry migrate [command]

Available Commands: down Reverts last migration init Initialize database reset Reverts all migrations set-version Set database version up Upgrade database version Print current database version

Flags: –db-database string Target Database name Environment variable: “DB_DATABASE” (default “postgres”) –db-host string Database host Environment variable: “DB_HOST” (default “127.0.0.1”) –db-password string Database User password Environment variable: “DB_PASSWORD” (default “postgres”) –db-poolsize int Maximum number of connections on database Environment variable: “DB_POOLSIZE” –db-port int Database port Environment variable: “DB_PORT” (default 5432) –db-user string Database User. Environment variable: “DB_USER” (default “postgres”) -h, –help help for migrate

Warning

  • Default values can be changed by using environment variables.
  • Environment variables will be overwritten by Flags values.