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.
- 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.
+-------------------+
| 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 |
| +-----------------+ +-----------------------------+
+---------------------------------------------------------------+
.
├── 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
git clone https://github.com/asmit27rai/blockchain-node-manager.git
cd blockchain-node-manager
cp configs/config.example.yaml configs/config.yaml
vi configs/config.yaml
make build
docker-compose up -d
./bin/api --config=configs/config.yaml &
./bin/monitor --config=configs/config.yaml &
./bin/updater run --channel=stable &
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
Base URL: http://localhost:8080/api/v1
GET /health
– Health checkGET /nodes
– List nodesPOST /nodes
– Create nodeGET /nodes/{id}
– Get node detailsGET /nodes/{id}/health
– Node healthPOST /deploy
– Deploy multiple nodesGET /stats
– System statisticsGET /alerts
– Active alertsPOST /alerts/{id}/resolve
– Resolve alert
Visit http://localhost:8080
in your browser to access the dashboard.
chmod +x scripts/setup.sh scripts/test.sh
./scripts/setup.sh
./scripts/test.sh
make test
Stop Docker services
docker-compose down
Clean binaries
make clean