fluentum

command module
v0.2.0-alpha Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jul 12, 2025 License: Apache-2.0 Imports: 7 Imported by: 0

README ΒΆ

FLUMX Logo

Fluentum Core

Go Version License Commits Code Size CometBFT Cosmos SDK Mainnet Ready

⚠️ NOTICE: This codebase is now fully migrated to CometBFT v0.38+ and ABCI 2.0 (ABCI++).

  • All ABCI interfaces, types, and methods now use the new ABCI 2.0 (ABCI++) model.
  • Legacy methods (BeginBlock, DeliverTx, EndBlock, etc.) and types (ResponseDeliverTx, etc.) have been removed. Now uses FinalizeBlock for block-level transaction processing.
  • All block execution and event logic now uses FinalizeBlock, ExecTxResult, and the new event structure.
  • If you are upgrading from Tendermint/ABCI 1.0, read the migration notes below and update your application, tests, and integrations accordingly.
  • See the Migration Guide and docs/abci/README.md for details.

Next-Generation Hybrid Blockchain Platform - High-performance, quantum-resistant, and privacy-enabled blockchain with cross-chain interoperability.

πŸš€ Overview

Fluentum Core is a production-ready blockchain platform that combines Delegated Proof of Stake (DPoS) with Zero-Knowledge Rollups (ZK-Rollups) for unprecedented performance and security. Built on CometBFT v0.38.6 consensus with quantum-resistant cryptography and cross-chain capabilities.

Key Differentiators
  1. πŸ”„ Hybrid Consensus: DPoS + ZK-Rollups for scalability and security
  2. πŸ” Quantum-Resistant: Post-quantum cryptography (Dilithium signatures)
  3. 🌐 Cross-Chain: Native interoperability with EVM and SVM chains
  4. ⚑ High Performance: Optimized for 10,000+ TPS
  5. πŸ”’ Privacy: Zero-knowledge proof integration
  6. 🎯 Enterprise Ready: Production-grade with comprehensive tooling
  7. πŸš€ ABCI++: Full support for CometBFT's ABCI++ features

πŸ”„ Migration to CometBFT

This project has been successfully migrated from Tendermint Core to CometBFT v0.38.6 with Cosmos SDK v0.50.6.

Key Migration Changes
  • βœ… CometBFT v0.38.6: Drop-in replacement for Tendermint v0.34+ (Go 1.24 compatible)
  • βœ… Cosmos SDK v0.50.6: Compatible SDK version for CometBFT v0.38.6
  • βœ… cometbft-db v0.9.1: Compatible database backend
  • βœ… ABCI++ Support: PrepareProposal, ProcessProposal, ExtendVote, VerifyVoteExtension
  • βœ… Proposer-Based Timestamps (PBTS): Enhanced timestamp handling
  • βœ… Nop Mempool: Application-managed transaction handling
  • βœ… Pebble Database: High-performance storage backend
  • βœ… Environment Variables: TMHOME β†’ CMTHOME
Quick Migration
# Automatic migration (Linux/macOS)
chmod +x scripts/migrate-config.sh
./scripts/migrate-config.sh

# Windows PowerShell
.\scripts\migrate-config.ps1

# Manual migration
go install github.com/cometbft/confix@latest
confix migrate --home ~/.cometbft --target-version v0.38.6

For detailed migration instructions, see Migration Guide below.

πŸ“Š Project Statistics

Metric Value
Repository Size ~150 MB (compressed)
Source Code ~60 MB (uncompressed)
Go Files 682 files (~5.4 MB)
Total Files 1,205 files
Directories 319
Git Commits 8,761+
Languages Go (82.2%), Solidity (2.6%), TeX (6.7%)
CometBFT Version v0.38.6
Cosmos SDK Version v0.50.6
cometbft-db Version v0.9.1
Architecture Components
fluentum/
β”œβ”€β”€ πŸ“ consensus/          # Hybrid consensus (DPoS + ZK-Rollups)
β”œβ”€β”€ πŸ“ crypto/             # Quantum-resistant cryptography
β”œβ”€β”€ πŸ“ fluentum/           # Core Fluentum-specific modules
β”œβ”€β”€ πŸ“ contracts/          # Smart contracts (Solidity)
β”œβ”€β”€ πŸ“ circuits/           # Zero-knowledge circuits
β”œβ”€β”€ πŸ“ cmd/fluentum/       # Main executable
β”œβ”€β”€ πŸ“ docs/               # Comprehensive documentation
β”œβ”€β”€ πŸ“ scripts/            # Migration and utility scripts
└── πŸ“ networks/           # Network configurations

