This repository contains configurations for blockchain protocol nodes and their associated clients. It includes protocol implementations and client software configurations for use with the BlockJoy platform.
Blockvisor Protocols is a comprehensive collection of blockchain node implementations designed to run on the BlockJoy platform. This repository provides standardized, production-ready configurations for deploying and managing a wide variety of blockchain protocols.
Key features:
- Containerized blockchain node implementations for 20+ protocols
- Standardized configuration and deployment patterns
- Resource-optimized variants (full, archive, etc.)
- Integrated with BlockJoy platform services
.
├── base-images/ # Base images with common utilities
│ ├── debian-bookworm/ # Debian Bookworm base image
│ └── ... # Other base images
├── clients/ # Client-specific Dockerfiles and configurations
│ ├── consensus/ # Consensus client implementations
│ │ ├── lighthouse/ # Lighthouse client
│ │ ├── heimdall/ # Heimdall client
│ │ └── ... # Other consensus clients
│ └── exec/ # Execution client implementations
│ ├── erigon/ # Erigon client
│ ├── reth/ # Reth client
│ ├── geth/ # Go-Ethereum client
│ └── ... # Other execution clients
├── docs/ # Documentation
│ ├── HOWTO.md # Protocol development guide
│ └── example/ # Example implementation
├── protocols/ # Protocol configurations
│ ├── ethereum/ # Ethereum protocol configurations
│ │ ├── ethereum-erigon/ # Erigon-based Ethereum node
│ │ └── ethereum-reth/ # Reth-based Ethereum node
│ ├── avalanche/ # Avalanche protocol configurations
│ ├── cosmos/ # Cosmos protocol configurations
│ └── ... # Other protocol configurations
This repository includes implementations for numerous blockchain protocols, including:
- Ethereum and EVM-compatible chains (Optimism, Arbitrum, Base, etc.)
- Layer 1 blockchains (Avalanche, Near, Sui, etc.)
- Layer 2 solutions (Arbitrum, Optimism, Polygon, etc.)
- Specialized protocols (Tellor, SQD, etc.)
Each protocol implementation follows a standardized structure and includes:
- Container image definitions
- Protocol configuration metadata (
babel.yaml) - Configuration templates and runtime scripts
To create a new protocol implementation:
- Ensure clients are available in the
clients/directory - Create a new directory in
protocols/<protocol-name>/<protocol-name>-<client>/ - Create required files:
babel.yaml- Protocol metadata and configurationmain.rhai- Main protocol interfaceaux.rhai- Auxiliary functionsDockerfile- Packaged deployment and application filestemplates/- Configuration templates
See the Protocol Development Guide and example in docs/example/ for a detailed walkthrough.
Protocol images use a standardized runtime interface based on:
- Metadata configuration (
babel.yaml) - Runtime interface (
main.rhaiand other Rhai scripts) - Packaged deployment and application files (
Dockerfile)
The BlockJoy platform uses this interface to:
- Plan and allocate resources for node deployments
- Configure networking and firewall rules
- Initialize and manage protocol services
- Monitor node health and status
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add some amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
This project is licensed under the terms specified in the LICENSE file.