github.com/0xPolygon/supernets2-node@v0.0.0-20230711153321-2fe574524eaa/docker-compose.yml (about) 1 version: "3.5" 2 networks: 3 default: 4 name: supernets2 5 6 services: 7 grafana: 8 container_name: grafana 9 image: grafana/grafana-oss 10 volumes: 11 - ./config/grafana/datasources.yml:/etc/grafana/provisioning/datasources/default.yml:ro 12 - ./config/grafana/dashboards.yml:/etc/grafana/provisioning/dashboards/default.yml:ro 13 - ./config/grafana/dashboard-dockers.json:/etc/grafana/provisioning/dashboards/dashboard-dockers.json:ro 14 - ./config/grafana/dashboard-node.json:/etc/grafana/provisioning/dashboards/dashboard-node.json:ro 15 environment: 16 - GF_SECURITY_ADMIN_USER=supernets2 17 - GF_SECURITY_ADMIN_PASSWORD=supernets2 18 ports: 19 - 3000:3000 20 depends_on: 21 - telegraf 22 23 telegraf: 24 container_name: telegraf 25 image: telegraf 26 volumes: 27 - ./config/telegraf.conf:/etc/telegraf/telegraf.conf:ro 28 - /var/run/docker.sock:/var/run/docker.sock:ro 29 user: telegraf:${DOCKERGID} 30 environment: 31 - POSTGRES_HOST=grafana-db 32 - POSTGRES_USER=user 33 - POSTGRES_PASSWORD=password 34 - POSTGRES_DB=grafana 35 depends_on: 36 - grafana-db 37 - supernets2-json-rpc 38 39 grafana-db: 40 container_name: grafana-db 41 image: postgres 42 expose: 43 - 5432 44 environment: 45 - POSTGRES_USER=user 46 - POSTGRES_PASSWORD=password 47 - POSTGRES_DB=grafana 48 49 supernets2-sequencer: 50 container_name: supernets2-sequencer 51 image: supernets2-node 52 ports: 53 - 9092:9091 # needed if metrics enabled 54 - 6060:6060 55 environment: 56 - SUPERNETS2_NODE_STATEDB_HOST=supernets2-state-db 57 - SUPERNETS2_NODE_POOL_DB_HOST=supernets2-pool-db 58 volumes: 59 - ./config/test.node.config.toml:/app/config.toml 60 - ./config/test.genesis.config.json:/app/genesis.json 61 command: 62 - "/bin/sh" 63 - "-c" 64 - "/app/supernets2-node run --network custom --custom-network-file /app/genesis.json --cfg /app/config.toml --components sequencer" 65 66 supernets2-sequence-sender: 67 container_name: supernets2-sequence-sender 68 image: supernets2-node 69 environment: 70 - SUPERNETS2_NODE_STATEDB_HOST=supernets2-state-db 71 - SUPERNETS2_NODE_POOL_DB_HOST=supernets2-pool-db 72 - SUPERNETS2_NODE_SEQUENCER_SENDER_ADDRESS=0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266 73 volumes: 74 - ./sequencer.keystore:/pk/sequencer.keystore 75 - ./config/test.node.config.toml:/app/config.toml 76 - ./config/test.genesis.config.json:/app/genesis.json 77 command: 78 - "/bin/sh" 79 - "-c" 80 - "/app/supernets2-node run --network custom --custom-network-file /app/genesis.json --cfg /app/config.toml --components sequence-sender" 81 82 supernets2-json-rpc: 83 container_name: supernets2-json-rpc 84 image: supernets2-node 85 ports: 86 - 8123:8123 87 - 8133:8133 # needed if WebSockets enabled 88 - 9091:9091 # needed if metrics enabled 89 environment: 90 - SUPERNETS2_NODE_STATEDB_HOST=supernets2-state-db 91 - SUPERNETS2_NODE_POOL_DB_HOST=supernets2-pool-db 92 volumes: 93 - ./config/test.node.config.toml:/app/config.toml 94 - ./config/test.genesis.config.json:/app/genesis.json 95 command: 96 - "/bin/sh" 97 - "-c" 98 - "/app/supernets2-node run --network custom --custom-network-file /app/genesis.json --cfg /app/config.toml --components rpc" 99 100 supernets2-aggregator: 101 container_name: supernets2-aggregator 102 image: supernets2-node 103 ports: 104 - 50081:50081 105 - 9093:9091 # needed if metrics enabled 106 environment: 107 - SUPERNETS2_NODE_STATEDB_HOST=supernets2-state-db 108 - SUPERNETS2_NODE_AGGREGATOR_SENDER_ADDRESS=0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266 109 volumes: 110 - ./config/test.node.config.toml:/app/config.toml 111 - ./config/test.genesis.config.json:/app/genesis.json 112 command: 113 - "/bin/sh" 114 - "-c" 115 - "/app/supernets2-node run --network custom --custom-network-file /app/genesis.json --cfg /app/config.toml --components aggregator" 116 117 supernets2-sync: 118 container_name: supernets2-sync 119 image: supernets2-node 120 environment: 121 - SUPERNETS2_NODE_STATEDB_HOST=supernets2-state-db 122 volumes: 123 - ./config/test.node.config.toml:/app/config.toml 124 - ./config/test.genesis.config.json:/app/genesis.json 125 command: 126 - "/bin/sh" 127 - "-c" 128 - "/app/supernets2-node run --network custom --custom-network-file /app/genesis.json --cfg /app/config.toml --components synchronizer" 129 130 supernets2-eth-tx-manager: 131 container_name: supernets2-eth-tx-manager 132 image: supernets2-node 133 ports: 134 - 9094:9091 # needed if metrics enabled 135 environment: 136 - SUPERNETS2_NODE_STATEDB_HOST=supernets2-state-db 137 volumes: 138 - ./sequencer.keystore:/pk/sequencer.keystore 139 - ./aggregator.keystore:/pk/aggregator.keystore 140 - ./config/test.node.config.toml:/app/config.toml 141 - ./config/test.genesis.config.json:/app/genesis.json 142 command: 143 - "/bin/sh" 144 - "-c" 145 - "/app/supernets2-node run --network custom --custom-network-file /app/genesis.json --cfg /app/config.toml --components eth-tx-manager" 146 147 supernets2-l2gaspricer: 148 container_name: supernets2-l2gaspricer 149 image: supernets2-node 150 environment: 151 - SUPERNETS2_NODE_POOL_DB_HOST=supernets2-pool-db 152 volumes: 153 - ./test.keystore:/pk/keystore 154 - ./config/test.node.config.toml:/app/config.toml 155 - ./config/test.genesis.config.json:/app/genesis.json 156 command: 157 - "/bin/sh" 158 - "-c" 159 - "/app/supernets2-node run --network custom --custom-network-file /app/genesis.json --cfg /app/config.toml --components l2gaspricer" 160 161 supernets2-state-db: 162 container_name: supernets2-state-db 163 image: postgres 164 deploy: 165 resources: 166 limits: 167 memory: 2G 168 reservations: 169 memory: 1G 170 ports: 171 - 5432:5432 172 volumes: 173 - ../db/scripts/init_prover_db.sql:/docker-entrypoint-initdb.d/init.sql 174 environment: 175 - POSTGRES_USER=state_user 176 - POSTGRES_PASSWORD=state_password 177 - POSTGRES_DB=state_db 178 command: 179 - "postgres" 180 - "-N" 181 - "500" 182 183 supernets2-pool-db: 184 container_name: supernets2-pool-db 185 image: postgres 186 deploy: 187 resources: 188 limits: 189 memory: 2G 190 reservations: 191 memory: 1G 192 ports: 193 - 5433:5432 194 environment: 195 - POSTGRES_USER=pool_user 196 - POSTGRES_PASSWORD=pool_password 197 - POSTGRES_DB=pool_db 198 command: 199 - "postgres" 200 - "-N" 201 - "500" 202 203 supernets2-event-db: 204 container_name: supernets2-event-db 205 image: postgres 206 deploy: 207 resources: 208 limits: 209 memory: 2G 210 reservations: 211 memory: 1G 212 ports: 213 - 5435:5432 214 volumes: 215 - ../db/scripts/init_event_db.sql:/docker-entrypoint-initdb.d/init.sql 216 environment: 217 - POSTGRES_USER=event_user 218 - POSTGRES_PASSWORD=event_password 219 - POSTGRES_DB=event_db 220 command: 221 - "postgres" 222 - "-N" 223 - "500" 224 225 supernets2-explorer-l1: 226 container_name: supernets2-explorer-l1 227 image: hermeznetwork/hermez-node-blockscout:latest 228 ports: 229 - 4000:4000 230 environment: 231 - NETWORK=ETH 232 - SUBNETWORK=Local Ethereum 233 - COIN=ETH 234 - ETHEREUM_JSONRPC_VARIANT=geth 235 - ETHEREUM_JSONRPC_HTTP_URL=http://supernets2-mock-l1-network:8545 236 - DATABASE_URL=postgres://l1_explorer_user:l1_explorer_password@supernets2-explorer-l1-db:5432/l1_explorer_db 237 - ECTO_USE_SSL=false 238 - MIX_ENV=prod 239 command: 240 - "/bin/sh" 241 - "-c" 242 - "mix do ecto.create, ecto.migrate; mix phx.server" 243 244 supernets2-explorer-l1-db: 245 container_name: supernets2-explorer-l1-db 246 image: postgres 247 ports: 248 - 5435:5432 249 environment: 250 - POSTGRES_USER=l1_explorer_user 251 - POSTGRES_PASSWORD=l1_explorer_password 252 - POSTGRES_DB=l1_explorer_db 253 command: 254 - "postgres" 255 - "-N" 256 - "500" 257 258 supernets2-explorer-l2: 259 container_name: supernets2-explorer-l2 260 image: hermeznetwork/hermez-node-blockscout:latest 261 ports: 262 - 4001:4000 263 environment: 264 - NETWORK=POE 265 - SUBNETWORK=Polygon Hermez 266 - COIN=ETH 267 - ETHEREUM_JSONRPC_VARIANT=geth 268 - ETHEREUM_JSONRPC_HTTP_URL=http://supernets2-explorer-json-rpc:8124 269 - DATABASE_URL=postgres://l2_explorer_user:l2_explorer_password@supernets2-explorer-l2-db:5432/l2_explorer_db 270 - ECTO_USE_SSL=false 271 - MIX_ENV=prod 272 - LOGO=/images/blockscout_logo.svg 273 - LOGO_FOOTER=/images/blockscout_logo.svg 274 command: 275 - "/bin/sh" 276 - "-c" 277 - "mix do ecto.create, ecto.migrate; mix phx.server" 278 279 supernets2-explorer-json-rpc: 280 container_name: supernets2-explorer-json-rpc 281 image: supernets2-node 282 ports: 283 - 8124:8124 284 - 8134:8134 # needed if WebSockets enabled 285 environment: 286 - SUPERNETS2_NODE_STATEDB_HOST=supernets2-state-db 287 - SUPERNETS2_NODE_POOL_DB_HOST=supernets2-pool-db 288 - SUPERNETS2_NODE_RPC_PORT=8124 289 - SUPERNETS2_NODE_RPC_WEBSOCKETS_PORT=8134 290 volumes: 291 - ./config/test.node.config.toml:/app/config.toml 292 - ./config/test.genesis.config.json:/app/genesis.json 293 command: 294 - "/bin/sh" 295 - "-c" 296 - "/app/supernets2-node run --network custom --custom-network-file /app/genesis.json --cfg /app/config.toml --components rpc --http.api eth,net,debug,supernets2,txpool,web3" 297 298 supernets2-explorer-l2-db: 299 container_name: supernets2-explorer-l2-db 300 image: postgres 301 ports: 302 - 5436:5432 303 environment: 304 - POSTGRES_USER=l2_explorer_user 305 - POSTGRES_PASSWORD=l2_explorer_password 306 - POSTGRES_DB=l2_explorer_db 307 command: [ "postgres", "-N", "500" ] 308 309 supernets2-mock-l1-network: 310 container_name: supernets2-mock-l1-network 311 image: hermeznetwork/geth-supernets2-contracts:v0.0.1 312 ports: 313 - 8545:8545 314 - 8546:8546 315 command: 316 - "--http" 317 - "--http.api" 318 - "admin,eth,debug,miner,net,txpool,personal,web3" 319 - "--http.addr" 320 - "0.0.0.0" 321 - "--http.corsdomain" 322 - "*" 323 - "--http.vhosts" 324 - "*" 325 - "--ws" 326 - "--ws.origins" 327 - "*" 328 - "--ws.addr" 329 - "0.0.0.0" 330 - "--dev" 331 - "--datadir" 332 - "/geth_data" 333 - "--syncmode" 334 - "full" 335 - "--rpc.allow-unprotected-txs" 336 337 supernets2-prover: 338 container_name: supernets2-prover 339 image: hermeznetwork/zkevm-prover:v1.1.3-RC2-fork.4 340 ports: 341 # - 50051:50051 # Prover 342 - 50052:50052 # Mock prover 343 - 50061:50061 # MT 344 - 50071:50071 # Executor 345 volumes: 346 - ./config/test.prover.config.json:/usr/src/app/config.json 347 command: > 348 zkProver -c /usr/src/app/config.json 349 350 zkprover-mock: 351 container_name: zkprover-mock 352 image: hermeznetwork/zkprover-mock:latest 353 ports: 354 - 43061:43061 # MT 355 - 43071:43071 # Executor 356 volumes: 357 - ./vectors/src:/app/testvectors 358 command: > 359 /app/zkprover-mock server --statedb-port 43061 --executor-port 43071 --test-vector-path /app/testvectors 360 361 supernets2-approve: 362 container_name: supernets2-approve 363 image: supernets2-node 364 environment: 365 - SUPERNETS2_NODE_STATEDB_HOST=supernets2-state-db 366 volumes: 367 - ./sequencer.keystore:/pk/keystore 368 - ./config/test.node.config.toml:/app/config.toml 369 - ./config/test.genesis.config.json:/app/genesis.json 370 command: 371 - "/bin/sh" 372 - "-c" 373 - "/app/supernets2-node approve --network custom --custom-network-file /app/genesis.json --key-store-path /pk/keystore --pw testonly --am 115792089237316195423570985008687907853269984665640564039457584007913129639935 -y --cfg /app/config.toml" 374 375 supernets2-permissionless-db: 376 container_name: supernets2-permissionless-db 377 image: postgres 378 deploy: 379 resources: 380 limits: 381 memory: 2G 382 reservations: 383 memory: 1G 384 ports: 385 - 5434:5432 386 volumes: 387 - ../db/scripts/single_db_server.sql:/docker-entrypoint-initdb.d/init.sql 388 environment: 389 - POSTGRES_USER=test_user 390 - POSTGRES_PASSWORD=test_password 391 - POSTGRES_DB=test_db 392 command: 393 - "postgres" 394 - "-N" 395 - "500" 396 397 supernets2-permissionless-node: 398 container_name: supernets2-permissionless-node 399 image: supernets2-node 400 ports: 401 - 8125:8125 402 environment: 403 - SUPERNETS2_NODE_ISTRUSTEDSEQUENCER=false 404 - SUPERNETS2_NODE_STATEDB_USER=test_user 405 - SUPERNETS2_NODE_STATEDB_PASSWORD=test_password 406 - SUPERNETS2_NODE_STATEDB_NAME=state_db 407 - SUPERNETS2_NODE_STATEDB_HOST=supernets2-permissionless-db 408 - SUPERNETS2_NODE_POOL_DB_USER=test_user 409 - SUPERNETS2_NODE_POOL_DB_PASSWORD=test_password 410 - SUPERNETS2_NODE_POOL_DB_NAME=pool_db 411 - SUPERNETS2_NODE_POOL_DB_HOST=supernets2-permissionless-db 412 - SUPERNETS2_NODE_RPC_PORT=8125 413 - SUPERNETS2_NODE_RPC_SEQUENCERNODEURI=http://supernets2-json-rpc:8123 414 - SUPERNETS2_NODE_MTCLIENT_URI=supernets2-permissionless-prover:50061 415 - SUPERNETS2_NODE_EXECUTOR_URI=supernets2-permissionless-prover:50071 416 volumes: 417 - ./config/test.node.config.toml:/app/config.toml 418 - ./config/test.genesis.config.json:/app/genesis.json 419 command: 420 - "/bin/sh" 421 - "-c" 422 - "/app/supernets2-node run --network custom --custom-network-file /app/genesis.json --cfg /app/config.toml --components \"rpc,synchronizer\"" 423 424 425 supernets2-permissionless-node-forced-DAC: 426 container_name: supernets2-permissionless-node-forced-DAC 427 image: supernets2-node 428 ports: 429 - 8125:8125 430 environment: 431 - SUPERNETS2_NODE_ISTRUSTEDSEQUENCER=false 432 - SUPERNETS2_NODE_STATEDB_USER=test_user 433 - SUPERNETS2_NODE_STATEDB_PASSWORD=test_password 434 - SUPERNETS2_NODE_STATEDB_NAME=state_db 435 - SUPERNETS2_NODE_STATEDB_HOST=supernets2-permissionless-db 436 - SUPERNETS2_NODE_POOL_DB_USER=test_user 437 - SUPERNETS2_NODE_POOL_DB_PASSWORD=test_password 438 - SUPERNETS2_NODE_POOL_DB_NAME=pool_db 439 - SUPERNETS2_NODE_POOL_DB_HOST=supernets2-permissionless-db 440 - SUPERNETS2_NODE_RPC_PORT=8125 441 - SUPERNETS2_NODE_RPC_SEQUENCERNODEURI=http://supernets2-json-rpc:8123 442 - SUPERNETS2_NODE_SYNCHRONIZER_TRUSTEDSEQUENCERURL=http://you-cant-touch-this:8123 443 - SUPERNETS2_NODE_MTCLIENT_URI=supernets2-permissionless-prover:50061 444 - SUPERNETS2_NODE_EXECUTOR_URI=supernets2-permissionless-prover:50071 445 volumes: 446 - ./config/test.node.config.toml:/app/config.toml 447 - ./config/test.genesis.config.json:/app/genesis.json 448 command: 449 - "/bin/sh" 450 - "-c" 451 - "/app/supernets2-node run --network custom --custom-network-file /app/genesis.json --cfg /app/config.toml --components \"rpc,synchronizer\"" 452 453 supernets2-permissionless-prover: 454 container_name: supernets2-permissionless-prover 455 image: hermeznetwork/zkevm-prover:v1.1.3-RC2-fork.4 456 ports: 457 # - 50058:50058 # Prover 458 - 50059:50052 # Mock prover 459 - 50068:50061 # MT 460 - 50078:50071 # Executor 461 volumes: 462 - ./config/test.permissionless.prover.config.json:/usr/src/app/config.json 463 command: > 464 zkProver -c /usr/src/app/config.json 465 466 supernets2-metrics: 467 image: prom/prometheus:v2.39.1 468 container_name: supernets2-metrics 469 restart: unless-stopped 470 ports: 471 - 9090:9090 472 command: 473 - --config.file=/etc/prometheus/prometheus.yml 474 - --web.enable-lifecycle 475 volumes: 476 - ../config/metrics/prometheus:/etc/prometheus 477 478 supernets2-data-availability-db: 479 container_name: supernets2-data-availability-db 480 restart: unless-stopped 481 image: postgres 482 healthcheck: 483 test: ["CMD-SHELL", "pg_isready -d $${POSTGRES_DB} -U $${POSTGRES_USER}"] 484 interval: 10s 485 timeout: 5s 486 retries: 5 487 ports: 488 - 5444:5432 489 environment: 490 - POSTGRES_USER=committee_user 491 - POSTGRES_PASSWORD=committee_password 492 - POSTGRES_DB=committee_db 493 command: 494 - "postgres" 495 - "-N" 496 - "500"