Docker data3-node-provider

See detailed instructions at https://hub.docker.com/r/kandolanetwork/data3-node-provider/

The "data3-node-provider" docker image is meant for node providers within the Data3 Network ecosystem, a decentralized Database-as-a-Service (DBaaS) platform engineered by Kandola Network.

By deploying the "data3-node-provider" Docker image, node providers who have registered through the Data3 console at https://data3.network can seamlessly integrate into the Data3 Network infrastructure enabling node providers to easily and securely contribute to the DBaaS network's decentralization.

Key functionalities of the "data3-node-provider":

  • Decentralized Communication: Utilizes peer-to-peer (p2p) publish-subscribe mechanisms to ensure secure, reliable and asynchronous communication between node providers, customers, and peers within the network.

  • Database Provisioning: Streamlines the process of database setup and management for various customers, allowing node providers to easily onboard new users and scale services as required.

  • Observability: Offers comprehensive monitoring tools that provide real-time insights into the operational status and performance of the decentralized databases.

  • Financial Settlements: Facilitates a transparent and secure financial ecosystem within the Data3 Network through audit rewards and customer payments. Node providers are rewarded for their contributions to the network, including database provisioning and maintaining high service standards, ensuring a sustainable and incentivized participation model.

Get this image

The recommended way to get the data3-node-provider Docker Image is to pull the prebuilt image from the Docker Hub Registry.

docker pull kandolanetwork/data3-node-provider:latest

To use a specific version, you can pull a versioned tag. You can view the list of available versions in the Docker Hub Registry.

docker pull kandolanetwork/data3-node-provider:[TAG]

Launch data3-node-provider

Step 1: Create a network

docker network create provider-network --driver bridge

Step 2: Create data volumes

docker volume create provider-app-volume

Step 3: Launch the Data3 Node Provider instance

docker run -d --name node-provider-1 \
    --network provider-network \
    --volume provider-app-volume
    kandolanetwork/data3-node-provider:latest

Using a Docker Compose file

When not specified, Docker Compose automatically sets up a new network and attaches all deployed services to that network. However, we will explicitly define a new bridge network named node-provider. In this example we assume that you want to connect to a co-located mongodb database (service name provider-db).

version: '2.24.5'
services:
  provider-db:
    container_name: provider-db-1
    image: mongo:latest
    volumes:
      - provider-db-volume:/data/db
    expose:
      - 27017
    ports:
      - 27018:27017
    healthcheck:
      test: echo 'db.runCommand("ping").ok' | mongosh localhost:27017/test --quiet
    networks:
      - provider-network
  provider-app:
    container_name: provider-app-1
    image: kandolanetwork/data3-node-provider:latest
    environment:
      GRAILS_ENV: development
      DB_HOST: provider-db
      DB_PORT: 27017
      DB_DATABASE: KandolaNodeProvider
      BOOTSTRAP_BASE_URL: https://testconsoleapi.data3.network/
      BOOTSTRAP_PUBSUB_HOST: testpubsub.data3.network
      BOOTSTRAP_PUBSUB_PORT: 9092
      P2P_PORT: 29092

      NODE_IP: 192.168.5.168
      NODE_HOST_NAME: 192.168.5.168
      SELF_PUBSUB_HOST: 192.168.5.168
      SELF_PUBSUB_PORT: 29092

      API_KEY: RT4xsi3IwYbJUQAllcS1jFKB8CJ80F5be1Fw1U92UdmQUXBmpwC90MxfeugdJUKE
      API_SECRET: tgjJ7uLo6z3II22wbpMGSzasRxL1zBEv
      ADDRESS: 0xCd72bC4f5e464Ad4f659Bc62b1155c4183A89828
      PRIVATE_KEY: 20314b398d361035d67d28598f6a31189f88255c983ffc62f8a51ad2d99c35d7

      EXTERNAL_API_ENDPOINT: http://host.docker.internal:3080/price
      EXTERNAL_DEPLOYMENT_API_ENDPOINT: http://host.docker.internal:3080/deploy
    volumes:
      - provider-app-volume:/app/data_home
    expose:
      - 8080
    ports:
      - 8081:8080
    depends_on:
      provider-db:
        condition: service_healthy
    links:
      - provider-db
    networks:
      - provider-network
    extra_hosts:
      - "host.docker.internal:host-gateway"
volumes:
  provider-app-volume:
  provider-db-volume:
networks:
  provider-network:
    driver: bridge

Last updated