v3.0: JWT auth, korechain.korenet.cloud routing, LICK module, feed poller v3
This commit is contained in:
@@ -1,13 +1,82 @@
|
||||
version: '3.8'
|
||||
|
||||
# Vector Zulu — KoreID Translation Layer
|
||||
# Converts Ethereum events to KoreID format and posts back to KoreChain.
|
||||
# Vector Zulu — KoreID Adapter Stack v3.0
|
||||
# Runs on Charlie (63.245.138.38) alongside charlie-vault-cache.
|
||||
# Shares the same Redis and Postgres instances.
|
||||
# Shares Redis and Postgres with vault cache stack.
|
||||
# Auth: JWT Bearer only — no client cert required (ssl_verify_client optional).
|
||||
# Primary API: korechain.korenet.cloud | Fallback: fnb.korenet.cloud
|
||||
|
||||
x-common-env: &common-env
|
||||
REDIS_HOST: ${REDIS_HOST:-localhost}
|
||||
POSTGRES_HOST: ${POSTGRES_HOST:-localhost}
|
||||
POSTGRES_DB: ${POSTGRES_DB:-vz_oracle}
|
||||
POSTGRES_USER: ${POSTGRES_USER:-vz_oracle}
|
||||
POSTGRES_PASSWORD: ${POSTGRES_PASSWORD:-}
|
||||
KORENET_API_URL: ${KORENET_API_URL:-https://korechain.korenet.cloud}
|
||||
KORENET_API_FALLBACK: ${KORENET_API_FALLBACK:-https://fnb.korenet.cloud}
|
||||
VECTOR_ZULU_RAILS_URL: ${VECTOR_ZULU_RAILS_URL:-https://vector.korenet.cloud}
|
||||
|
||||
x-common-volumes: &common-volumes
|
||||
- /home/constellationnode/.korenet/vector-zulu/.secrets:/app/.secrets:ro
|
||||
- /home/constellationnode/.korenet/vector-zulu/environment.env:/app/environment.env:ro
|
||||
|
||||
x-common-logging: &common-logging
|
||||
driver: json-file
|
||||
options:
|
||||
max-size: "100m"
|
||||
max-file: "3"
|
||||
|
||||
services:
|
||||
|
||||
eth-listener:
|
||||
# ── Portal Feed Poller ─────────────────────────────────────────────────────
|
||||
# Polls KoreNet payment feeds and executes mirror lifecycle
|
||||
vz-feed-poller:
|
||||
image: python:3.12-slim
|
||||
container_name: vz-feed-poller
|
||||
restart: always
|
||||
volumes:
|
||||
- ./portal_feed_poller.py:/app/portal_feed_poller.py
|
||||
- ./koreid.py:/app/koreid.py
|
||||
- ./lick.py:/app/lick.py
|
||||
- ./eventbus.py:/app/eventbus.py
|
||||
<<: *common-volumes
|
||||
working_dir: /app
|
||||
command: >
|
||||
sh -c "pip install requests redis psycopg2-binary azure-servicebus -q &&
|
||||
python portal_feed_poller.py"
|
||||
environment:
|
||||
<<: *common-env
|
||||
POLL_INTERVAL: "${POLL_INTERVAL:-30}"
|
||||
AZURE_SERVICEBUS_CONNECTION_STRING: "${AZURE_SERVICEBUS_CONNECTION_STRING:-}"
|
||||
logging: *common-logging
|
||||
network_mode: host
|
||||
|
||||
# ── KoreChain Poster ──────────────────────────────────────────────────────
|
||||
# Reads Redis queue and posts KoreID confirmations to KoreChain
|
||||
vz-korechain-poster:
|
||||
image: python:3.12-slim
|
||||
container_name: vz-korechain-poster
|
||||
restart: always
|
||||
volumes:
|
||||
- ./korechain_poster.py:/app/korechain_poster.py
|
||||
- ./koreid.py:/app/koreid.py
|
||||
- ./lick.py:/app/lick.py
|
||||
<<: *common-volumes
|
||||
working_dir: /app
|
||||
command: >
|
||||
sh -c "pip install requests redis psycopg2-binary -q &&
|
||||
python korechain_poster.py"
|
||||
environment:
|
||||
<<: *common-env
|
||||
MAX_RETRIES: "${MAX_RETRIES:-3}"
|
||||
RETRY_DELAY: "${RETRY_DELAY:-30}"
|
||||
POLL_INTERVAL: "${KORECHAIN_POLL_INTERVAL:-5}"
|
||||
logging: *common-logging
|
||||
network_mode: host
|
||||
|
||||
# ── Ethereum Event Listener ───────────────────────────────────────────────
|
||||
# Watches SV token contracts for Mint/Burn/Transfer events
|
||||
vz-eth-listener:
|
||||
image: python:3.12-slim
|
||||
container_name: vz-eth-listener
|
||||
restart: always
|
||||
@@ -16,43 +85,18 @@ services:
|
||||
- ./koreid.py:/app/koreid.py
|
||||
working_dir: /app
|
||||
command: >
|
||||
sh -c "pip install web3 redis psycopg2-binary -q && python eth_listener.py"
|
||||
sh -c "pip install web3 requests redis psycopg2-binary -q &&
|
||||
python eth_listener.py"
|
||||
environment:
|
||||
ETH_RPC: ${ETH_RPC:-https://eth-mainnet.g.alchemy.com/v2/nRVT_IneMUDF3Pokubawx}
|
||||
REDIS_HOST: ${REDIS_HOST:-vz-redis}
|
||||
POSTGRES_HOST: ${POSTGRES_HOST:-vz-postgres}
|
||||
POSTGRES_DB: ${POSTGRES_DB:-vz_oracle}
|
||||
POSTGRES_USER: ${POSTGRES_USER:-vz_oracle}
|
||||
POSTGRES_PASSWORD: ${POSTGRES_PASSWORD:-}
|
||||
POLL_INTERVAL: "60"
|
||||
<<: *common-env
|
||||
ETH_RPC: "${ETH_RPC:-https://eth-mainnet.g.alchemy.com/v2/nRVT_IneMUDF3Pokubawx}"
|
||||
POLL_INTERVAL: "${ETH_POLL_INTERVAL:-60}"
|
||||
logging: *common-logging
|
||||
network_mode: host
|
||||
|
||||
korechain-poster:
|
||||
image: python:3.12-slim
|
||||
container_name: vz-korechain-poster
|
||||
restart: always
|
||||
volumes:
|
||||
- ./korechain_poster.py:/app/korechain_poster.py
|
||||
- ./koreid.py:/app/koreid.py
|
||||
- /home/constellationnode/.korenet/vector-zulu/certificates:/certs:ro
|
||||
- /home/constellationnode/.korenet/vector-zulu/.secrets:/app/.secrets:ro
|
||||
working_dir: /app
|
||||
command: >
|
||||
sh -c "pip install requests redis psycopg2-binary -q && python korechain_poster.py"
|
||||
environment:
|
||||
REDIS_HOST: ${REDIS_HOST:-vz-redis}
|
||||
POSTGRES_HOST: ${POSTGRES_HOST:-vz-postgres}
|
||||
POSTGRES_DB: ${POSTGRES_DB:-vz_oracle}
|
||||
POSTGRES_USER: ${POSTGRES_USER:-vz_oracle}
|
||||
POSTGRES_PASSWORD: ${POSTGRES_PASSWORD:-}
|
||||
CERT_PATH: /certs/vector-zulu-client.fullchain.pem
|
||||
KEY_PATH: /certs/vector-zulu-client.key
|
||||
MAX_RETRIES: "3"
|
||||
RETRY_DELAY: "30"
|
||||
POLL_INTERVAL: "5"
|
||||
network_mode: host
|
||||
|
||||
adapter-api:
|
||||
# ── Adapter API ───────────────────────────────────────────────────────────
|
||||
# Status, queue monitoring, manual injection — port 8766
|
||||
vz-adapter-api:
|
||||
image: python:3.12-slim
|
||||
container_name: vz-adapter-api
|
||||
restart: always
|
||||
@@ -61,13 +105,13 @@ services:
|
||||
volumes:
|
||||
- ./adapter_api.py:/app/adapter_api.py
|
||||
- ./koreid.py:/app/koreid.py
|
||||
- ./lick.py:/app/lick.py
|
||||
<<: *common-volumes
|
||||
working_dir: /app
|
||||
command: >
|
||||
sh -c "pip install flask redis psycopg2-binary -q && python adapter_api.py"
|
||||
sh -c "pip install flask requests redis psycopg2-binary -q &&
|
||||
python adapter_api.py"
|
||||
environment:
|
||||
REDIS_HOST: ${REDIS_HOST:-vz-redis}
|
||||
POSTGRES_HOST: ${POSTGRES_HOST:-vz-postgres}
|
||||
POSTGRES_DB: ${POSTGRES_DB:-vz_oracle}
|
||||
POSTGRES_USER: ${POSTGRES_USER:-vz_oracle}
|
||||
POSTGRES_PASSWORD: ${POSTGRES_PASSWORD:-}
|
||||
<<: *common-env
|
||||
logging: *common-logging
|
||||
network_mode: host
|
||||
|
||||
Reference in New Issue
Block a user