Modules Overview
Introduction
BLVM node uses a modular architecture where optional features run as separate, process-isolated modules. This extends node functionality without affecting consensus or base node stability.
Available Modules
The following modules are available for blvm-node:
Core Modules
- Lightning Network Module - Lightning Network payment processing with multiple provider support (LNBits, LDK, Stub), invoice verification, and payment state tracking
- Commons Mesh Module - Payment-gated mesh networking with routing fees, traffic classification, and anti-monopoly protection. Designed to support specialized modules (onion routing, mining pool coordination, messaging) via ModuleAPI
- Stratum V2 Module - Stratum V2 mining protocol support with network integration complete and mining pool management
- Datum Module - DATUM Gateway mining protocol module for Ocean pool integration (works with Stratum V2)
- Mining OS Module - Operating system-level mining optimizations and hardware management
Module System Architecture
All modules run in separate processes with IPC communication (see Module System Architecture for details), providing:
- Process Isolation: Each module runs in isolated memory space
- Crash Containment: Module failures don’t affect the base node
- Consensus Isolation: Modules cannot modify consensus rules or UTXO set
- Security: Modules communicate only through well-defined APIs
For detailed information about the module system architecture, see Module System.
Installing Modules
Modules can be installed in several ways:
Via Cargo
cargo install blvm-lightning
cargo install blvm-mesh
cargo install blvm-stratum-v2
cargo install blvm-datum
cargo install blvm-miningos
Via Module Installer
cargo install cargo-blvm-module
cargo blvm-module install blvm-lightning
cargo blvm-module install blvm-mesh
cargo blvm-module install blvm-stratum-v2
cargo blvm-module install blvm-datum
cargo blvm-module install blvm-miningos
Manual Installation
- Build the module:
cargo build --release - Copy the binary to
modules/<module-name>/target/release/ - Create
module.tomlmanifest in the module directory - Restart the node or use runtime module loading
Module Configuration
Each module requires a config.toml file in its module directory. See individual module documentation (Lightning, Mesh, Stratum V2, Datum, Mining OS) for configuration options. For blvm-mesh submodules, see the Mesh Module documentation.
Module Lifecycle
Modules can be:
- Loaded at node startup (if enabled in configuration)
- Loaded at runtime via RPC or module manager API
- Unloaded at runtime without affecting the base node
- Reloaded (hot reload) for configuration updates
See Also
- Module System Architecture - Detailed module system documentation
- Module Development - Guide for developing custom modules
- SDK Overview - SDK introduction and capabilities
- SDK API Reference - Complete SDK API documentation
- SDK Examples - Module development examples
- Node Configuration - Node-level module configuration