File size: 5,084 Bytes
35aaa09 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 |
# Decentralized Network Configuration
# Docking@HOME - Distributed Network Settings
# === Network Settings ===
node_id = "auto" # Node ID (auto = generate unique ID)
network_mode = "localhost" # localhost, p2p, hybrid
enable_distributed_network = true # Enable decentralized coordination
# === Blockchain/DLT Settings ===
blockchain_provider = "http://localhost:8545" # Ethereum-compatible RPC endpoint
network_port = 8080 # P2P network port
# === Decentralized Internet SDK Settings ===
sdk_version = "3.5.0" # Version of the Decentralized Internet SDK
enable_blockchain = true # Use blockchain for task coordination
enable_p2p_network = true # Enable peer-to-peer networking
enable_distributed_storage = false # Enable distributed storage
# === Consensus Settings ===
consensus_algorithm = "proof_of_work" # proof_of_work, proof_of_stake, poa
difficulty = 2 # Mining difficulty (for PoW)
block_time_seconds = 15 # Target block time
min_confirmations = 6 # Minimum confirmations for finality
# === Node Discovery ===
bootstrap_nodes = [
# "http://localhost:8081",
# "http://localhost:8082"
]
enable_mdns = true # Enable mDNS for local node discovery
enable_dht = true # Enable DHT for peer discovery
max_peers = 50 # Maximum number of connected peers
min_peers = 3 # Minimum number of connected peers
# === Smart Contract Settings ===
# Uncomment if using smart contracts for task management
# contract_address = "0x..." # Task management contract address
# contract_abi_path = "contracts/TaskManager.json"
# gas_price_gwei = 20 # Gas price in Gwei
# gas_limit = 500000 # Gas limit for transactions
# === Task Coordination ===
task_registry_type = "distributed" # distributed, centralized, hybrid
broadcast_new_tasks = true # Broadcast new tasks to network
accept_external_tasks = true # Accept tasks from other nodes
task_validation_required = true # Require validation from multiple nodes
min_validators = 2 # Minimum validators for task acceptance
# === Data Synchronization ===
sync_interval_seconds = 30 # Seconds between sync operations
max_sync_batch_size = 100 # Maximum items per sync batch
enable_delta_sync = true # Only sync changes (not full state)
# === Storage Settings ===
storage_dir = "./storage" # Local storage directory
cache_size_mb = 1024 # Cache size in megabytes
enable_compression = true # Compress stored data
enable_encryption = false # Encrypt stored data (requires key)
# encryption_key = "" # Encryption key (if enabled)
# === Network Security ===
enable_tls = false # Enable TLS for connections
tls_cert_path = "" # Path to TLS certificate
tls_key_path = "" # Path to TLS private key
require_peer_authentication = false # Require peers to authenticate
whitelist_mode = false # Only allow whitelisted peers
# whitelisted_peers = [] # List of whitelisted peer IDs
# === Performance ===
async_operations = true # Use asynchronous operations
connection_pool_size = 10 # Connection pool size
request_timeout_seconds = 30 # Request timeout
max_retries = 3 # Maximum retry attempts
backoff_multiplier = 2.0 # Exponential backoff multiplier
# === Monitoring ===
enable_metrics = true # Enable metrics collection
metrics_port = 9090 # Prometheus metrics port
enable_health_checks = true # Enable health check endpoint
health_check_port = 8081 # Health check HTTP port
# === Logging ===
log_level = "INFO" # DEBUG, INFO, WARNING, ERROR, CRITICAL
log_network_events = true # Log network events
log_blockchain_events = false # Log blockchain events (verbose)
log_file = "logs/decentralized.log"
# === Advanced Settings ===
enable_nat_traversal = true # Enable NAT traversal (UPnP/NAT-PMP)
enable_hole_punching = true # Enable UDP/TCP hole punching
prefer_ipv6 = false # Prefer IPv6 connections
enable_websocket = false # Enable WebSocket connections
websocket_port = 8082 # WebSocket port
# === Fallback Settings ===
fallback_to_centralized = true # Fallback to centralized if P2P fails
centralized_server = "http://localhost:8080"
reconnect_interval_seconds = 10 # Seconds between reconnection attempts
max_reconnect_attempts = 10 # Maximum reconnection attempts (0 = infinite)
# === Development/Testing ===
dev_mode = false # Enable development mode
mock_blockchain = false # Use mock blockchain (no real transactions)
simulate_network_latency_ms = 0 # Simulate network latency (0 = disabled)
|