πŸš€ Quick Start

Prerequisites

⚠️ Important: Go Version Requirements

The project currently supports Go 1.24.4+:

# Verify Go version
go version
# Expected: go version go1.24.4 linux/amd64

# Install Go 1.24.4
wget https://go.dev/dl/go1.24.4.linux-amd64.tar.gz
sudo rm -rf /usr/local/go && sudo tar -C /usr/local -xzf go1.24.4.linux-amd64.tar.gz
export PATH=$PATH:/usr/local/go/bin

Note: The project requires Go 1.24.4+ for compatibility with CometBFT v0.38.6 and Cosmos SDK v0.50.6.

System Requirements
  • Go: 1.24.4+ (required)
  • Git: Latest version
  • System: Ubuntu 20.04+ (recommended) or Windows/macOS
πŸš€ Automated Installation (Ubuntu)
# Clone the repository
git clone https://github.com/fluentum-chain/fluentum.git
cd fluentum

# Run automated installation
chmod +x install-ubuntu.sh
./install-ubuntu.sh
πŸ”§ Manual Installation
# Clone the repository
git clone https://github.com/fluentum-chain/fluentum.git
cd fluentum

# Install dependencies (pinned for Go 1.20 compatibility)
go mod tidy

# Build with CometBFT and PebbleDB
make build

# Initialize a new node
./build/fluentumd init --home ~/.cometbft

# Start the node
./build/fluentumd start --home ~/.cometbft
βœ… Verify Installation
# Check version
./build/fluentumd version

# Initialize a new node
./build/fluentumd init --home ~/.cometbft

# Start the node
./build/fluentumd start --home ~/.cometbft

# Show all commands
./build/fluentumd --help

πŸ”§ Dependency Management

Current Dependency Versions

The project uses pinned dependency versions for optimal compatibility:

Dependency Version Go Compatibility
CometBFT v0.38.6 Go 1.24+
Cosmos SDK v0.50.6 Go 1.24+
gRPC v1.73.0 Go 1.24+
golang.org/x/exp v0.0.0-20231110203233-9a3e6036ecaa Go 1.24+
golang.org/x/sys v0.15.0 Go 1.24+
cosmossdk.io/log v1.3.1 Go 1.24+
cosmossdk.io/store v1.1.0 Go 1.24+
Upgrading Dependencies

The project is currently configured for Go 1.24.4+ compatibility. To use newer dependencies:

# 1. Ensure Go 1.24.4+ is installed
go version

# 2. Update dependencies
go mod tidy

# 3. Rebuild
make build

Note: The project requires Go 1.24.4+ for compatibility with CometBFT v0.38.6 and Cosmos SDK v0.50.6.

πŸš€ Mainnet Deployment

Production Readiness

Fluentum Core is now mainnet-ready with comprehensive deployment documentation:

Deployment Scripts
Quick Deployment
# 1. Follow the quick deployment guide
# See: QUICK_DEPLOYMENT_GUIDE.md

# 2. Run backup before deployment
./scripts/backup_fluentum.sh

# 3. Deploy and verify
./scripts/health_check.sh

πŸ”„ Migration Guide

For Existing Users

If you're upgrading from a previous version with Tendermint Core:

Linux/macOS:

chmod +x scripts/migrate-config.sh
./scripts/migrate-config.sh

Windows:

.\scripts\migrate-config.ps1
2. Manual Migration
# 1. Install confix
go install github.com/cometbft/confix@latest

# 2. Set environment variables
export CMTHOME="$HOME/.cometbft"
export TMHOME="$HOME/.tendermint"

# 3. Migrate configuration
confix migrate --home $CMTHOME --target-version v0.38.6

# 4. Update dependencies
go mod tidy

# 5. Rebuild
make build
3. Environment Variables

Update your shell profile:

# Remove old TMHOME
unset TMHOME

# Add new CMTHOME
export CMTHOME="$HOME/.cometbft"

Windows:

# Remove TMHOME
[Environment]::SetEnvironmentVariable("TMHOME", $null, "User")

# Add CMTHOME
[Environment]::SetEnvironmentVariable("CMTHOME", "$env:USERPROFILE\.cometbft", "User")
Configuration Changes

