⛏️ BLGV Mining Pool Platform
Professional Bitcoin Mining Operations & Pool Management
🎯 Overview
The BLGV Mining Pool Platform is a professional-grade Bitcoin mining pool that provides transparent operations, fair payouts, and enterprise-level mining management as part of the "Mission 1867" initiative to integrate Bitcoin mining with decentralized energy markets.
Key Features
- Transparent Operations: Real-time statistics and mining transparency
- Professional Stratum: Enterprise-grade mining protocol implementation
- Fair Payout System: Multiple payout schemes (PPS, PPLNS, SOLO)
- Energy Integration: "Mission 1867" renewable energy focus
- Cross-Platform Sync: Integration with Treasury and DEX platforms
Production URL
Live Platform: https://pool.blgvbtc.com
🏗️ Architecture
Technology Stack
- Backend: Python 3.9 + Flask
- Frontend: HTML5 + JavaScript + Bootstrap
- Database: PostgreSQL (pool schema)
- Mining Protocol: Stratum v1/v2
- Real-Time: WebSocket mining statistics
- Monitoring: Prometheus + Grafana integration
Directory Structure
platforms/pool/
├── app.py # Main Flask application
├── templates/ # HTML templates
│ ├── dashboard.html # Mining dashboard
│ ├── stats.html # Pool statistics
│ └── miners.html # Miner management
├── static/ # Static assets
│ ├── css/ # Stylesheets
│ ├── js/ # JavaScript
│ └── images/ # Pool assets
├── stratum/ # Stratum server
│ ├── server.py # Stratum implementation
│ ├── jobs.py # Mining job management
│ └── workers.py # Worker management
├── utils/ # Utility functions
│ ├── database.py # Database operations
│ ├── mining.py # Mining calculations
│ └── payouts.py # Payout processing
├── config/ # Configuration
├── tests/ # Testing suite
└── README.md
Database Schema
- Schema:
pool - Main Tables:
miners,workers,shares,blocks,payouts - Real-Time: Mining statistics and worker status
🚀 Getting Started
Development Setup
cd platforms/pool
# Create virtual environment
python -m venv venv
source venv/bin/activate # On Windows: venv\Scripts\activate
# Install dependencies
pip install -r requirements.txt
# Setup environment
cp .env.example .env.development
# Initialize database
python init_db.py
# Start development server
python app.py
# Pool runs on: http://localhost:3003
# Stratum server: localhost:3333
Environment Variables
# Development
FLASK_ENV=development
DATABASE_URL=postgresql://localhost:5432/blgv_development
POOL_FEE=2.0
STRATUM_PORT=3333
# Production (see docs/ENVIRONMENT_SECRETS.md)
FLASK_ENV=production
POOL_DATABASE_URL=postgresql://doadmin:...
BTCPAY_API_KEY=your_btcpay_key
SESSION_SECRET=secure_production_secret
⛏️ Mining Features
1. Mining Pool Management
Component: PoolDashboard.html
Professional mining interface:
- Real-time hashrate monitoring
- Worker status and performance
- Pool statistics and luck analysis
- Payout history and projections
2. Stratum Server
Implementation: stratum/server.py
Enterprise-grade mining protocol:
- Stratum v1 and v2 support
- Variable difficulty adjustment
- Mining job distribution
- Share validation and recording
3. Payout System
Component: PayoutProcessor.py
Fair and transparent payouts:
- PPS (Pay Per Share) - guaranteed payments
- PPLNS (Pay Per Last N Shares) - pool luck based
- SOLO mining - full block rewards
- Automatic payout processing
4. Mission 1867 Integration
Component: EnergyIntegration.py
Renewable energy focus:
- Energy source tracking
- Carbon footprint monitoring
- Grid stabilization participation
- Renewable energy certificates
🔗 API Endpoints
Pool Statistics
GET /api/stats # Pool statistics
GET /api/hashrate # Real-time hashrate
GET /api/blocks # Recent blocks found
GET /api/luck # Pool luck analysis
Miner Management
POST /api/miners/register # Register new miner
GET /api/miners/:address # Miner statistics
GET /api/workers/:id # Worker details
POST /api/payouts/request # Request payout
Mining Operations
GET /api/difficulty # Current difficulty
GET /api/jobs # Available mining jobs
POST /api/shares # Submit mining shares
GET /api/earnings/:address # Miner earnings
Energy Integration
GET /api/energy/sources # Energy source mix
GET /api/carbon/footprint # Carbon impact metrics
POST /api/energy/report # Energy usage reporting
🔐 Security & Compliance
Mining Security
- DDoS Protection: Rate limiting and traffic filtering
- Share Validation: Cryptographic share verification
- Address Verification: Bitcoin address validation
- Anti-Cheat: Share difficulty monitoring
Financial Security
- Multi-Signature Payouts: Enhanced payout security
- Cold Storage: Majority of funds in cold storage
- Audit Trail: Complete transaction logging
- Regulatory Compliance: Mining regulation adherence
📱 Mobile Integration
SDK Integration
from blgv_sdk import PoolSDK
# Initialize pool SDK
pool_sdk = PoolSDK(
api_url="https://pool.blgvbtc.com",
api_key="your_api_key"
)
# Get miner statistics
miner_stats = await pool_sdk.get_miner_stats(bitcoin_address)
# Monitor real-time hashrate
for hashrate_update in pool_sdk.subscribe_hashrate():
update_mobile_display(hashrate_update)
Mobile Features
- Mining Monitoring: Real-time miner performance
- Payout Notifications: Push notifications for payouts
- Energy Dashboard: Mission 1867 energy tracking
- Pool Statistics: Comprehensive pool analytics
🔄 Real-Time Monitoring
WebSocket Integration
// Real-time pool statistics
const ws = new WebSocket('/ws/pool-stats');
ws.on('hashrate_update', (data) => {
updateHashrateDisplay(data);
});
ws.on('block_found', (block) => {
notifyBlockFound(block);
});
ws.on('payout_processed', (payout) => {
updatePayoutHistory(payout);
});
Monitoring Metrics
- Pool Hashrate: Real-time network contribution
- Active Workers: Connected mining equipment
- Block Discovery: Recent blocks found by pool
- Payout Processing: Automatic payout execution
🧪 Testing
Testing Strategy
# Unit tests
python -m pytest tests/unit/
# Integration tests
python -m pytest tests/integration/
# Stratum protocol tests
python -m pytest tests/stratum/
# Load testing
python -m pytest tests/load/
Test Coverage
- Mining Calculations: Share difficulty and rewards
- Payout Processing: Payment calculation accuracy
- Stratum Protocol: Mining job distribution
- Database Operations: Pool statistics and history
🚀 Deployment
Production Deployment
# Sync to production repo
./ops/deploy/sync-to-production.sh pool
# Monitor deployment
./ops/deploy/sync-to-production.sh --status
# Verify pool functionality
curl -s https://pool.blgvbtc.com/api/stats
Health Checks
- Endpoint:
/health - Stratum Server: Mining protocol connectivity
- Database: Pool statistics and worker data
- Bitcoin Node: Blockchain connectivity
- Payout System: Payment processing status
📈 Pool Analytics
Performance Metrics
- Pool Efficiency: Share acceptance rate
- Block Discovery: Finding frequency and luck
- Miner Distribution: Geographic and hardware analysis
- Energy Efficiency: Mission 1867 sustainability metrics
Financial Metrics
- Revenue Distribution: Pool fees and miner payouts
- Payout Accuracy: Payment precision and timing
- Cost Analysis: Operational cost breakdown
- Profitability: Per-TH/s earnings analysis
🛠️ Development Guidelines
Mining Code Standards
# Mining calculation template
def calculate_share_difficulty(target_bits: int) -> float:
"""Calculate share difficulty from target bits."""
max_target = 0x00000000FFFF0000000000000000000000000000000000000000000000000000
target = target_bits
return max_target / target
def validate_share(share_data: dict) -> bool:
"""Validate submitted mining share."""
# Share validation logic
# Difficulty verification
# Address verification
return True
Database Operations
# Database operation template
async def record_share(worker_id: str, difficulty: float, timestamp: datetime):
"""Record mining share in database."""
async with pool.acquire() as conn:
await conn.execute(
"INSERT INTO shares (worker_id, difficulty, timestamp) VALUES ($1, $2, $3)",
worker_id, difficulty, timestamp
)
🐛 Troubleshooting
Common Issues
Stratum Connection Failed
# Check stratum server status
netstat -an | grep 3333
# Test stratum connectivity
telnet pool.blgvbtc.com 3333
# Check stratum server logs
tail -f logs/stratum.log
Share Rejection Issues
# Check difficulty settings
curl https://pool.blgvbtc.com/api/difficulty
# Verify worker configuration
curl https://pool.blgvbtc.com/api/workers/WORKER_ID
# Check share validation logs
grep "share_rejected" logs/pool.log
Payout Delays
# Check payout queue
curl https://pool.blgvbtc.com/api/payouts/pending
# Verify Bitcoin node connectivity
bitcoin-cli getblockchaininfo
# Check payout processing logs
tail -f logs/payouts.log
🔧 Configuration
Mining Parameters
# Pool settings
POOL_FEE=2.0
MIN_PAYOUT=0.001
SHARE_DIFFICULTY=1024
VARDIFF_ENABLED=true
# Stratum settings
STRATUM_PORT=3333
MAX_CONNECTIONS=10000
JOB_REFRESH_INTERVAL=30
# Payout settings
PAYOUT_SCHEME=PPLNS
PAYOUT_FREQUENCY=daily
AUTO_PAYOUT_THRESHOLD=0.01
Performance Settings
# Database
DB_POOL_SIZE=50
DB_POOL_TIMEOUT=30000
# Redis caching
REDIS_CACHE_TTL=300
SHARE_CACHE_SIZE=100000
# Monitoring
STATS_UPDATE_INTERVAL=10000
HASHRATE_WINDOW=600
📚 Resources
Documentation
- Stratum Protocol Specification
- Mining Pool Economics
- Mission 1867 Energy Integration
- Bitcoin Mining Best Practices
External Resources
🎯 Roadmap
Current Features ✅
- Professional Stratum v1 server
- Multiple payout schemes
- Real-time monitoring
- Cross-platform integration
- Mission 1867 energy tracking
Planned Features 🚀
-
Q1 2025
- Stratum v2 implementation
- Advanced difficulty algorithms
- Enhanced energy monitoring
- Mobile miner management
-
Q2 2025
- Lightning Network payouts
- Decentralized pool architecture
- Advanced analytics dashboard
- Enterprise mining contracts
-
Q3 2025
- AI-powered optimization
- Renewable energy trading
- Cross-pool collaboration
- Institutional mining services
Maintainer: Pool Team
Last Updated: January 2025
Version: 1.5.0