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)