Skip to content

0xPuncker/cosmos-node

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

21 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

Cosmos Node


๐Ÿš‚๐Ÿš‹๐Ÿš‹๐Ÿš‹๐Ÿš‹๐Ÿš‹
This repository is a one-click deployment solution for running a Cosmos RPC node (provider testnet) on Kubernetes (Kind) with integrated monitoring.Designed for developers and SREs working with cosmoshub ecosystem.


Dashboard

Node Status Overview

Kind Cluster

Cluster Metrics Storage Metrics Network Metrics

Table of Contents

Overview

This project provides a comprehensive setup for deploying a Cosmos-based blockchain node using Kubernetes. It leverages Kind (Kubernetes in Docker) for local cluster management, ensuring a seamless development experience. The monitoring stack, powered by Prometheus and Grafana, offers real-time insights into node performance and health metrics.

Key features include:

  • Automated deployment scripts for easy setup and management.
  • Prometheus rules for alerting on critical metrics such as node downtime and CPU usage.
  • Grafana dashboards for visualizing node status, storage metrics, and network performance.
  • Compatibility with both Linux and MacOS, making it accessible for a wide range of developers.

Important

  • Please note that the cometbft metrics may experience delays before they start providing data to Grafana.
  • This project is compatible with Linux operating systems. Ensure that you have the following Prerequisites.

Features

  • ๐Ÿš€ Single-command local Kubernetes cluster setup via Kind
  • โ‚ฟ Cosmos testnet node with pruning enabled
  • ๐Ÿ“Š Prometheus/Grafana monitoring stack
  • ๐Ÿ“ˆ Real-time dashboard for key node statistics
  • ๐Ÿ”„ Full automation with idempotent deployment script

๐Ÿš€ Getting Started

Prerequisites

Useful tools (Cluster Management):

Installation

  1. Clone the repository:
git clone https://github.com/your-username/cosmos-node.git
  1. Navigate to the project directory:
cd cosmos-node
  1. Install the dependencies of the project:
make install

๐Ÿ‘ฉ๐Ÿปโ€๐Ÿ’ป CLI Usage

Commands

๐Ÿ“ฆ Project Structure

cosmos-node/
โ”œโ”€โ”€ Makefile                 # Automation for build, deployment and management tasks
โ”œโ”€โ”€ README.md               # Project documentation and guide
โ”œโ”€โ”€ docs/                   # Documentation and assets
โ”‚   โ””โ”€โ”€ assets/             # Screenshots, diagrams, and other visual resources
โ”‚       โ”œโ”€โ”€ cli/            # CLI usage examples and screenshots
โ”‚       โ””โ”€โ”€ dashboard/      # Grafana dashboard screenshots
โ”œโ”€โ”€ kind/                   # Kind (Kubernetes in Docker) configuration
โ”œโ”€โ”€ kube/                   # Kubernetes manifests and resources
โ”‚   โ”œโ”€โ”€ base/               # Base Kustomize configuration
โ”‚   โ”œโ”€โ”€ monitoring/         # Prometheus and Grafana setup
โ”‚   โ”‚   โ”œโ”€โ”€ dashboards/     # Custom Grafana dashboards
โ”‚   โ”‚   โ”œโ”€โ”€ metrics/        # Prometheus metrics
โ”‚   โ””โ”€โ”€ overlays/           # Environment-specific Kustomize overlays
โ”‚       โ””โ”€โ”€ dev/            # Development environment configuration
โ”œโ”€โ”€ logs/                   # Application and deployment logs
โ””โ”€โ”€ scripts/                # Utility scripts
    โ”œโ”€โ”€ cluster/            # Cluster management scripts
    โ””โ”€โ”€ tools/              # Useful automation scripts

๐Ÿ› ๏ธ Tech Stack

The project uses:

๐Ÿ“š References

๐Ÿค Contributing

  1. Fork the repository
  2. Create your feature branch: git checkout -b feature/AmazingFeature
  3. Commit your changes: git commit -m 'Add some AmazingFeature'
  4. Push to the branch: git push origin feature/AmazingFeature
  5. Open a Pull Request

๐Ÿ“„ License

This project is licensed under the Apache License 2.0 file for more details.

About

๐Ÿ”ฎ This repository is a one-click deployment solution for running Cosmos nodes.

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published