Key configuration updates in config/config.toml:

# Database backend (now pebble)
db_backend = "pebble"

# Mempool (now nop for application-managed transactions)
[mempool]
version = "nop"
recheck = false
broadcast = false

# Consensus with PBTS
[consensus]
pbts_enable = true
signature_scheme = "ed25519"
timeout_commit = "5s"

# Quantum features
[quantum]
enabled = true
mode = "dilithium3"

🎯 Core Features

πŸ”„ Hybrid Consensus Engine
  • DPoS: Delegated Proof of Stake for fast finality
  • ZK-Rollups: Zero-knowledge proofs for scalability
  • Hybrid Router: Intelligent transaction routing
  • ABCI++: Full CometBFT ABCI++ support
πŸ” Quantum-Resistant Security
  • Dilithium Signatures: Post-quantum cryptography
  • Lattice-Based Crypto: Future-proof security
  • Multi-Signature Support: Enhanced security models
🌐 Cross-Chain Interoperability
  • EVM Compatibility: Ethereum Virtual Machine support
  • SVM Support: Solana Virtual Machine integration
  • Bridge Infrastructure: Seamless asset transfers
⚑ Performance Optimizations
  • High Throughput: 10,000+ TPS target
  • Fast Finality: Sub-second block finality
  • Optimized Networking: P2P optimization
  • Pebble Database: High-performance storage
πŸ”’ Privacy Features
  • Zero-Knowledge Proofs: Privacy-preserving transactions
  • zk-KYC: Privacy-compliant identity verification
  • Confidential Transactions: Optional transaction privacy
πŸš€ ABCI++ Features

The application implements all ABCI++ methods for enhanced functionality:

  • PrepareProposal: Custom transaction selection and ordering
  • ProcessProposal: Transaction validation during proposal processing
  • ExtendVote: Vote extensions for side transactions
  • VerifyVoteExtension: Validation of vote extensions from other validators

πŸ—οΈ Architecture

Core Components
Component Description Status
Consensus Engine CometBFT v0.38.6 + Hybrid DPoS βœ… Production
Quantum Crypto Dilithium signatures βœ… Implemented
Cross-Chain Bridge EVM/SVM interoperability πŸ”„ Development
Privacy Layer ZK-proof integration πŸ”„ Development
Smart Contracts Solidity contracts βœ… Ready
RPC Interface JSON-RPC & gRPC βœ… Complete
ABCI++ Full ABCI++ support βœ… Complete
Technology Stack
  • Consensus: CometBFT v0.38.6 + Custom DPoS
  • Application Framework: Cosmos SDK v0.50.6
  • Database: cometbft-db v0.9.1
  • Cryptography: Dilithium, Ed25519, Secp256k1
  • Smart Contracts: Solidity (EVM) + Rust (SVM)
  • Networking: P2P with libp2p
  • Storage: PebbleDB (recommended), LevelDB, RocksDB
  • API: JSON-RPC, gRPC, WebSocket

πŸ“š Documentation

Core Documentation
Setup and Configuration
Technical Documentation

πŸ§ͺ Development

Build Commands
# Build for development (with PebbleDB - recommended)
make build

# Build with specific tags
make build-tags="pebble"

# Run tests
make test

# Format code
make format

# Lint code
make lint

# Generate protobuf
make proto-gen

# Build for specific platform
make build-linux
Development Workflow
# 1. Clone and setup
git clone https://github.com/fluentum-chain/fluentum.git
cd fluentum

# 2. Install dependencies
go mod tidy

# 3. Build
make build

# 4. Test
make test

# 5. Run locally
./build/fluentumd start --home ~/.cometbft

🀝 Contributing

  1. Fork the repository
  2. Create a feature branch
  3. Make your changes
  4. Add tests
  5. Submit a pull request

πŸ“„ License

This project is licensed under the Apache 2.0 License - see the LICENSE file for details.

πŸ†˜ Support


Fluentum Core - Trade Crypto Fluidly πŸš€

Website β€’ Documentation β€’ Community

πŸ“‹ System Requirements

Development Environment
  • Go: 1.24.4+ (required)
  • Git: Latest version
  • Make: Build system
  • Docker: For containerized development (optional)
Production Server
  • OS: Ubuntu 20.04+ / CentOS 8+ / RHEL 8+
  • Go: 1.24.4+ (required)
  • Memory: 8GB+ RAM
  • Storage: 100GB+ SSD (recommended)
  • Network: Stable internet connection
