mirror of
https://github.com/aljazceru/lnflow.git
synced 2026-01-21 04:54:20 +01:00
Advanced Lightning Network channel fee optimization system with: ✅ Intelligent inbound fee strategies (beyond charge-lnd) ✅ Automatic rollback protection for safety ✅ Machine learning optimization from historical data ✅ High-performance gRPC + REST API support ✅ Enterprise-grade security with method whitelisting ✅ Complete charge-lnd compatibility Features: - Policy-based fee management with advanced strategies - Balance-based and flow-based optimization algorithms - Revenue maximization focus vs simple rule-based approaches - Comprehensive security analysis and hardening - Professional repository structure with proper documentation - Full test coverage and example configurations Architecture: - Modern Python project structure with pyproject.toml - Secure gRPC integration with REST API fallback - Modular design: API clients, policy engine, strategies - SQLite database for experiment tracking - Shell script automation for common tasks Security: - Method whitelisting for LND operations - Runtime validation of all gRPC calls - No fund movement capabilities - fee management only - Comprehensive security audit completed - Production-ready with enterprise standards 🤖 Generated with Claude Code Co-Authored-By: Claude <noreply@anthropic.com>
91 lines
2.1 KiB
Plaintext
91 lines
2.1 KiB
Plaintext
|
|
# Improved charge-lnd configuration with advanced inbound fee support
|
|
# This configuration demonstrates the enhanced capabilities over original charge-lnd
|
|
|
|
[default]
|
|
# Non-final policy that sets defaults
|
|
final = false
|
|
base_fee_msat = 1000
|
|
fee_ppm = 1000
|
|
time_lock_delta = 80
|
|
strategy = static
|
|
|
|
[high-capacity-active]
|
|
# High capacity channels that are active get revenue optimization
|
|
chan.min_capacity = 5000000
|
|
activity.level = high, medium
|
|
strategy = revenue_max
|
|
fee_ppm = 1500
|
|
inbound_fee_ppm = -50
|
|
enable_auto_rollback = true
|
|
rollback_threshold = 0.2
|
|
learning_enabled = true
|
|
priority = 10
|
|
|
|
[balance-drain-channels]
|
|
# Channels with too much local balance - encourage outbound routing
|
|
chan.min_ratio = 0.8
|
|
strategy = balance_based
|
|
inbound_fee_ppm = -100
|
|
inbound_base_fee_msat = -500
|
|
priority = 20
|
|
|
|
[balance-preserve-channels]
|
|
# Channels with low local balance - preserve liquidity
|
|
chan.max_ratio = 0.2
|
|
strategy = balance_based
|
|
fee_ppm = 2000
|
|
inbound_fee_ppm = 50
|
|
priority = 20
|
|
|
|
[flow-optimize-channels]
|
|
# Channels with good flow patterns - optimize for revenue
|
|
flow.7d.min = 1000000
|
|
strategy = flow_based
|
|
learning_enabled = true
|
|
priority = 30
|
|
|
|
[competitive-channels]
|
|
# Channels where we compete with many alternatives
|
|
network.min_alternatives = 5
|
|
peer.fee_ratio.min = 0.5
|
|
peer.fee_ratio.max = 1.5
|
|
strategy = inbound_discount
|
|
inbound_fee_ppm = -75
|
|
priority = 40
|
|
|
|
[premium-peers]
|
|
# Special rates for high-value peers
|
|
node.id = 033d8656219478701227199cbd6f670335c8d408a92ae88b962c49d4dc0e83e025
|
|
strategy = static
|
|
fee_ppm = 500
|
|
inbound_fee_ppm = -25
|
|
inbound_base_fee_msat = -200
|
|
priority = 5
|
|
|
|
[inactive-channels]
|
|
# Inactive channels - aggressive activation strategy
|
|
activity.level = inactive
|
|
strategy = balance_based
|
|
fee_ppm = 100
|
|
inbound_fee_ppm = -200
|
|
max_fee_ppm = 500
|
|
priority = 50
|
|
|
|
[discourage-routing]
|
|
# Channels we want to discourage routing through
|
|
chan.max_ratio = 0.1
|
|
chan.min_capacity = 250000
|
|
strategy = static
|
|
base_fee_msat = 1000
|
|
fee_ppm = 3000
|
|
inbound_fee_ppm = 100
|
|
priority = 90
|
|
|
|
[catch-all]
|
|
# Final policy for any unmatched channels
|
|
strategy = static
|
|
fee_ppm = 1000
|
|
inbound_fee_ppm = 0
|
|
priority = 100
|