The Nim Blockchain Node is a modular, high-performance blockchain node implementation written in the Nim programming language, designed for security, scalability, and maintainability. It provides a clear separation of concerns through distinct layers and leverages advanced cryptographic techniques.
- Core Engine Layer: Handles consensus mechanisms, virtual machine execution, and state management.
- Cryptography Layer: Provides key management, signature verification, and zero-knowledge proofs.
- Network Layer: Manages peer-to-peer communication, mempool handling, and block propagation.
- Storage Layer: Offers efficient and reliable blockchain, index, and state data storage.
- Nim 2.2.2+: Download from nim-lang.org
- Git: For cloning the repository
git clone https://github.com/dkrizhanovskyi/nim-blockchain-node.git
cd nim-blockchain-node
nimble install# Build the node daemon
nimble build
# Build the CLI tool
nimble cli
# Build everything
nimble buildAll# Run the blockchain node daemon
.\main.exe
# Or use the interactive CLI
.\blockchain_cli.exe --helpThe project includes a comprehensive CLI for easy blockchain interaction:
# Start and check node status
.\blockchain_cli.exe node start
.\blockchain_cli.exe node status
# Create accounts and transfer funds
.\blockchain_cli.exe account create
.\blockchain_cli.exe account transfer genesis [address] 1000
# View blockchain data
.\blockchain_cli.exe block latest
.\blockchain_cli.exe transaction listSee CLI_README.md for complete CLI documentation.
Run the interactive demo to see the CLI in action:
# Windows PowerShell
.\demo_cli.ps1
# Linux/macOS
./demo_cli.shRun tests to ensure reliability:
nimble testExplore more detailed documentation in the docs folder:
Follow security best practices outlined in the documentation and regularly update cryptographic dependencies.
We welcome contributions! See Contributing Guide for more details.