Dependency Compatibility
Go Version CometBFT Cosmos SDK gRPC Status
1.24.x v0.38.6 v0.50.6 v1.73.0 βœ… Required
1.25+ v0.38+ v0.50+ v1.73+ βœ… Supported

Note: The project requires Go 1.24.4+ for compatibility with CometBFT v0.38.6 and Cosmos SDK v0.50.6.

🧬 Quantum Migration Path

graph LR
    A["ECDSA Validators"] --> B["Hybrid ECDSA+Dilithium"]
    B --> C["Dilithium-Only"]

Migration Notice

  • Cosmos SDK: v0.50.x
  • CometBFT: v0.38.x
  • IAVL: v1.0.x
  • ABCI++: Now uses FinalizeBlock for all block-level transaction processing. All references to DeliverTx, BeginBlock, and EndBlock have been removed.

Dependency Management

  • Run go mod tidy

Documentation ΒΆ

The Go Gopher

There is no documentation for this package.

Directories ΒΆ

Path Synopsis
client/mocks
Manual mock for ABCI Client interface
Manual mock for ABCI Client interface
server
Package server is used to start a new ABCI server.
Package server is used to start a new ABCI server.
Package Behaviour provides a mechanism for reactors to report behaviour of peers.
Package Behaviour provides a mechanism for reactors to report behaviour of peers.
v0
v1
v2
cmd
fluentum
The content you provided from node 3's main.go will be placed here
The content you provided from node 3's main.go will be placed here
merkle
Package merkle computes a deterministic minimal height Merkle tree hash.
Package merkle computes a deterministic minimal height Merkle tree hash.
xchacha20poly1305
Package xchacha20poly1305 creates an AEAD using hchacha, chacha, and poly1305 This allows for randomized nonces to be used in conjunction with chacha.
Package xchacha20poly1305 creates an AEAD using hchacha, chacha, and poly1305 This allows for randomized nonces to be used in conjunction with chacha.
Package evidence handles all evidence storage and gossiping from detection to block proposal.
Package evidence handles all evidence storage and gossiping from detection to block proposal.
app
libs
cli
events
Package events - Pub-Sub in go with event caching
Package events - Pub-Sub in go with event caching
flowrate
Package flowrate provides the tools for monitoring and limiting the flow rate of an arbitrary data stream.
Package flowrate provides the tools for monitoring and limiting the flow rate of an arbitrary data stream.
json
Package json provides functions for marshaling and unmarshaling JSON in a format that is backwards-compatible with Amino JSON encoding.
Package json provides functions for marshaling and unmarshaling JSON in a format that is backwards-compatible with Amino JSON encoding.
log
net
os
pubsub
Package pubsub implements a pub-sub model with a single publisher (Server) and multiple subscribers (clients).
Package pubsub implements a pub-sub model with a single publisher (Server) and multiple subscribers (clients).
pubsub/query
Package query provides a parser for a custom query format:
Package query provides a parser for a custom query format:
package light provides a light client implementation.
package light provides a light client implementation.
rpc
v0
TODO: Better handle abci client errors.
TODO: Better handle abci client errors.
v1
Package node is the main entry point, where the Node struct, which represents a full node, is defined.
Package node is the main entry point, where the Node struct, which represents a full node, is defined.
p2p
pex
upnp
Taken from taipei-torrent.
Taken from taipei-torrent.
Package privval provides different implementations of the types.PrivValidator.
Package privval provides different implementations of the types.PrivValidator.
proto
gogoproto
Package gogoproto provides gogoproto compatibility
Package gogoproto provides gogoproto compatibility
rpc
core
Package core defines the Tendermint RPC endpoints.
Package core defines the Tendermint RPC endpoints.
jsonrpc
HTTP RPC server supporting calls via uri params, jsonrpc over HTTP, and jsonrpc over websockets
HTTP RPC server supporting calls via uri params, jsonrpc over HTTP, and jsonrpc over websockets
jsonrpc/server
Commons for HTTP handling
Commons for HTTP handling
scripts
indexer/sink/psql
Package psql implements an event sink backed by a PostgreSQL database.
Package psql implements an event sink backed by a PostgreSQL database.
txindex/mocks
Package mocks is a generated GoMock package.
Package mocks is a generated GoMock package.
stubs
test
app
tools

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL