Files
lnflow/README.md
2025-07-22 14:04:40 +02:00

164 lines
4.7 KiB
Markdown

# Lightning Policy Manager
Next-generation Lightning Network channel fee optimization with advanced inbound fee strategies, machine learning, and automatic rollback protection.
## Overview
Lightning Policy Manager is an intelligent fee management system that enhances the popular **charge-lnd** tool with:
- **Advanced inbound fee strategies** (beyond simple discounts)
- **Automatic rollback protection** for safety
- **Machine learning optimization** from historical data
- **Revenue maximization focus** vs simple rule-based approaches
- **High-performance gRPC integration** with REST fallback
- **Comprehensive security** with method whitelisting
- **Complete charge-lnd compatibility**
## Quick Start
### 1. Setup Environment
```bash
# Create virtual environment
python3 -m venv venv
source venv/bin/activate
# Install dependencies
pip install -r requirements.txt
# Setup secure gRPC (optional, for better performance)
./scripts/setup_grpc.sh
```
### 2. Generate Configuration
```bash
# Create a sample policy configuration
./lightning_policy.py generate-config my_policy.conf
```
### 3. Test Policies (Dry Run)
```bash
# Test your policies without applying changes
./lightning_policy.py -c my_policy.conf apply --dry-run
```
### 4. Apply Policies
```bash
# Apply fee changes via high-performance gRPC
./lightning_policy.py -c my_policy.conf apply
# Or use REST API
./lightning_policy.py --prefer-rest -c my_policy.conf apply
```
## Key Features
### Intelligent Inbound Fee Strategies
```ini
[balance-drain-channels]
chan.min_ratio = 0.8 # High local balance
strategy = balance_based
inbound_fee_ppm = -100 # Encourage inbound flow
```
### Automatic Rollback Protection
```ini
[revenue-channels]
strategy = revenue_max
enable_auto_rollback = true # Monitor performance
rollback_threshold = 0.25 # Rollback if revenue drops >25%
```
### High-Performance gRPC
- **10x faster** fee updates than REST
- **Native LND interface** (same as charge-lnd)
- **Automatic fallback** to REST if gRPC unavailable
- **Secure by design** - only fee management operations allowed
### Advanced Analytics
- **Policy performance tracking**
- **Revenue optimization reports**
- **Channel analysis and insights**
- **Historical data learning**
## Security Features
- **Method whitelisting** - only fee management operations allowed
- **Runtime validation** - dangerous operations blocked
- **Comprehensive audit** - all operations logged
- **No fund movement** - only channel fee updates
- **Production-ready** - enterprise security standards
## Documentation
- **[Lightning Policy Guide](docs/LIGHTNING_POLICY_README.md)** - Complete feature overview
- **[Security Analysis](docs/SECURITY_ANALYSIS_REPORT.md)** - Comprehensive security audit
- **[gRPC Integration](docs/GRPC_UPGRADE.md)** - High-performance setup guide
- **[Experiment Guide](docs/EXPERIMENT_GUIDE.md)** - Advanced experimentation
## CLI Commands
```bash
# Policy Management
./lightning_policy.py apply # Apply policies
./lightning_policy.py status # Show policy status
./lightning_policy.py rollback # Check/execute rollbacks
./lightning_policy.py daemon --watch # Run in daemon mode
# Analysis & Reports
./lightning_policy.py report # Performance report
./lightning_policy.py test-channel # Test specific channel
# Configuration
./lightning_policy.py generate-config # Create sample config
```
## Configuration Options
```bash
# gRPC (preferred - 10x faster)
--lnd-grpc-host localhost:10009 # LND gRPC endpoint
--prefer-grpc # Use gRPC (default)
# REST API (fallback)
--lnd-rest-url https://localhost:8080 # LND REST endpoint
--prefer-rest # Force REST API
# Authentication
--lnd-dir ~/.lnd # LND directory
--macaroon-path admin.macaroon # Macaroon file
```
## Testing
```bash
# Run tests
python -m pytest test_optimizer.py
# Test with your configuration
./lightning_policy.py -c your_config.conf apply --dry-run
# Test specific channel
./lightning_policy.py -c your_config.conf test-channel CHANNEL_ID
```
## Contributing
1. Fork the repository
2. Create a feature branch
3. Make your changes
4. Add tests for new functionality
5. Ensure security standards are maintained
6. Submit a pull request
## License
This project enhances and builds upon the open-source charge-lnd tool while adding significant new capabilities for Lightning Network fee optimization.
## Related Projects
- **[charge-lnd](https://github.com/accumulator/charge-lnd)** - Original fee management tool
- **[LND](https://github.com/lightningnetwork/lnd)** - Lightning Network Daemon
---
**Supercharge your Lightning Network channel fee management with intelligent, automated optimization!**