Sign inSign up

kandolanetwork/data3-node-provider

By kandolanetwork

Updated over 2 years ago

Data3 Network's Node Provider Service & secure p2p communication. #decentralized #dbaas

Image
0

984

kandolanetwork/data3-node-provider repository overview

kandolanetwork/data3-node-provider

What is the 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.

TL;DR

docker run --name node-provider-1 kandolanetwork/data3-node-provider:latest

Prerequisites & Dependencies

  • Operating System: Linux (AMD and ARM)
  • Publish Subscribe Platform (example: Apache Kafka and Zookeeper)
  • A datastore for the node provider service (say mongodb)

Getting Started

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

See below for environment variables that you can pass using -e docker run flag.

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: https://192.168.5.168:9099/api/
    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

Configuration

Environment variables

NameDescriptionSample Value
GRAILS_ENVEnvironment type for application development , test, production, etc.development
DB_HOSTHostname / IP of the node-provider's database.provider-db
DB_PORTPort number of the node-provider's database.27017
DB_DATABASEName of the node-provider's database.KandolaNodeProvider
BOOTSTRAP_BASE_URLAPI Base URL of the Data3 Bootstrap / Data3 Console Service.https://testconsoleapi.data3.network/
BOOTSTRAP_PUBSUB_HOSTPubSub Hostname/IP of the Data3 Bootstrap / Data3 Console Service.testpubsub.data3.network
BOOTSTRAP_PUBSUB_PORTPubSub Port of the Data3 Bootstrap / Data3 Console Service.29092
P2P_PORTPubSub Port of peers for P2P Communication (default is 29092).29092
NODE_IPIP Address of this node (data3-node-provider).192.168.5.168
NODE_HOST_NAMEHostname of this node (data3-node-provider).dev-mac.local
SELF_PUBSUB_HOSTHostname / IP of the PubSub platform for this node (data3-node-provider).192.168.5.168
SELF_PUBSUB_PORTPort of the PubSub platform for this node (data3-node-provider).29092
API_KEYAPI Key of the Node Provider.kkkdddxxxyyy
API_SECRETAPI Key of the Node Provider.sssnnnggg
ADDRESSAddress of the Node Provider's Wallet Account (that was used to signup).0xabc123
PRIVATE_KEYPrivate Key of the Node Provider's Wallet Account (that was used to signup).pppppvvvvvttt

More Information

Tag summary

Content type

Image

Digest

sha256:e58dd28f6

Size

546.1 MB

Last updated

over 2 years ago

docker pull kandolanetwork/data3-node-provider