Skip to content

Instantly share code, notes, and snippets.

@cryptovestor21
Last active September 17, 2024 19:26
Show Gist options
  • Save cryptovestor21/335960ea4e2885d6c100454aeaf07fb7 to your computer and use it in GitHub Desktop.
Save cryptovestor21/335960ea4e2885d6c100454aeaf07fb7 to your computer and use it in GitHub Desktop.
######################################################################################
##################### NOTES #######################
######################################################################################
#
# config.toml file is the same for service and tap agent so they reference the same file
# however we want to use our own dynamically built env vars as per below, and they will
# overwrite the values defined in the toml files at runtime.
#
# I've left the vars we use in .env for posterity but you can just delete all the vars and
# edit the config file instead if you wish (stick it in ./indexer-rs/config.toml)
#
# Our reference config is https://github.com/graphprotocol/indexer-rs/blob/main/config/maximal-config-example.toml
#
services:
######################################################################################
##################### INDEXER TAP AGENT #######################
######################################################################################
indexer-tap-agent:
image: ghcr.io/graphprotocol/indexer-tap-agent:${INDEXER_TAP_AGENT_VERSION}
container_name: indexer-tap-agent
command: --config /app/config.toml
environment:
RUST_LOG: WARN
TAP_AGENT_INDEXER__INDEXER_ADDRESS: ${STAKING_WALLET_ADDRESS_ARBITRUM}
TAP_AGENT_INDEXER__OPERATOR_MNEMONIC: ${GRAPH_INDEXER_OPERATOR_MNEMONIC}
TAP_AGENT_METRICS__PORT: 7300
TAP_AGENT_DATABASE__POSTGRES_URL: postgres://${DB_USER_GRAPH_AGENT}:${DB_PASS_GRAPH_AGENT}@${DB_HOST_GRAPH_AGENT}:5432/${DB_AGENT_DB_NAME}
TAP_AGENT_GRAPH_NODE__QUERY_URL: https://query.${DOMAIN_QUERY_0}.${DOMAIN_TOPLEVEL}
TAP_AGENT_GRAPH_NODE__STATUS_URL: https://status.${DOMAIN_SYNC_0}.${DOMAIN_TOPLEVEL}/graphql
# For now you must define a query url as a minimum. A deployment id can be set optionally.
TAP_AGENT_SUBGRAPHS__NETWORK__QUERY_URL: ${INDEXER_AGENT_NETWORK_SUBGRAPH_ENDPOINT}
# Only define the bearer token if you are going to use it
#TAP_AGENT_SUBGRAPHS__NETWORK__QUERY_AUTH_TOKEN: ${GRAPH_INDEXER_SERVICE_FREE_QUERY_AUTH_TOKEN}
TAP_AGENT_SUBGRAPHS__NETWORK__DEPLOYMENT_ID: ${INDEXER_AGENT_NETWORK_SUBGRAPH_DEPLOYMENT}
TAP_AGENT_SUBGRAPHS__NETWORK__SYNCING_INTERVAL_SECS: ${INDEXER_SERVICE_SUBGRAPHS__NETWORK__SYNCING_INTERVAL_SECS}
TAP_AGENT_SUBGRAPHS__NETWORK__RECENTLY_CLOSED_ALLOCATION_BUFFER_SECS: ${INDEXER_SERVICE_SUBGRAPHS__NETWORK__RECENTLY_CLOSED_ALLOCATION_BUFFER_SECS}
# For now you must define a query url as a minimum. A deployment id can be set optionally.
TAP_AGENT_SUBGRAPHS__ESCROW__QUERY_URL: ${INDEXER_SERVICE_ESCROW_SUBGRAPH_ENDPOINT}
# Only define the bearer token if you are going to use it
#TAP_AGENT_SUBGRAPHS__ESCROW__QUERY_AUTH_TOKEN: ${GRAPH_INDEXER_SERVICE_FREE_QUERY_AUTH_TOKEN}
TAP_AGENT_SUBGRAPHS__ESCROW__DEPLOYMENT_ID: ${INDEXER_SERVICE_ESCROW_SUBGRAPH_DEPLOYMENT}
TAP_AGENT_SUBGRAPHS__ESCROW__SYNCING_INTERVAL_SECS: ${INDEXER_SERVICE_SUBGRAPHS__ESCROW__SYNCING_INTERVAL_SECS}
TAP_AGENT_BLOCKCHAIN__CHAIN_ID: ${INDEXER_SERVICE_CHAIN_ID}
TAP_AGENT_BLOCKCHAIN__RECEIPTS_VERIFIER_ADDRESS: ${INDEXER_SERVICE_BLOCKCHAIN_RECEIPTS_VERIFIER_ADDRESS}
TAP_AGENT_TAP__MAX_AMOUNT_WILLING_TO_LOSE_GRT: ${TAP_AGENT_TAP__MAX_AMOUNT_WILLING_TO_LOSE_GRT}
TAP_AGENT_TAP__RAV_REQUEST__TRIGGER_VALUE_DIVISOR: ${TAP_AGENT_TAP__RAV_REQUEST__TRIGGER_VALUE_DIVISOR}
TAP_AGENT_TAP__RAV_REQUEST__TIMESTAMP_BUFFER_SECS: ${TAP_AGENT_TAP__RAV_REQUEST__TIMESTAMP_BUFFER_SECS}
TAP_AGENT_TAP__RAV_REQUEST__REQUEST_TIMEOUT_SECS: ${TAP_AGENT_TAP__RAV_REQUEST__REQUEST_TIMEOUT_SECS}
TAP_AGENT_TAP__RAV_REQUEST__MAX_RECEIPTS_PER_REQUEST: ${TAP_AGENT_TAP__RAV_REQUEST__MAX_RECEIPTS_PER_REQUEST}
TAP_AGENT_TAP__SENDER_AGGREGATOR_ENDPOINTS__0xC3dDf37906724732FfD748057FEBe23379b0710D: ${TAP_AGENT_TAP__SENDER_AGGREGATOR_ENDPOINTS_GATEWAY0}
volumes:
- ./indexer-rs/config.toml:/app/config.toml
expose:
- 7300
networks:
- monitor-net
logging: *default-logging
######################################################################################
##################### INDEXER SERVICE 0 #######################
######################################################################################
indexer-service-0:
image: ghcr.io/graphprotocol/indexer-service-rs:${INDEXER_SERVICE_VERSION}
container_name: indexer-service-0
command: --config /app/config.toml
environment:
RUST_LOG: WARN
INDEXER_SERVICE_INDEXER__INDEXER_ADDRESS: ${STAKING_WALLET_ADDRESS_ARBITRUM}
INDEXER_SERVICE_INDEXER__OPERATOR_MNEMONIC: ${GRAPH_INDEXER_OPERATOR_MNEMONIC}
INDEXER_SERVICE_METRICS__PORT: 7300
INDEXER_SERVICE_DATABASE__POSTGRES_URL: postgres://${DB_USER_GRAPH_AGENT}:${DB_PASS_GRAPH_AGENT}@${DB_HOST_GRAPH_AGENT}:5432/${DB_AGENT_DB_NAME}
INDEXER_SERVICE_GRAPH_NODE__QUERY_URL: https://query.${DOMAIN_QUERY_0}.${DOMAIN_TOPLEVEL}
INDEXER_SERVICE_GRAPH_NODE__STATUS_URL: https://status.${DOMAIN_SYNC_0}.${DOMAIN_TOPLEVEL}/graphql
# For now you must define a query url as a minimum. A deployment id can be set optionally.
INDEXER_SERVICE_SUBGRAPHS__NETWORK__QUERY_URL: ${INDEXER_AGENT_NETWORK_SUBGRAPH_ENDPOINT}
# Only define the bearer token if you are going to use it
#INDEXER_SERVICE_SUBGRAPHS__NETWORK__QUERY_AUTH_TOKEN: ${GRAPH_INDEXER_SERVICE_FREE_QUERY_AUTH_TOKEN}
INDEXER_SERVICE_SUBGRAPHS__NETWORK__DEPLOYMENT_ID: ${INDEXER_AGENT_NETWORK_SUBGRAPH_DEPLOYMENT}
INDEXER_SERVICE_SUBGRAPHS__NETWORK__SYNCING_INTERVAL_SECS: ${INDEXER_SERVICE_SUBGRAPHS__NETWORK__SYNCING_INTERVAL_SECS}
INDEXER_SERVICE_SUBGRAPHS__NETWORK__RECENTLY_CLOSED_ALLOCATION_BUFFER_SECS: ${INDEXER_SERVICE_SUBGRAPHS__NETWORK__RECENTLY_CLOSED_ALLOCATION_BUFFER_SECS}
# For now you must define a query url as a minimum. A deployment id can be set optionally.
INDEXER_SERVICE_SUBGRAPHS__ESCROW__QUERY_URL: ${INDEXER_SERVICE_ESCROW_SUBGRAPH_ENDPOINT}
# Only define the bearer token if you are going to use it
#INDEXER_SERVICE_SUBGRAPHS__ESCROW__QUERY_AUTH_TOKEN: ${GRAPH_INDEXER_SERVICE_FREE_QUERY_AUTH_TOKEN}
INDEXER_SERVICE_SUBGRAPHS__ESCROW__DEPLOYMENT_ID: ${INDEXER_SERVICE_ESCROW_SUBGRAPH_DEPLOYMENT}
INDEXER_SERVICE_SUBGRAPHS__ESCROW__SYNCING_INTERVAL_SECS: ${INDEXER_SERVICE_SUBGRAPHS__ESCROW__SYNCING_INTERVAL_SECS}
INDEXER_SERVICE_BLOCKCHAIN__CHAIN_ID: ${INDEXER_SERVICE_CHAIN_ID}
INDEXER_SERVICE_BLOCKCHAIN__RECEIPTS_VERIFIER_ADDRESS: ${INDEXER_SERVICE_BLOCKCHAIN_RECEIPTS_VERIFIER_ADDRESS}
INDEXER_SERVICE_SERVICE__HOST_AND_PORT: 0.0.0.0:7600
INDEXER_SERVICE_SERVICE__URL_PREFIX: /
INDEXER_SERVICE_SERVICE__SERVE_NETWORK_SUBGRAPH: true
INDEXER_SERVICE_SERVICE__SERVE_ESCROW_SUBGRAPH: true
# Only define the bearer token if you are going to use it
#INDEXER_SERVICE_SERVICE__SERVE_AUTH_TOKEN: ${GRAPH_INDEXER_SERVICE_FREE_QUERY_AUTH_TOKEN}
#INDEXER_SERVICE_SERVICE__FREE_QUERY_AUTH_TOKEN: ${GRAPH_INDEXER_SERVICE_FREE_QUERY_AUTH_TOKEN}
INDEXER_SERVICE_SERVICE__TAP__MAX_RECEIPT_VALUE_GRT: ${INDEXER_SERVICE_SERVICE__TAP__MAX_RECEIPT_VALUE_GRT}
volumes:
- ./indexer-rs/config.toml:/app/config.toml
expose:
- 7600
- 7300
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment