Skip to content

The Blockchain Node Management Platform provides a unified interface to deploy, monitor, update, and scale blockchain nodes across multiple networks. This platform simplifies node lifecycle management and ensures high availability, security, and performance.

Notifications You must be signed in to change notification settings

asmit27rai/blockchain-node-manager

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Blockchain Node Management Platform

A comprehensive solution to deploy, monitor, update, and manage blockchain nodes across multiple networks. This platform streamlines node lifecycle management, ensuring high availability, security, and performance.


Features

  • Automated Deployment: Spin up single or multiple nodes with custom resource allocation.
  • Real-Time Monitoring: Track CPU, memory, disk, peer count, sync status, and more.
  • Intelligent Alerting: Configurable alerts via email, Slack, or webhooks with severity levels.
  • Safe Rolling Updates: Schedule and apply version upgrades with minimal downtime.
  • RESTful API: Programmatic access for integration with external tools.
  • Web Dashboard: Interactive interface to visualize node status, metrics, and alerts.
  • Multi-Chain Support: Ethereum, Bitcoin, Polygon, BSC, and extensible to other blockchains.
  • CLI Tools: Command-line utilities for deployment, monitoring, and updates.
  • Role-Based Access Control: Secure communication and authenticated operations.

Architecture

+-------------------+
|  Web Dashboard    |
+-------------------+
         |
+-------------------+        +-----------------+
|     API Gateway   | <----> |   Client Tools  |
+-------------------+        +-----------------+
         |
+--------+--------+------------------------------+
|                 |                              |
|        +--------v--------+      +--------------v---------------+
|        |  Node Deployer  |      |     Monitoring System       |
|        +-----------------+      +-----------------------------+
|                 |                              |
|        +--------v--------+      +--------------v---------------+
|        |  Auto-Updater   |      |      Security Scanner       |
|        +-----------------+      +-----------------------------+
|                 |                              |
|        +--------v--------+      +--------------v---------------+
|        | Notification    |      |   Data Store & Message Bus   |
|        +-----------------+      +-----------------------------+
+---------------------------------------------------------------+

Repository Layout

.
├── cmd/
│   ├── api/           # REST API server
│   ├── deployer/      # Node deployment CLI
│   ├── monitor/       # Health monitoring service
│   └── updater/       # Update controller
├── pkg/
│   ├── manager/       # Core node logic
│   ├── health/        # Health checks and scoring
│   ├── notify/        # Alerting logic
│   └── types/         # Shared data models
├── web/
│   ├── dashboard/     # HTML, CSS, JS for dashboard
│   └── api-client/    # Frontend API library
├── configs/           # Configuration templates
├── deployments/       # Dockerfiles & compose
├── scripts/           # Setup & test scripts
├── tests/             # Unit & integration tests
├── Makefile           # Build & run commands
└── README.md          # Project documentation

Setup & Installation

Clone the repo

git clone https://github.com/asmit27rai/blockchain-node-manager.git
cd blockchain-node-manager

Copy and edit config

cp configs/config.example.yaml configs/config.yaml
vi configs/config.yaml

Build binaries

make build

Start with Docker Compose

docker-compose up -d

Or run locally

./bin/api --config=configs/config.yaml &
./bin/monitor --config=configs/config.yaml &
./bin/updater run --channel=stable &

CLI Usage

Deploy a node

./bin/deployer create --chain ethereum --count 1 \
  --cpu 2.0 --memory 4Gi --disk 100Gi --network mainnet

List nodes

./bin/deployer list

Stop a node

./bin/deployer stop --node-id <NODE_ID>

Restart a node

./bin/deployer restart --node-id <NODE_ID>

Delete a node

./bin/deployer delete --node-id <NODE_ID>

Run monitoring service

./bin/monitor --config=configs/config.yaml

Run updater service

./bin/updater run --channel=stable

REST API Endpoints

Base URL: http://localhost:8080/api/v1

  • GET /health – Health check
  • GET /nodes – List nodes
  • POST /nodes – Create node
  • GET /nodes/{id} – Get node details
  • GET /nodes/{id}/health – Node health
  • POST /deploy – Deploy multiple nodes
  • GET /stats – System statistics
  • GET /alerts – Active alerts
  • POST /alerts/{id}/resolve – Resolve alert

Web Dashboard

Visit http://localhost:8080 in your browser to access the dashboard.


Testing

Automated setup & tests

chmod +x scripts/setup.sh scripts/test.sh
./scripts/setup.sh
./scripts/test.sh

Go unit tests

make test

Cleanup

Stop Docker services

docker-compose down

Clean binaries

make clean

About

The Blockchain Node Management Platform provides a unified interface to deploy, monitor, update, and scale blockchain nodes across multiple networks. This platform simplifies node lifecycle management and ensures high availability, security, and performance.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published