devnet-3node.toml
1 # ADNet Devnet Configuration - 3-Node Local Network 2 # ================================================== 3 # Lightweight local development configuration for a 3-node network. 4 # Useful for testing consensus, network partitions, and multi-validator scenarios. 5 # Designed to run on developer laptops (4 cores, 16GB RAM). 6 # 7 # Quick Start: 8 # ./scripts/start-devnet.sh --nodes 3 9 # 10 # This configuration is a template. Each node needs its own port assignments. 11 # The start script generates node-specific configs from this template. 12 # 13 # Features: 14 # - Fast block times (Alpha: 2s, Delta: 500ms) 15 # - In-memory storage (fast, no disk cleanup needed) 16 # - Pre-funded test accounts 17 # - 3 validators for realistic consensus testing 18 # - All ports on localhost with offsets per node 19 20 # Chain operation mode 21 chain_mode = "dual" 22 23 # ============================================================================= 24 # Node Configuration Template 25 # ============================================================================= 26 # Port assignments per node: 27 # Node 0: P2P=30303, Alpha RPC=3030, Delta RPC=3031, WS=3032, API=8080, Metrics=9100 28 # Node 1: P2P=30313, Alpha RPC=3040, Delta RPC=3041, WS=3042, API=8081, Metrics=9101 29 # Node 2: P2P=30323, Alpha RPC=3050, Delta RPC=3051, WS=3052, API=8082, Metrics=9102 30 31 [node] 32 # Node identifier (replaced per node: devnet-node-0, devnet-node-1, devnet-node-2) 33 node_id = "devnet-node-${NODE_INDEX}" 34 # Keypair path (per node) 35 keypair_path = "/tmp/adnet-devnet-3node/node-${NODE_INDEX}/keys/node.json" 36 # Data directory (per node) 37 data_dir = "/tmp/adnet-devnet-3node/node-${NODE_INDEX}/data" 38 # All nodes are validators 39 node_type = "validator" 40 # Development mode enabled 41 dev_mode = true 42 # Skip signature verification for faster testing 43 skip_verification = true 44 45 [network] 46 # P2P listen address (port varies per node) 47 listen_addr = "127.0.0.1:${P2P_PORT}" 48 # Bootstrap peers (all nodes discover each other) 49 bootstrap_peers = [ 50 "/ip4/127.0.0.1/tcp/30303/p2p/devnet-node-0", 51 "/ip4/127.0.0.1/tcp/30313/p2p/devnet-node-1", 52 "/ip4/127.0.0.1/tcp/30323/p2p/devnet-node-2", 53 ] 54 # Minimal peers 55 max_peers = 10 56 # Enable mDNS for local peer discovery 57 mdns_enabled = true 58 # No external IP needed 59 external_ip = "" 60 61 # ============================================================================= 62 # ALPHA Chain Configuration (2s blocks for fast iteration) 63 # ============================================================================= 64 65 [alpha] 66 # Fast block time for development (2 seconds) 67 block_time_ms = 2000 68 # RPC server port (varies per node) 69 rpc_port = "${ALPHA_RPC_PORT}" 70 # Enable RPC server 71 rpc_enabled = true 72 # Smaller batches for dev 73 max_txs_per_block = 100 74 75 [alpha.consensus] 76 # BFT settings for 3 validators 77 gc_depth = 10 78 batch_size = 100 79 max_batch_delay_ms = 50 80 # Minimum 2 validators for consensus (allows 1 failure) 81 min_validators = 2 82 # BFT requires 2f+1 for 3 nodes 83 max_validators = 3 84 85 [alpha.storage] 86 # In-memory storage for fast dev cycles 87 backend = "memory" 88 # Cache size (small for dev) 89 cache_size_mb = 128 90 91 [alpha.genesis] 92 # Devnet network identifier 93 network_id = "alpha-devnet-3node" 94 name = "ALPHA Devnet (3-node)" 95 # Genesis timestamp 96 timestamp = "2026-01-15T00:00:00Z" 97 98 # Initial validators (3 nodes) 99 [[alpha.genesis.validators]] 100 name = "devnet-validator-0" 101 address = "alpha1validator0devnet00000000000000000000" 102 stake = 1_000_000_000_000_000 103 commission_percent = 0 104 105 [[alpha.genesis.validators]] 106 name = "devnet-validator-1" 107 address = "alpha1validator1devnet00000000000000000000" 108 stake = 1_000_000_000_000_000 109 commission_percent = 0 110 111 [[alpha.genesis.validators]] 112 name = "devnet-validator-2" 113 address = "alpha1validator2devnet00000000000000000000" 114 stake = 1_000_000_000_000_000 115 commission_percent = 0 116 117 # Pre-funded test accounts (1M credits each) 118 [[alpha.genesis.accounts]] 119 name = "alice" 120 address = "alpha1alice0000000000000000000000000000000000" 121 balance = 1_000_000_000_000_000 122 private_key = "devnet-alice-key-do-not-use-in-production" 123 124 [[alpha.genesis.accounts]] 125 name = "bob" 126 address = "alpha1bob00000000000000000000000000000000000" 127 balance = 1_000_000_000_000_000 128 private_key = "devnet-bob-key-do-not-use-in-production" 129 130 [[alpha.genesis.accounts]] 131 name = "charlie" 132 address = "alpha1charlie000000000000000000000000000000" 133 balance = 1_000_000_000_000_000 134 private_key = "devnet-charlie-key-do-not-use-in-production" 135 136 [[alpha.genesis.accounts]] 137 name = "faucet" 138 address = "alpha1faucet0000000000000000000000000000000" 139 balance = 100_000_000_000_000_000 140 141 # ============================================================================= 142 # DELTA Chain Configuration (500ms blocks for DEX testing) 143 # ============================================================================= 144 145 [delta] 146 # Very fast block time for DEX testing (500ms) 147 block_time_ms = 500 148 # RPC server port (varies per node) 149 rpc_port = "${DELTA_RPC_PORT}" 150 # Enable RPC server 151 rpc_enabled = true 152 # Smaller batches for dev 153 max_txs_per_block = 1000 154 # Enable DEX 155 dex_enabled = true 156 # WebSocket port (varies per node) 157 websocket_port = "${WS_PORT}" 158 159 [delta.consensus] 160 # BFT settings for 3 validators 161 gc_depth = 10 162 batch_size = 500 163 max_batch_delay_ms = 25 164 # Minimum 2 validators for consensus 165 min_validators = 2 166 max_validators = 3 167 168 [delta.storage] 169 # In-memory storage for fast dev cycles 170 backend = "memory" 171 # Cache size (small for dev) 172 cache_size_mb = 256 173 174 [delta.genesis] 175 # Devnet network identifier 176 network_id = "delta-devnet-3node" 177 name = "DELTA Devnet (3-node)" 178 # Genesis timestamp (matches ALPHA) 179 timestamp = "2026-01-15T00:00:00Z" 180 181 # Initial validators (matches ALPHA) 182 [[delta.genesis.validators]] 183 name = "devnet-validator-0" 184 address = "delta1validator0devnet00000000000000000000" 185 stake = 1_000_000_000_000_000 186 commission_percent = 0 187 188 [[delta.genesis.validators]] 189 name = "devnet-validator-1" 190 address = "delta1validator1devnet00000000000000000000" 191 stake = 1_000_000_000_000_000 192 commission_percent = 0 193 194 [[delta.genesis.validators]] 195 name = "devnet-validator-2" 196 address = "delta1validator2devnet00000000000000000000" 197 stake = 1_000_000_000_000_000 198 commission_percent = 0 199 200 # Pre-funded test accounts with sAX and synthetic assets 201 [[delta.genesis.accounts]] 202 name = "alice" 203 address = "delta1alice0000000000000000000000000000000000" 204 sax_balance = 1_000_000_000_000_000 205 btc_balance = 10_000_000_000 206 eth_balance = 100_000_000_000_000_000 207 208 [[delta.genesis.accounts]] 209 name = "bob" 210 address = "delta1bob00000000000000000000000000000000000" 211 sax_balance = 1_000_000_000_000_000 212 btc_balance = 10_000_000_000 213 eth_balance = 100_000_000_000_000_000 214 215 [[delta.genesis.accounts]] 216 name = "charlie" 217 address = "delta1charlie000000000000000000000000000000" 218 sax_balance = 1_000_000_000_000_000 219 btc_balance = 10_000_000_000 220 eth_balance = 100_000_000_000_000_000 221 222 # Initial DEX markets for testing 223 [[delta.genesis.markets]] 224 base = "BTC" 225 quote = "sAX" 226 min_order_size = 1000 227 price_precision = 8 228 quantity_precision = 8 229 maker_fee_bps = 0 230 taker_fee_bps = 0 231 enabled = true 232 233 [[delta.genesis.markets]] 234 base = "ETH" 235 quote = "sAX" 236 min_order_size = 10000 237 price_precision = 8 238 quantity_precision = 8 239 maker_fee_bps = 0 240 taker_fee_bps = 0 241 enabled = true 242 243 [delta.dex] 244 max_orders_per_block = 1000 245 default_order_expiry = 0 246 max_open_orders_per_account = 10000 247 circuit_breaker_enabled = false 248 249 # ============================================================================= 250 # IPC Configuration 251 # ============================================================================= 252 253 [ipc] 254 enabled = true 255 socket_path = "/tmp/adnet-devnet-3node/node-${NODE_INDEX}/ipc.sock" 256 queue_size = 1000 257 timeout_ms = 5000 258 259 # ============================================================================= 260 # API Configuration 261 # ============================================================================= 262 263 [api] 264 enabled = true 265 port = "${API_PORT}" 266 cors_origins = ["*"] 267 rate_limit = 0 268 swagger_enabled = true 269 270 # ============================================================================= 271 # Metrics Configuration 272 # ============================================================================= 273 274 [metrics] 275 enabled = true 276 port = "${METRICS_PORT}" 277 path = "/metrics" 278 labels = { network = "devnet", mode = "3-node", node = "${NODE_INDEX}" } 279 280 # ============================================================================= 281 # Logging Configuration 282 # ============================================================================= 283 284 [logging] 285 level = "debug" 286 format = "text" 287 file = "" 288 289 # ============================================================================= 290 # Telemetry (disabled for devnet) 291 # ============================================================================= 292 293 [telemetry] 294 enabled = false 295 296 # ============================================================================= 297 # Validator Configuration 298 # ============================================================================= 299 300 [validator] 301 withdrawal_address = "alpha1devnet-validator-${NODE_INDEX}00000000000" 302 commission_percent = 0 303 auto_key_rotation = false