diff --git a/framework/.changeset/v0.10.26.md b/framework/.changeset/v0.10.26.md new file mode 100644 index 000000000..e6d6fbd2d --- /dev/null +++ b/framework/.changeset/v0.10.26.md @@ -0,0 +1 @@ +- Update Blockscout stack \ No newline at end of file diff --git a/framework/observability.go b/framework/observability.go index a3edf05dd..39dafe919 100644 --- a/framework/observability.go +++ b/framework/observability.go @@ -84,6 +84,17 @@ func BlockScoutUp(url string) error { return err } os.Setenv("BLOCKSCOUT_RPC_URL", url) + // old migrations for v15 is still applied somehow, cleaning up DB helps + if err := RunCommand("bash", "-c", fmt.Sprintf(` + cd %s && \ + rm -rf blockscout-db-data && \ + rm -rf logs && \ + rm -rf redis-data && \ + rm -rf stats-db-data && \ + rm -rf dets + `, filepath.Join("blockscout", "services"))); err != nil { + return err + } err := RunCommand("bash", "-c", fmt.Sprintf(` cd %s && \ docker compose up -d @@ -111,7 +122,8 @@ func BlockScoutDown(url string) error { rm -rf blockscout-db-data && \ rm -rf logs && \ rm -rf redis-data && \ - rm -rf stats-db-data + rm -rf stats-db-data && \ + rm -rf dets `, filepath.Join("blockscout", "services"))) } diff --git a/framework/observability/blockscout/anvil.yml b/framework/observability/blockscout/anvil.yml new file mode 100644 index 000000000..04cd475a6 --- /dev/null +++ b/framework/observability/blockscout/anvil.yml @@ -0,0 +1,94 @@ +version: '3.9' + +services: + redis-db: + extends: + file: ./services/redis.yml + service: redis-db + + db-init: + extends: + file: ./services/db.yml + service: db-init + + db: + depends_on: + db-init: + condition: service_completed_successfully + extends: + file: ./services/db.yml + service: db + + backend: + depends_on: + - db + - redis-db + extends: + file: ./services/backend.yml + service: backend + links: + - db:database + environment: + ETHEREUM_JSONRPC_VARIANT: 'anvil' + ETHEREUM_JSONRPC_WS_URL: ws://host.docker.internal:8545/ + INDEXER_DISABLE_INTERNAL_TRANSACTIONS_FETCHER: 'true' + INDEXER_DISABLE_PENDING_TRANSACTIONS_FETCHER: 'true' + CHAIN_ID: '1337' + + visualizer: + extends: + file: ./services/visualizer.yml + service: visualizer + + sig-provider: + extends: + file: ./services/sig-provider.yml + service: sig-provider + + frontend: + depends_on: + - backend + extends: + file: ./services/frontend.yml + service: frontend + environment: + NEXT_PUBLIC_NETWORK_ID: '1337' + NEXT_PUBLIC_NETWORK_RPC_URL: http://host.docker.internal:8545/ + + stats-db-init: + extends: + file: ./services/stats.yml + service: stats-db-init + + stats-db: + depends_on: + stats-db-init: + condition: service_completed_successfully + extends: + file: ./services/stats.yml + service: stats-db + + stats: + depends_on: + - stats-db + - backend + extends: + file: ./services/stats.yml + service: stats + + user-ops-indexer: + depends_on: + - db + - backend + extends: + file: ./services/user-ops-indexer.yml + service: user-ops-indexer + + proxy: + depends_on: + - backend + - frontend + - stats + extends: + file: ./services/nginx.yml + service: proxy diff --git a/framework/observability/blockscout/docker-compose.yml b/framework/observability/blockscout/docker-compose.yml index 98a99c4db..552cfe0a4 100644 --- a/framework/observability/blockscout/docker-compose.yml +++ b/framework/observability/blockscout/docker-compose.yml @@ -1,12 +1,12 @@ services: redis-db: extends: - file: services/redis.yml + file: ./services/redis.yml service: redis-db db-init: extends: - file: services/db.yml + file: ./services/db.yml service: db-init db: @@ -14,7 +14,7 @@ services: db-init: condition: service_completed_successfully extends: - file: services/db.yml + file: ./services/db.yml service: db backend: @@ -22,36 +22,53 @@ services: - db - redis-db extends: - file: services/backend.yml + file: ./services/backend.yml service: backend + build: + context: .. + dockerfile: ./docker/Dockerfile + args: + RELEASE_VERSION: 9.0.2 links: - db:database environment: - ETHEREUM_JSONRPC_VARIANT: 'geth' - ETHEREUM_JSONRPC_HTTP_URL: ${BLOCKSCOUT_RPC_URL} - ETHEREUM_JSONRPC_TRACE_URL: ${BLOCKSCOUT_RPC_URL} - CHAIN_ID: ${BLOCKSCOUT_CHAIN_ID:-1337} + ETHEREUM_JSONRPC_HTTP_URL: http://host.docker.internal:8545/ + ETHEREUM_JSONRPC_TRACE_URL: http://host.docker.internal:8545/ + ETHEREUM_JSONRPC_WS_URL: ws://host.docker.internal:8545/ + CHAIN_ID: '1337' + + nft_media_handler: + depends_on: + - backend + extends: + file: ./services/nft_media_handler.yml + service: nft_media_handler + build: + context: .. + dockerfile: ./docker/Dockerfile + args: + RELEASE_VERSION: 9.0.2 visualizer: extends: - file: services/visualizer.yml + file: ./services/visualizer.yml service: visualizer sig-provider: extends: - file: services/sig-provider.yml + file: ./services/sig-provider.yml service: sig-provider frontend: depends_on: - backend extends: - file: services/frontend.yml + file: ./services/frontend.yml service: frontend stats-db-init: extends: - file: services/stats.yml + file: ./services/stats.yml service: stats-db-init stats-db: @@ -59,7 +76,7 @@ services: stats-db-init: condition: service_completed_successfully extends: - file: services/stats.yml + file: ./services/stats.yml service: stats-db stats: @@ -67,7 +84,7 @@ services: - stats-db - backend extends: - file: services/stats.yml + file: ./services/stats.yml service: stats user-ops-indexer: @@ -75,7 +92,7 @@ services: - db - backend extends: - file: services/user-ops-indexer.yml + file: ./services/user-ops-indexer.yml service: user-ops-indexer proxy: @@ -84,5 +101,5 @@ services: - frontend - stats extends: - file: services/nginx.yml + file: ./services/nginx.yml service: proxy diff --git a/framework/observability/blockscout/envs/common-blockscout.env b/framework/observability/blockscout/envs/common-blockscout.env index 35872c4e7..22275bef5 100644 --- a/framework/observability/blockscout/envs/common-blockscout.env +++ b/framework/observability/blockscout/envs/common-blockscout.env @@ -1,34 +1,42 @@ ETHEREUM_JSONRPC_VARIANT=geth ETHEREUM_JSONRPC_HTTP_URL=http://host.docker.internal:8545/ -# ETHEREUM_JSONRPC_FALLBACK_HTTP_URL= +DISABLE_FILE_LOGGING=false DATABASE_URL=postgresql://blockscout:ceWb1MeLBEeOIfk65gU8EjF8@db:5432/blockscout + +# DATABASE_EVENT_POOL_SIZE # DATABASE_EVENT_URL= # DATABASE_QUEUE_TARGET # TEST_DATABASE_URL= # TEST_DATABASE_READ_ONLY_API_URL= + +ETHEREUM_JSONRPC_TRANSPORT=http +ETHEREUM_JSONRPC_DISABLE_ARCHIVE_BALANCES=false +# ETHEREUM_JSONRPC_FALLBACK_HTTP_URL= ETHEREUM_JSONRPC_TRACE_URL=http://host.docker.internal:8545/ # ETHEREUM_JSONRPC_FALLBACK_TRACE_URL= -# ETHEREUM_JSONRPC_FALLBACK_ETH_CALL_URL= # ETHEREUM_JSONRPC_ETH_CALL_URL= -# ETHEREUM_JSONRPC_HTTP_TIMEOUT= -# CHAIN_TYPE= -NETWORK= -SUBNETWORK=Awesome chain -LOGO=/images/blockscout_logo.svg +# ETHEREUM_JSONRPC_FALLBACK_ETH_CALL_URL= # ETHEREUM_JSONRPC_WS_URL= # ETHEREUM_JSONRPC_FALLBACK_WS_URL= # ETHEREUM_JSONRPC_WS_RETRY_INTERVAL= -ETHEREUM_JSONRPC_TRANSPORT=http -ETHEREUM_JSONRPC_DISABLE_ARCHIVE_BALANCES=false # ETHEREUM_JSONRPC_ARCHIVE_BALANCES_WINDOW=200 +# ETHEREUM_JSONRPC_HTTP_TIMEOUT= # ETHEREUM_JSONRPC_HTTP_HEADERS= +# ETHEREUM_JSONRPC_HTTP_GZIP_ENABLED= # ETHEREUM_JSONRPC_WAIT_PER_TIMEOUT= # ETHEREUM_JSONRPC_GETH_TRACE_BY_BLOCK= # ETHEREUM_JSONRPC_GETH_ALLOW_EMPTY_TRACES= -IPC_PATH= -NETWORK_PATH=/ -BLOCKSCOUT_HOST= -BLOCKSCOUT_PROTOCOL= +# ETHEREUM_JSONRPC_DEBUG_TRACE_TRANSACTION_TIMEOUT= +# ETHEREUM_JSONRPC_HTTP_URLS= +# ETHEREUM_JSONRPC_FALLBACK_HTTP_URLS= +# ETHEREUM_JSONRPC_TRACE_URLS= +# ETHEREUM_JSONRPC_FALLBACK_TRACE_URLS= +# ETHEREUM_JSONRPC_ETH_CALL_URLS= +# ETHEREUM_JSONRPC_FALLBACK_ETH_CALL_URLS= +# CHAIN_TYPE= +# IPC_PATH= +# BLOCKSCOUT_HOST= +# BLOCKSCOUT_PROTOCOL= SECRET_KEY_BASE=56NtB48ear7+wMSf0IQuWDAAazhpb31qyc7GiyspBP2vh7t5zlCsF5QDv76chXeN # CHECK_ORIGIN= PORT=4000 @@ -37,39 +45,52 @@ COIN_NAME= # VALIDATORS_CONTRACT= # KEYS_MANAGER_CONTRACT= # REWARDS_CONTRACT= -# TOKEN_BRIDGE_CONTRACT= -EMISSION_FORMAT=DEFAULT +# EMISSION_FORMAT=DEFAULT # CHAIN_SPEC_PATH= +# CHAIN_SPEC_PROCESSING_DELAY= # SUPPLY_MODULE= COIN= -EXCHANGE_RATES_COIN= -# EXCHANGE_RATES_SOURCE= -# EXCHANGE_RATES_SECONDARY_COIN_SOURCE= -# EXCHANGE_RATES_MARKET_CAP_SOURCE= -# EXCHANGE_RATES_TVL_SOURCE= -# EXCHANGE_RATES_PRICE_SOURCE= -# EXCHANGE_RATES_COINGECKO_COIN_ID= -# EXCHANGE_RATES_COINGECKO_SECONDARY_COIN_ID= -# EXCHANGE_RATES_COINGECKO_API_KEY= -# EXCHANGE_RATES_COINGECKO_BASE_URL= -# EXCHANGE_RATES_COINGECKO_BASE_PRO_URL= -# EXCHANGE_RATES_COINMARKETCAP_BASE_URL= -# EXCHANGE_RATES_COINMARKETCAP_API_KEY= -# EXCHANGE_RATES_COINMARKETCAP_COIN_ID= -# EXCHANGE_RATES_COINMARKETCAP_SECONDARY_COIN_ID= -# EXCHANGE_RATES_CRYPTOCOMPARE_SECONDARY_COIN_SYMBOL= -# EXCHANGE_RATES_CRYPTORANK_SECONDARY_COIN_ID= -# EXCHANGE_RATES_CRYPTORANK_PLATFORM_ID= -# EXCHANGE_RATES_CRYPTORANK_BASE_URL= -# EXCHANGE_RATES_CRYPTORANK_API_KEY= -# EXCHANGE_RATES_CRYPTORANK_COIN_ID= -# EXCHANGE_RATES_CRYPTORANK_LIMIT= -# TOKEN_EXCHANGE_RATES_SOURCE= -# EXCHANGE_RATES_COINGECKO_PLATFORM_ID= -# TOKEN_EXCHANGE_RATE_INTERVAL= -# TOKEN_EXCHANGE_RATE_REFETCH_INTERVAL= -# TOKEN_EXCHANGE_RATE_MAX_BATCH_SIZE= -# DISABLE_TOKEN_EXCHANGE_RATE= +DISABLE_MARKET=true +# MARKET_NATIVE_COIN_SOURCE= +# MARKET_SECONDARY_COIN_SOURCE= +# MARKET_TOKENS_SOURCE= +# MARKET_NATIVE_COIN_HISTORY_SOURCE= +# MARKET_SECONDARY_COIN_HISTORY_SOURCE= +# MARKET_CAP_HISTORY_SOURCE= +# MARKET_TVL_HISTORY_SOURCE= +# MARKET_COINGECKO_COIN_ID= +# MARKET_COINGECKO_SECONDARY_COIN_ID= +# MARKET_COINGECKO_API_KEY= +# MARKET_COINGECKO_BASE_URL= +# MARKET_COINGECKO_BASE_PRO_URL= +# MARKET_COINGECKO_PLATFORM_ID= +# MARKET_COINMARKETCAP_BASE_URL= +# MARKET_COINMARKETCAP_API_KEY= +# MARKET_COINMARKETCAP_COIN_ID= +# MARKET_COINMARKETCAP_SECONDARY_COIN_ID= +# MARKET_CRYPTOCOMPARE_BASE_URL= +# MARKET_CRYPTOCOMPARE_COIN_SYMBOL= +# MARKET_CRYPTOCOMPARE_SECONDARY_COIN_SYMBOL= +# MARKET_CRYPTORANK_SECONDARY_COIN_ID= +# MARKET_CRYPTORANK_PLATFORM_ID= +# MARKET_CRYPTORANK_BASE_URL= +# MARKET_CRYPTORANK_API_KEY= +# MARKET_CRYPTORANK_COIN_ID= +# MARKET_DEFILLAMA_COIN_ID= +# MARKET_MOBULA_CHAIN_ID= +# MARKET_MOBULA_BASE_URL= +# MARKET_MOBULA_API_KEY= +# MARKET_MOBULA_COIN_ID= +# MARKET_MOBULA_SECONDARY_COIN_ID= +# MARKET_COIN_FETCHER_ENABLED= +# MARKET_COIN_CACHE_PERIOD= +# MARKET_TOKENS_FETCHER_ENABLED= +# MARKET_TOKENS_INTERVAL= +# MARKET_TOKENS_REFETCH_INTERVAL= +# MARKET_TOKENS_MAX_BATCH_SIZE= +# MARKET_HISTORY_FETCHER_ENABLED= +# MARKET_HISTORY_FETCH_INTERVAL= +# MARKET_HISTORY_FIRST_FETCH_DAY_COUNT= POOL_SIZE=80 POOL_SIZE_API=10 ECTO_USE_SSL=false @@ -81,68 +102,66 @@ HEART_BEAT_TIMEOUT=30 # HEART_COMMAND= # BLOCKSCOUT_VERSION= RELEASE_LINK= -BLOCK_TRANSFORMER=base +# BLOCK_TRANSFORMER=base # BLOCK_RANGES= # FIRST_BLOCK= # LAST_BLOCK= # TRACE_BLOCK_RANGES= # TRACE_FIRST_BLOCK= # TRACE_LAST_BLOCK= -# FOOTER_CHAT_LINK= -# FOOTER_FORUM_LINK_ENABLED= -# FOOTER_FORUM_LINK= -# FOOTER_TELEGRAM_LINK_ENABLED= -# FOOTER_TELEGRAM_LINK= -# FOOTER_GITHUB_LINK= -FOOTER_LOGO=/images/blockscout_logo.svg -FOOTER_LINK_TO_OTHER_EXPLORERS=false -FOOTER_OTHER_EXPLORERS={} -SUPPORTED_CHAINS={} -CACHE_BLOCK_COUNT_PERIOD=7200 -CACHE_TXS_COUNT_PERIOD=7200 -CACHE_ADDRESS_SUM_PERIOD=3600 -CACHE_TOTAL_GAS_USAGE_PERIOD=3600 -CACHE_ADDRESS_TRANSACTIONS_GAS_USAGE_COUNTER_PERIOD=1800 -CACHE_TOKEN_HOLDERS_COUNTER_PERIOD=3600 -CACHE_TOKEN_TRANSFERS_COUNTER_PERIOD=3600 -CACHE_ADDRESS_WITH_BALANCES_UPDATE_INTERVAL=1800 -CACHE_AVERAGE_BLOCK_PERIOD=1800 -CACHE_MARKET_HISTORY_PERIOD=21600 -CACHE_ADDRESS_TRANSACTIONS_COUNTER_PERIOD=1800 -CACHE_ADDRESS_TOKENS_USD_SUM_PERIOD=3600 -CACHE_ADDRESS_TOKEN_TRANSFERS_COUNTER_PERIOD=1800 +# CACHE_BLOCK_COUNT_PERIOD=7200 +# CACHE_TXS_COUNT_PERIOD=7200 +# CACHE_ADDRESS_SUM_PERIOD=3600 +# CACHE_TOTAL_GAS_USAGE_PERIOD=7200 +# CACHE_ADDRESS_TRANSACTIONS_GAS_USAGE_COUNTER_PERIOD=1800 +# CACHE_TOKEN_HOLDERS_COUNTER_PERIOD=3600 +# CACHE_TOKEN_TRANSFERS_COUNTER_PERIOD=3600 +# CACHE_ADDRESS_COUNT_PERIOD=1800 +# CACHE_AVERAGE_BLOCK_PERIOD=1800 +# CACHE_MARKET_HISTORY_PERIOD=21600 +# CACHE_ADDRESS_TRANSACTIONS_COUNTER_PERIOD=3600 +# CACHE_ADDRESS_TOKENS_USD_SUM_PERIOD=3600 +# CACHE_ADDRESS_TOKEN_TRANSFERS_COUNTER_PERIOD=3600 # CACHE_TRANSACTIONS_24H_STATS_PERIOD= # CACHE_FRESH_PENDING_TRANSACTIONS_COUNTER_PERIOD= # TOKEN_BALANCE_ON_DEMAND_FETCHER_THRESHOLD= # COIN_BALANCE_ON_DEMAND_FETCHER_THRESHOLD= # CONTRACT_CODE_ON_DEMAND_FETCHER_THRESHOLD= # TOKEN_INSTANCE_METADATA_REFETCH_ON_DEMAND_FETCHER_THRESHOLD= -TOKEN_METADATA_UPDATE_INTERVAL=172800 -CONTRACT_VERIFICATION_ALLOWED_SOLIDITY_EVM_VERSIONS=homestead,tangerineWhistle,spuriousDragon,byzantium,constantinople,petersburg,istanbul,berlin,london,paris,shanghai,cancun,default -CONTRACT_VERIFICATION_ALLOWED_VYPER_EVM_VERSIONS=byzantium,constantinople,petersburg,istanbul,berlin,paris,shanghai,cancun,default +# ADDRESSES_TABS_COUNTERS_TTL=10m +# TOKEN_METADATA_UPDATE_INTERVAL=48h +# TOKEN_COUNTERS_UPDATE_INTERVAL=3h +# CONTRACT_VERIFICATION_ALLOWED_SOLIDITY_EVM_VERSIONS=homestead,tangerineWhistle,spuriousDragon,byzantium,constantinople,petersburg,istanbul,berlin,london,paris,shanghai,cancun,prague,default +# CONTRACT_VERIFICATION_ALLOWED_VYPER_EVM_VERSIONS=byzantium,constantinople,petersburg,istanbul,berlin,paris,shanghai,cancun,default # CONTRACT_VERIFICATION_MAX_LIBRARIES=10 -CONTRACT_MAX_STRING_LENGTH_WITHOUT_TRIMMING=2040 -# CONTRACT_DISABLE_INTERACTION= # CONTRACT_AUDIT_REPORTS_AIRTABLE_URL= # CONTRACT_AUDIT_REPORTS_AIRTABLE_API_KEY= # CONTRACT_CERTIFIED_LIST= -UNCLES_IN_AVERAGE_BLOCK_TIME=false -DISABLE_WEBAPP=false -API_V2_ENABLED=true +# CONTRACT_ENABLE_PARTIAL_REVERIFICATION= +# UNCLES_IN_AVERAGE_BLOCK_TIME=false +# DISABLE_WEBAPP=true +ADMIN_PANEL_ENABLED=false +# API_V2_ENABLED=true API_V1_READ_METHODS_DISABLED=false API_V1_WRITE_METHODS_DISABLED=false # API_RATE_LIMIT_DISABLED=true # API_SENSITIVE_ENDPOINTS_KEY= -API_RATE_LIMIT_TIME_INTERVAL=1s -API_RATE_LIMIT_BY_IP_TIME_INTERVAL=5m -API_RATE_LIMIT=50 -API_RATE_LIMIT_BY_KEY=50 -API_RATE_LIMIT_BY_WHITELISTED_IP=50 -API_RATE_LIMIT_WHITELISTED_IPS= -API_RATE_LIMIT_STATIC_API_KEY= -API_RATE_LIMIT_UI_V2_WITH_TOKEN=5 -API_RATE_LIMIT_BY_IP=3000 -API_NO_RATE_LIMIT_API_KEY= +# API_RATE_LIMIT_BY_KEY_TIME_INTERVAL=1s +# API_RATE_LIMIT_BY_WHITELISTED_IP_TIME_INTERVAL=1s +# API_RATE_LIMIT_UI_V2_WITH_TOKEN_TIME_INTERVAL=1s +# API_RATE_LIMIT_BY_ACCOUNT_API_KEY_TIME_INTERVAL=1s +# API_RATE_LIMIT_BY_IP_TIME_INTERVAL=5m +# API_RATE_LIMIT=50 +# API_RATE_LIMIT_BY_KEY=10 +# API_RATE_LIMIT_BY_WHITELISTED_IP=50 +# API_RATE_LIMIT_WHITELISTED_IPS= +# API_RATE_LIMIT_STATIC_API_KEY= +# API_RATE_LIMIT_UI_V2_WITH_TOKEN=5 +# API_RATE_LIMIT_BY_IP=3000 +# API_RATE_LIMIT_CONFIG_URL= +# API_RATE_LIMIT_REMOTE_IP_HEADERS= +# API_RATE_LIMIT_REMOTE_IP_KNOWN_PROXIES= +# API_NO_RATE_LIMIT_API_KEY= # API_GRAPHQL_ENABLED= # API_GRAPHQL_MAX_COMPLEXITY= # API_GRAPHQL_TOKEN_LIMIT= @@ -154,28 +173,32 @@ API_NO_RATE_LIMIT_API_KEY= # API_GRAPHQL_RATE_LIMIT_BY_IP= # API_GRAPHQL_RATE_LIMIT_BY_IP_TIME_INTERVAL= # API_GRAPHQL_RATE_LIMIT_STATIC_API_KEY= -DISABLE_INDEXER=false -DISABLE_REALTIME_INDEXER=false -DISABLE_CATCHUP_INDEXER=false -INDEXER_DISABLE_ADDRESS_COIN_BALANCE_FETCHER=false -INDEXER_DISABLE_TOKEN_INSTANCE_REALTIME_FETCHER=false -INDEXER_DISABLE_TOKEN_INSTANCE_RETRY_FETCHER=false -INDEXER_DISABLE_TOKEN_INSTANCE_SANITIZE_FETCHER=false -INDEXER_DISABLE_TOKEN_INSTANCE_LEGACY_SANITIZE_FETCHER=false -INDEXER_DISABLE_PENDING_TRANSACTIONS_FETCHER=false -INDEXER_DISABLE_INTERNAL_TRANSACTIONS_FETCHER=false +# DISABLE_INDEXER=false +# DISABLE_REALTIME_INDEXER=false +# DISABLE_CATCHUP_INDEXER=false +# INDEXER_DISABLE_ADDRESS_COIN_BALANCE_FETCHER=false +# INDEXER_DISABLE_TOKEN_INSTANCE_REALTIME_FETCHER=false +# INDEXER_DISABLE_TOKEN_INSTANCE_RETRY_FETCHER=false +# INDEXER_DISABLE_TOKEN_INSTANCE_SANITIZE_FETCHER=false +# INDEXER_DISABLE_TOKEN_INSTANCE_REFETCH_FETCHER=false +# INDEXER_PENDING_TRANSACTIONS_SANITIZER_INTERVAL= +# INDEXER_DISABLE_PENDING_TRANSACTIONS_FETCHER=false +# INDEXER_DISABLE_INTERNAL_TRANSACTIONS_FETCHER=false # INDEXER_DISABLE_CATALOGED_TOKEN_UPDATER_FETCHER= # INDEXER_DISABLE_BLOCK_REWARD_FETCHER= # INDEXER_DISABLE_EMPTY_BLOCKS_SANITIZER= # INDEXER_DISABLE_WITHDRAWALS_FETCHER= # INDEXER_DISABLE_REPLACED_TRANSACTION_FETCHER= +# INDEXER_DISABLE_MULTICHAIN_SEARCH_DB_EXPORT_MAIN_QUEUE_FETCHER= +# INDEXER_DISABLE_MULTICHAIN_SEARCH_DB_EXPORT_BALANCES_QUEUE_FETCHER= +# INDEXER_DISABLE_MULTICHAIN_SEARCH_DB_EXPORT_TOKEN_INFO_QUEUE_FETCHER= +# INDEXER_DISABLE_MULTICHAIN_SEARCH_DB_EXPORT_COUNTERS_QUEUE_FETCHER= # INDEXER_CATCHUP_BLOCKS_BATCH_SIZE= # INDEXER_CATCHUP_BLOCKS_CONCURRENCY= # INDEXER_CATCHUP_BLOCK_INTERVAL= # INDEXER_EMPTY_BLOCKS_SANITIZER_INTERVAL= # INDEXER_INTERNAL_TRANSACTIONS_BATCH_SIZE= # INDEXER_INTERNAL_TRANSACTIONS_CONCURRENCY= -# ETHEREUM_JSONRPC_DEBUG_TRACE_TRANSACTION_TIMEOUT= # INDEXER_BLOCK_REWARD_BATCH_SIZE= # INDEXER_BLOCK_REWARD_CONCURRENCY= # INDEXER_TOKEN_INSTANCE_USE_BASE_URI_RETRY= @@ -186,17 +209,34 @@ INDEXER_DISABLE_INTERNAL_TRANSACTIONS_FETCHER=false # INDEXER_TOKEN_INSTANCE_REALTIME_CONCURRENCY= # INDEXER_TOKEN_INSTANCE_SANITIZE_BATCH_SIZE=10 # INDEXER_TOKEN_INSTANCE_SANITIZE_CONCURRENCY= -# INDEXER_TOKEN_INSTANCE_LEGACY_SANITIZE_BATCH_SIZE=10 -# INDEXER_TOKEN_INSTANCE_LEGACY_SANITIZE_CONCURRENCY=10 +# INDEXER_TOKEN_INSTANCE_REFETCH_BATCH_SIZE=10 +# INDEXER_TOKEN_INSTANCE_REFETCH_CONCURRENCY= +# INDEXER_SIGNED_AUTHORIZATION_STATUS_BATCH_SIZE= +# INDEXER_MULTICHAIN_SEARCH_DB_EXPORT_MAIN_QUEUE_BATCH_SIZE= +# INDEXER_MULTICHAIN_SEARCH_DB_EXPORT_MAIN_QUEUE_CONCURRENCY= +# INDEXER_MULTICHAIN_SEARCH_DB_EXPORT_MAIN_QUEUE_ENQUEUE_BUSY_WAITING_TIMEOUT= +# INDEXER_MULTICHAIN_SEARCH_DB_EXPORT_MAIN_QUEUE_MAX_QUEUE_SIZE= +# INDEXER_MULTICHAIN_SEARCH_DB_EXPORT_MAIN_QUEUE_INIT_QUERY_LIMIT= +# INDEXER_MULTICHAIN_SEARCH_DB_EXPORT_BALANCES_QUEUE_BATCH_SIZE= +# INDEXER_MULTICHAIN_SEARCH_DB_EXPORT_BALANCES_QUEUE_CONCURRENCY= +# INDEXER_MULTICHAIN_SEARCH_DB_EXPORT_BALANCES_QUEUE_ENQUEUE_BUSY_WAITING_TIMEOUT= +# INDEXER_MULTICHAIN_SEARCH_DB_EXPORT_BALANCES_QUEUE_MAX_QUEUE_SIZE= +# INDEXER_MULTICHAIN_SEARCH_DB_EXPORT_BALANCES_QUEUE_INIT_QUERY_LIMIT= +# INDEXER_MULTICHAIN_SEARCH_DB_EXPORT_TOKEN_INFO_QUEUE_BATCH_SIZE= +# INDEXER_MULTICHAIN_SEARCH_DB_EXPORT_TOKEN_INFO_QUEUE_CONCURRENCY= +# INDEXER_MULTICHAIN_SEARCH_DB_EXPORT_TOKEN_INFO_QUEUE_ENQUEUE_BUSY_WAITING_TIMEOUT= +# INDEXER_MULTICHAIN_SEARCH_DB_EXPORT_TOKEN_INFO_QUEUE_MAX_QUEUE_SIZE= +# INDEXER_MULTICHAIN_SEARCH_DB_EXPORT_TOKEN_INFO_QUEUE_INIT_QUERY_LIMIT= +# INDEXER_MULTICHAIN_SEARCH_DB_EXPORT_COUNTERS_QUEUE_BATCH_SIZE= +# INDEXER_MULTICHAIN_SEARCH_DB_EXPORT_COUNTERS_QUEUE_CONCURRENCY= +# INDEXER_MULTICHAIN_SEARCH_DB_EXPORT_COUNTERS_QUEUE_ENQUEUE_BUSY_WAITING_TIMEOUT= +# INDEXER_MULTICHAIN_SEARCH_DB_EXPORT_COUNTERS_QUEUE_MAX_QUEUE_SIZE= +# INDEXER_MULTICHAIN_SEARCH_DB_EXPORT_COUNTERS_QUEUE_INIT_QUERY_LIMIT= +# INDEXER_TOKEN_INSTANCE_CIDR_BLACKLIST= +# INDEXER_TOKEN_INSTANCE_HOST_FILTERING_ENABLED= +# INDEXER_TOKEN_INSTANCE_ALLOWED_URI_PROTOCOLS= # INDEXER_DISABLE_TOKEN_INSTANCE_ERC_1155_SANITIZE_FETCHER=false # INDEXER_DISABLE_TOKEN_INSTANCE_ERC_721_SANITIZE_FETCHER=false -# INDEXER_TOKEN_INSTANCE_ERC_1155_SANITIZE_CONCURRENCY=2 -# INDEXER_TOKEN_INSTANCE_ERC_1155_SANITIZE_BATCH_SIZE=10 -# INDEXER_TOKEN_INSTANCE_ERC_721_SANITIZE_CONCURRENCY=2 -# INDEXER_TOKEN_INSTANCE_ERC_721_SANITIZE_BATCH_SIZE=10 -# INDEXER_TOKEN_INSTANCE_ERC_721_SANITIZE_TOKENS_BATCH_SIZE=100 -# TOKEN_INSTANCE_OWNER_MIGRATION_CONCURRENCY=5 -# TOKEN_INSTANCE_OWNER_MIGRATION_BATCH_SIZE=50 # INDEXER_COIN_BALANCES_BATCH_SIZE= # INDEXER_COIN_BALANCES_CONCURRENCY= # INDEXER_RECEIPTS_BATCH_SIZE= @@ -206,25 +246,19 @@ INDEXER_DISABLE_INTERNAL_TRANSACTIONS_FETCHER=false # INDEXER_TOKEN_BALANCES_CONCURRENCY= # INDEXER_TOKEN_BALANCES_MAX_REFETCH_INTERVAL= # INDEXER_TOKEN_BALANCES_EXPONENTIAL_TIMEOUT_COEFF= +# INDEXER_DB_EVENT_NOTIFICATIONS_CLEANUP_ENABLED=true +# INDEXER_DB_EVENT_NOTIFICATIONS_CLEANUP_INTERVAL= +# INDEXER_DB_EVENT_NOTIFICATIONS_CLEANUP_MAX_AGE= # INDEXER_TX_ACTIONS_ENABLE= # INDEXER_TX_ACTIONS_MAX_TOKEN_CACHE_SIZE= # INDEXER_TX_ACTIONS_REINDEX_FIRST_BLOCK= # INDEXER_TX_ACTIONS_REINDEX_LAST_BLOCK= # INDEXER_TX_ACTIONS_REINDEX_PROTOCOLS= # INDEXER_TX_ACTIONS_AAVE_V3_POOL_CONTRACT= -# INDEXER_POLYGON_EDGE_L1_RPC= -# INDEXER_POLYGON_EDGE_L1_EXIT_HELPER_CONTRACT= -# INDEXER_POLYGON_EDGE_L1_WITHDRAWALS_START_BLOCK= -# INDEXER_POLYGON_EDGE_L1_STATE_SENDER_CONTRACT= -# INDEXER_POLYGON_EDGE_L1_DEPOSITS_START_BLOCK= -# INDEXER_POLYGON_EDGE_L2_STATE_SENDER_CONTRACT= -# INDEXER_POLYGON_EDGE_L2_WITHDRAWALS_START_BLOCK= -# INDEXER_POLYGON_EDGE_L2_STATE_RECEIVER_CONTRACT= -# INDEXER_POLYGON_EDGE_L2_DEPOSITS_START_BLOCK= -# INDEXER_POLYGON_EDGE_ETH_GET_LOGS_RANGE_SIZE= # INDEXER_POLYGON_ZKEVM_BATCHES_ENABLED= # INDEXER_POLYGON_ZKEVM_BATCHES_CHUNK_SIZE= # INDEXER_POLYGON_ZKEVM_BATCHES_RECHECK_INTERVAL= +# INDEXER_POLYGON_ZKEVM_BATCHES_IGNORE=0 # INDEXER_POLYGON_ZKEVM_L1_RPC= # INDEXER_POLYGON_ZKEVM_L1_BRIDGE_START_BLOCK= # INDEXER_POLYGON_ZKEVM_L1_BRIDGE_CONTRACT= @@ -259,43 +293,47 @@ INDEXER_DISABLE_INTERNAL_TRANSACTIONS_FETCHER=false # INDEXER_ARBITRUM_BATCHES_TRACKING_MESSAGES_TO_BLOCKS_SHIFT= # INDEXER_ARBITRUM_CONFIRMATIONS_TRACKING_FINALIZED= # INDEXER_ARBITRUM_BATCHES_TRACKING_L1_FINALIZATION_CHECK_ENABLED= +# INDEXER_ARBITRUM_BATCHES_TRACKING_FAILURE_THRESHOLD= # INDEXER_ARBITRUM_BRIDGE_MESSAGES_TRACKING_ENABLED= # INDEXER_ARBITRUM_TRACKING_MESSAGES_ON_L1_RECHECK_INTERVAL= # INDEXER_ARBITRUM_MISSED_MESSAGES_RECHECK_INTERVAL= # INDEXER_ARBITRUM_MISSED_MESSAGES_BLOCKS_DEPTH= -# CELO_CORE_CONTRACTS= -# INDEXER_CELO_VALIDATOR_GROUP_VOTES_BATCH_SIZE=200000 -# INDEXER_DISABLE_CELO_EPOCH_FETCHER=false -# INDEXER_DISABLE_CELO_VALIDATOR_GROUP_VOTES_FETCHER=false -# BERYX_API_TOKEN= -# BERYX_API_BASE_URL= -# FILECOIN_NETWORK_PREFIX=f -# FILECOIN_PENDING_ADDRESS_OPERATIONS_MIGRATION_BATCH_SIZE= -# FILECOIN_PENDING_ADDRESS_OPERATIONS_MIGRATION_CONCURRENCY= -# INDEXER_DISABLE_FILECOIN_ADDRESS_INFO_FETCHER=false -# INDEXER_FILECOIN_ADDRESS_INFO_CONCURRENCY=1 -# INDEXER_REALTIME_FETCHER_MAX_GAP= -# INDEXER_FETCHER_INIT_QUERY_LIMIT= -# INDEXER_TOKEN_BALANCES_FETCHER_INIT_QUERY_LIMIT= -# INDEXER_COIN_BALANCES_FETCHER_INIT_QUERY_LIMIT= -# INDEXER_GRACEFUL_SHUTDOWN_PERIOD= -# INDEXER_INTERNAL_TRANSACTIONS_FETCH_ORDER= -# INDEXER_SYSTEM_MEMORY_PERCENTAGE= -# WITHDRAWALS_FIRST_BLOCK= +# INDEXER_ARBITRUM_DATA_BACKFILL_ENABLED= +# INDEXER_ARBITRUM_DATA_BACKFILL_UNINDEXED_BLOCKS_RECHECK_INTERVAL= +# INDEXER_ARBITRUM_DATA_BACKFILL_BLOCKS_DEPTH= # INDEXER_OPTIMISM_L1_RPC= # INDEXER_OPTIMISM_L1_SYSTEM_CONFIG_CONTRACT= +# INDEXER_OPTIMISM_L1_PORTAL_CONTRACT= +# INDEXER_OPTIMISM_L1_START_BLOCK= +# INDEXER_OPTIMISM_L1_BATCH_INBOX= +# INDEXER_OPTIMISM_L1_BATCH_SUBMITTER= # INDEXER_OPTIMISM_L1_BATCH_BLOCKS_CHUNK_SIZE= # INDEXER_OPTIMISM_L2_BATCH_GENESIS_BLOCK_NUMBER= +# INDEXER_OPTIMISM_BLOCK_DURATION= # INDEXER_OPTIMISM_L1_OUTPUT_ORACLE_CONTRACT= # INDEXER_OPTIMISM_L2_WITHDRAWALS_START_BLOCK= # INDEXER_OPTIMISM_L2_MESSAGE_PASSER_CONTRACT= -# INDEXER_OPTIMISM_L1_DEPOSITS_BATCH_SIZE= # INDEXER_OPTIMISM_L1_DEPOSITS_TRANSACTION_TYPE= +# INDEXER_OPTIMISM_L1_ETH_GET_LOGS_RANGE_SIZE= +# INDEXER_OPTIMISM_L2_ETH_GET_LOGS_RANGE_SIZE= +# INDEXER_OPTIMISM_L2_HOLOCENE_TIMESTAMP= +# INDEXER_OPTIMISM_L2_HOLOCENE_BLOCKS_CHUNK_SIZE= +# INDEXER_OPTIMISM_L2_INTEROP_START_BLOCK= +# INDEXER_OPTIMISM_L2_INTEROP_BLOCKS_CHUNK_SIZE= +# INDEXER_OPTIMISM_CHAINSCOUT_API_URL= +# INDEXER_OPTIMISM_CHAINSCOUT_FALLBACK_MAP= +# INDEXER_OPTIMISM_INTEROP_PRIVATE_KEY= +# INDEXER_OPTIMISM_INTEROP_CONNECT_TIMEOUT= +# INDEXER_OPTIMISM_INTEROP_RECV_TIMEOUT= +# INDEXER_OPTIMISM_INTEROP_EXPORT_EXPIRATION_DAYS= +# INDEXER_OPTIMISM_MULTICHAIN_BATCH_SIZE= +# INDEXER_DISABLE_OPTIMISM_INTEROP_MULTICHAIN_EXPORT= # INDEXER_SCROLL_L1_RPC= # INDEXER_SCROLL_L1_MESSENGER_CONTRACT= # INDEXER_SCROLL_L1_MESSENGER_START_BLOCK= # INDEXER_SCROLL_L1_CHAIN_CONTRACT= # INDEXER_SCROLL_L1_BATCH_START_BLOCK= +# INDEXER_SCROLL_L1_BATCH_BLOCKSCOUT_BLOBS_API_URL= # INDEXER_SCROLL_L2_MESSENGER_CONTRACT= # INDEXER_SCROLL_L2_MESSENGER_START_BLOCK= # INDEXER_SCROLL_L2_GAS_ORACLE_CONTRACT= @@ -308,6 +346,28 @@ INDEXER_DISABLE_INTERNAL_TRANSACTIONS_FETCHER=false # SCROLL_L1_BLOB_SCALAR_INIT= # SCROLL_L1_BASE_FEE_INIT= # SCROLL_L1_BLOB_BASE_FEE_INIT= +# CELO_CORE_CONTRACTS= +# CELO_L2_MIGRATION_BLOCK= +# CELO_EPOCH_MANAGER_CONTRACT= +# CELO_UNRELEASED_TREASURY_CONTRACT= +# CELO_VALIDATORS_CONTRACT= +# INDEXER_CELO_VALIDATOR_GROUP_VOTES_BATCH_SIZE=200000 +# INDEXER_DISABLE_CELO_EPOCH_FETCHER=false +# INDEXER_DISABLE_CELO_VALIDATOR_GROUP_VOTES_FETCHER=false +# BERYX_API_TOKEN= +# BERYX_API_BASE_URL= +# FILECOIN_NETWORK_PREFIX=f +# INDEXER_DISABLE_FILECOIN_ADDRESS_INFO_FETCHER=false +# INDEXER_FILECOIN_ADDRESS_INFO_CONCURRENCY=1 +# INDEXER_REALTIME_FETCHER_MAX_GAP= +# INDEXER_REALTIME_FETCHER_POLLING_PERIOD= +# INDEXER_FETCHER_INIT_QUERY_LIMIT= +# INDEXER_TOKEN_BALANCES_FETCHER_INIT_QUERY_LIMIT= +# INDEXER_COIN_BALANCES_FETCHER_INIT_QUERY_LIMIT= +# INDEXER_GRACEFUL_SHUTDOWN_PERIOD= +# INDEXER_INTERNAL_TRANSACTIONS_FETCH_ORDER= +# INDEXER_SYSTEM_MEMORY_PERCENTAGE= +# WITHDRAWALS_FIRST_BLOCK= # ROOTSTOCK_REMASC_ADDRESS= # ROOTSTOCK_BRIDGE_ADDRESS= # ROOTSTOCK_LOCKED_BTC_CACHE_PERIOD= @@ -324,26 +384,20 @@ INDEXER_DISABLE_INTERNAL_TRANSACTIONS_FETCHER=false # INDEXER_BEACON_BLOB_FETCHER_REFERENCE_TIMESTAMP=1702824023 # INDEXER_BEACON_BLOB_FETCHER_START_BLOCK=19200000 # INDEXER_BEACON_BLOB_FETCHER_END_BLOCK=0 -# TOKEN_ID_MIGRATION_FIRST_BLOCK= -# TOKEN_ID_MIGRATION_CONCURRENCY= -# TOKEN_ID_MIGRATION_BATCH_SIZE= +# INDEXER_DISABLE_BEACON_DEPOSIT_FETCHER= +# INDEXER_BEACON_DEPOSIT_FETCHER_INTERVAL= +# INDEXER_BEACON_DEPOSIT_FETCHER_BATCH_SIZE= +# INDEXER_DISABLE_BEACON_DEPOSIT_STATUS_FETCHER= +# INDEXER_BEACON_DEPOSIT_STATUS_FETCHER_EPOCH_DURATION= +# INDEXER_BEACON_DEPOSIT_STATUS_FETCHER_REFERENCE_TIMESTAMP # MISSING_BALANCE_OF_TOKENS_WINDOW_SIZE= # INDEXER_INTERNAL_TRANSACTIONS_TRACER_TYPE= # WEBAPP_URL= # API_URL= -SHOW_ADDRESS_MARKETCAP_PERCENTAGE=true -CHECKSUM_ADDRESS_HASHES=true -CHECKSUM_FUNCTION=eth -DISABLE_EXCHANGE_RATES=true -TXS_STATS_ENABLED=true -SHOW_PRICE_CHART=false -SHOW_PRICE_CHART_LEGEND=false -SHOW_TXS_CHART=true -TXS_HISTORIAN_INIT_LAG=0 +# CHECKSUM_ADDRESS_HASHES=true +# TXS_HISTORIAN_INIT_LAG=0 TXS_STATS_DAYS_TO_COMPILE_AT_INIT=10 COIN_BALANCE_HISTORY_DAYS=90 -APPS_MENU=true -EXTERNAL_APPS=[] # GAS_PRICE= # GAS_PRICE_ORACLE_CACHE_PERIOD= # GAS_PRICE_ORACLE_SIMPLE_TRANSACTION_GAS= @@ -354,43 +408,51 @@ EXTERNAL_APPS=[] # GAS_PRICE_ORACLE_SAFELOW_TIME_COEFFICIENT= # GAS_PRICE_ORACLE_AVERAGE_TIME_COEFFICIENT= # GAS_PRICE_ORACLE_FAST_TIME_COEFFICIENT= -# RESTRICTED_LIST= -# RESTRICTED_LIST_KEY= -SHOW_MAINTENANCE_ALERT=false -MAINTENANCE_ALERT_MESSAGE= -CHAIN_ID= -MAX_SIZE_UNLESS_HIDE_ARRAY=50 -HIDE_BLOCK_MINER=false +# ADDRESSES_BLACKLIST= +# ADDRESSES_BLACKLIST_KEY= +# ADDRESSES_BLACKLIST_URL= +# ADDRESSES_BLACKLIST_UPDATE_INTERVAL= +# ADDRESSES_BLACKLIST_RETRY_INTERVAL= +# ADDRESSES_BLACKLIST_PROVIDER= +# CHAIN_ID= # HIDE_SCAM_ADDRESSES= -DISPLAY_TOKEN_ICONS=false -RE_CAPTCHA_SECRET_KEY= -RE_CAPTCHA_CLIENT_KEY= -RE_CAPTCHA_V3_SECRET_KEY= -RE_CAPTCHA_V3_CLIENT_KEY= +# RE_CAPTCHA_SECRET_KEY= +# RE_CAPTCHA_V3_SECRET_KEY= RE_CAPTCHA_DISABLED=false # RE_CAPTCHA_CHECK_HOSTNAME -JSON_RPC= +# RE_CAPTCHA_SCORE_THRESHOLD +# RE_CAPTCHA_BYPASS_TOKEN +# RE_CAPTCHA_TOKEN_INSTANCE_REFETCH_METADATA_SCOPED_BYPASS_TOKEN= # API_RATE_LIMIT_HAMMER_REDIS_URL=redis://redis-db:6379/1 # API_RATE_LIMIT_IS_BLOCKSCOUT_BEHIND_PROXY=false -API_RATE_LIMIT_UI_V2_TOKEN_TTL_IN_SECONDS=18000 -FETCH_REWARDS_WAY=trace_block -MICROSERVICE_SC_VERIFIER_ENABLED=true +# API_RATE_LIMIT_UI_V2_TOKEN_TTL_IN_SECONDS=18000 +# FETCH_REWARDS_WAY=trace_block +# MICROSERVICE_SC_VERIFIER_ENABLED=true # MICROSERVICE_SC_VERIFIER_URL=http://smart-contract-verifier:8050/ # MICROSERVICE_SC_VERIFIER_TYPE=sc_verifier -MICROSERVICE_SC_VERIFIER_URL=https://eth-bytecode-db.services.blockscout.com/ +# MICROSERVICE_SC_VERIFIER_API_KEY= MICROSERVICE_SC_VERIFIER_TYPE=eth_bytecode_db -MICROSERVICE_ETH_BYTECODE_DB_INTERVAL_BETWEEN_LOOKUPS=10m -MICROSERVICE_ETH_BYTECODE_DB_MAX_LOOKUPS_CONCURRENCY=10 +# MICROSERVICE_ETH_BYTECODE_DB_INTERVAL_BETWEEN_LOOKUPS=10m +# MICROSERVICE_ETH_BYTECODE_DB_MAX_LOOKUPS_CONCURRENCY=10 MICROSERVICE_VISUALIZE_SOL2UML_ENABLED=true MICROSERVICE_VISUALIZE_SOL2UML_URL=http://visualizer:8050/ MICROSERVICE_SIG_PROVIDER_ENABLED=true MICROSERVICE_SIG_PROVIDER_URL=http://sig-provider:8050/ # MICROSERVICE_BENS_URL= # MICROSERVICE_BENS_ENABLED= -MICROSERVICE_ACCOUNT_ABSTRACTION_ENABLED=false +# MICROSERVICE_ACCOUNT_ABSTRACTION_ENABLED=false MICROSERVICE_ACCOUNT_ABSTRACTION_URL=http://user-ops-indexer:8050/ # MICROSERVICE_METADATA_URL= # MICROSERVICE_METADATA_ENABLED= +# MICROSERVICE_METADATA_PROXY_REQUESTS_TIMEOUT= +# MICROSERVICE_STYLUS_VERIFIER_URL= +# MICROSERVICE_MULTICHAIN_SEARCH_URL= +# MICROSERVICE_MULTICHAIN_SEARCH_API_KEY= +# MICROSERVICE_MULTICHAIN_SEARCH_ADDRESSES_CHUNK_SIZE= +# MICROSERVICE_MULTICHAIN_SEARCH_TOKEN_INFO_CHUNK_SIZE= +# MICROSERVICE_MULTICHAIN_SEARCH_COUNTERS_CHUNK_SIZE= +# MICROSERVICE_TAC_OPERATION_LIFECYCLE_ENABLED= +# MICROSERVICE_TAC_OPERATION_LIFECYCLE_URL= DECODE_NOT_A_CONTRACT_CALLS=true # DATABASE_READ_ONLY_API_URL= # ACCOUNT_DATABASE_URL= @@ -398,8 +460,7 @@ DECODE_NOT_A_CONTRACT_CALLS=true # ACCOUNT_AUTH0_DOMAIN= # ACCOUNT_AUTH0_CLIENT_ID= # ACCOUNT_AUTH0_CLIENT_SECRET= -# ACCOUNT_PUBLIC_TAGS_AIRTABLE_URL= -# ACCOUNT_PUBLIC_TAGS_AIRTABLE_API_KEY= +# ACCOUNT_AUTH0_APPLICATION_ID= # ACCOUNT_SENDGRID_API_KEY= # ACCOUNT_SENDGRID_SENDER= # ACCOUNT_SENDGRID_TEMPLATE= @@ -407,26 +468,27 @@ DECODE_NOT_A_CONTRACT_CALLS=true # ACCOUNT_OTP_RESEND_INTERVAL= # ACCOUNT_PRIVATE_TAGS_LIMIT=2000 # ACCOUNT_WATCHLIST_ADDRESSES_LIMIT=15 +# ACCOUNT_SIWE_MESSAGE= ACCOUNT_CLOAK_KEY= ACCOUNT_ENABLED=false ACCOUNT_REDIS_URL=redis://redis-db:6379 -EIP_1559_ELASTICITY_MULTIPLIER=2 -# MIXPANEL_TOKEN= -# MIXPANEL_URL= -# AMPLITUDE_API_KEY= -# AMPLITUDE_URL= +# EIP_1559_ELASTICITY_MULTIPLIER=2 +# EIP_1559_BASE_FEE_MAX_CHANGE_DENOMINATOR=8 +# EIP_1559_BASE_FEE_LOWER_BOUND_WEI=0 # IPFS_GATEWAY_URL= # IPFS_GATEWAY_URL_PARAM_KEY= # IPFS_GATEWAY_URL_PARAM_VALUE= # IPFS_GATEWAY_URL_PARAM_LOCATION= # IPFS_PUBLIC_GATEWAY_URL= -# ADDRESSES_TABS_COUNTERS_TTL=10m -# DENORMALIZATION_MIGRATION_BATCH_SIZE= -# DENORMALIZATION_MIGRATION_CONCURRENCY= -# TOKEN_TRANSFER_TOKEN_TYPE_MIGRATION_BATCH_SIZE= -# TOKEN_TRANSFER_TOKEN_TYPE_MIGRATION_CONCURRENCY= -# SANITIZE_INCORRECT_NFT_BATCH_SIZE= -# SANITIZE_INCORRECT_NFT_CONCURRENCY= +# MIGRATION_TOKEN_TRANSFER_TOKEN_TYPE_BATCH_SIZE= +# MIGRATION_TOKEN_TRANSFER_TOKEN_TYPE_CONCURRENCY= +# MIGRATION_SANITIZE_INCORRECT_NFT_BATCH_SIZE= +# MIGRATION_SANITIZE_INCORRECT_NFT_CONCURRENCY= +# MIGRATION_SANITIZE_INCORRECT_NFT_TIMEOUT= +# MIGRATION_TRANSACTIONS_TABLE_DENORMALIZATION_BATCH_SIZE= +# MIGRATION_TRANSACTIONS_TABLE_DENORMALIZATION_CONCURRENCY= +# MIGRATION_TOKEN_INSTANCE_OWNER_CONCURRENCY=5 +# MIGRATION_TOKEN_INSTANCE_OWNER_BATCH_SIZE=50 # MIGRATION_RESTORE_OMITTED_WETH_TOKEN_TRANSFERS_CONCURRENCY= # MIGRATION_RESTORE_OMITTED_WETH_TOKEN_TRANSFERS_BATCH_SIZE= # MIGRATION_RESTORE_OMITTED_WETH_TOKEN_TRANSFERS_TIMEOUT= @@ -434,19 +496,64 @@ EIP_1559_ELASTICITY_MULTIPLIER=2 # MIGRATION_SANITIZE_DUPLICATED_LOG_INDEX_LOGS_BATCH_SIZE= # MIGRATION_REFETCH_CONTRACT_CODES_BATCH_SIZE= # MIGRATION_REFETCH_CONTRACT_CODES_CONCURRENCY= -SOURCIFY_INTEGRATION_ENABLED=false -SOURCIFY_SERVER_URL= -SOURCIFY_REPO_URL= -SHOW_TENDERLY_LINK=false -TENDERLY_CHAIN_PATH= +# MIGRATION_BACKFILL_MULTICHAIN_SEARCH_BATCH_SIZE= +# MIGRATION_HEAVY_INDEX_OPERATIONS_CHECK_INTERVAL= +# MIGRATION_SANITIZE_VERIFIED_ADDRESSES_DISABLED=false +# MIGRATION_SANITIZE_VERIFIED_ADDRESSES_BATCH_SIZE=500 +# MIGRATION_SANITIZE_VERIFIED_ADDRESSES_CONCURRENCY=1 +# MIGRATION_SANITIZE_VERIFIED_ADDRESSES_TIMEOUT=0s +# MIGRATION_SANITIZE_INCORRECT_WETH_BATCH_SIZE=100 +# MIGRATION_SANITIZE_INCORRECT_WETH_CONCURRENCY=1 +# MIGRATION_SANITIZE_INCORRECT_WETH_TIMEOUT= +# MIGRATION_REINDEX_INTERNAL_TRANSACTIONS_STATUS_BATCH_SIZE= +# MIGRATION_REINDEX_INTERNAL_TRANSACTIONS_STATUS_CONCURRENCY= +# MIGRATION_REINDEX_INTERNAL_TRANSACTIONS_STATUS_TIMEOUT= +# MIGRATION_REINDEX_DUPLICATED_INTERNAL_TRANSACTIONS_BATCH_SIZE= +# MIGRATION_REINDEX_DUPLICATED_INTERNAL_TRANSACTIONS_CONCURRENCY= +# MIGRATION_REINDEX_DUPLICATED_INTERNAL_TRANSACTIONS_TIMEOUT= +# MIGRATION_REINDEX_BLOCKS_WITH_MISSING_TRANSACTIONS_BATCH_SIZE= +# MIGRATION_REINDEX_BLOCKS_WITH_MISSING_TRANSACTIONS_CONCURRENCY= +# MIGRATION_REINDEX_BLOCKS_WITH_MISSING_TRANSACTIONS_TIMEOUT= +# MIGRATION_REINDEX_BLOCKS_WITH_MISSING_TRANSACTIONS_ENABLED= +# MIGRATION_SHRINK_INTERNAL_TRANSACTIONS_BATCH_SIZE= +# MIGRATION_SHRINK_INTERNAL_TRANSACTIONS_CONCURRENCY= +# MIGRATION_ARBITRUM_DA_RECORDS_NORMALIZATION_BATCH_SIZE= +# MIGRATION_ARBITRUM_DA_RECORDS_NORMALIZATION_CONCURRENCY= +# MIGRATION_FILECOIN_PENDING_ADDRESS_OPERATIONS_BATCH_SIZE= +# MIGRATION_FILECOIN_PENDING_ADDRESS_OPERATIONS_CONCURRENCY= +# MIGRATION_TOKEN_INSTANCE_ERC_1155_SANITIZE_CONCURRENCY=2 +# MIGRATION_TOKEN_INSTANCE_ERC_1155_SANITIZE_BATCH_SIZE=10 +# MIGRATION_TOKEN_INSTANCE_ERC_721_SANITIZE_CONCURRENCY=2 +# MIGRATION_TOKEN_INSTANCE_ERC_721_SANITIZE_BATCH_SIZE=10 +# MIGRATION_TOKEN_INSTANCE_ERC_721_SANITIZE_TOKENS_BATCH_SIZE=100 +# MIGRATION_SMART_CONTRACT_LANGUAGE_DISABLED=false +# MIGRATION_SMART_CONTRACT_LANGUAGE_BATCH_SIZE=100 +# MIGRATION_SMART_CONTRACT_LANGUAGE_CONCURRENCY=1 +# MIGRATION_SANITIZE_EMPTY_CONTRACT_CODE_ADDRESSES_BATCH_SIZE=500 +# MIGRATION_SANITIZE_EMPTY_CONTRACT_CODE_ADDRESSES_CONCURRENCY=1 +# MIGRATION_BACKFILL_METADATA_URL_DISABLED= +# MIGRATION_BACKFILL_METADATA_URL_BATCH_SIZE= +# MIGRATION_BACKFILL_METADATA_URL_CONCURRENCY= +# MIGRATION_RECOVERY_WETH_TOKEN_TRANSFERS_CONCURRENCY= +# MIGRATION_RECOVERY_WETH_TOKEN_TRANSFERS_BATCH_SIZE= +# MIGRATION_RECOVERY_WETH_TOKEN_TRANSFERS_TIMEOUT= +# MIGRATION_RECOVERY_WETH_TOKEN_TRANSFERS_BLOCKS_BATCH_SIZE= +# MIGRATION_RECOVERY_WETH_TOKEN_TRANSFERS_HIGH_VERBOSITY= +# MIGRATION_MERGE_ADJACENT_MISSING_BLOCK_RANGES_BATCH_SIZE= +# HEALTH_MONITOR_CHECK_INTERVAL=1m +# HEALTH_MONITOR_BLOCKS_PERIOD=5m +# HEALTH_MONITOR_BATCHES_PERIOD=4h +# SOURCIFY_INTEGRATION_ENABLED=false +# SOURCIFY_SERVER_URL= +# SOURCIFY_REPO_URL= # SOLIDITYSCAN_PLATFORM_ID= # SOLIDITYSCAN_CHAIN_ID= # SOLIDITYSCAN_API_TOKEN= # NOVES_FI_BASE_API_URL= # NOVES_FI_CHAIN_NAME= # NOVES_FI_API_TOKEN= -# ZERION_BASE_API_URL= -# ZERION_API_TOKEN= +# XNAME_BASE_API_URL= +# XNAME_API_TOKEN= # BRIDGED_TOKENS_ENABLED= # BRIDGED_TOKENS_ETH_OMNI_BRIDGE_MEDIATOR= # BRIDGED_TOKENS_BSC_OMNI_BRIDGE_MEDIATOR= @@ -458,11 +565,58 @@ TENDERLY_CHAIN_PATH= # MUD_POOL_SIZE=50 # WETH_TOKEN_TRANSFERS_FILTERING_ENABLED=false # WHITELISTED_WETH_CONTRACTS= -# SANITIZE_INCORRECT_WETH_BATCH_SIZE=100 -# SANITIZE_INCORRECT_WETH_CONCURRENCY=1 # PUBLIC_METRICS_ENABLED= # PUBLIC_METRICS_UPDATE_PERIOD_HOURS= # CSV_EXPORT_LIMIT= # SHRINK_INTERNAL_TRANSACTIONS_ENABLED= -# SHRINK_INTERNAL_TRANSACTIONS_BATCH_SIZE= -# SHRINK_INTERNAL_TRANSACTIONS_CONCURRENCY= +NFT_MEDIA_HANDLER_ENABLED=true +NFT_MEDIA_HANDLER_REMOTE_DISPATCHER_NODE_MODE_ENABLED=true +RELEASE_NODE=producer@172.18.0.4 +RELEASE_DISTRIBUTION=name +RELEASE_COOKIE=secret_cookie +# NFT_MEDIA_HANDLER_AWS_PUBLIC_BUCKET_URL= +# NFT_MEDIA_HANDLER_BACKFILL_ENABLED= +# NFT_MEDIA_HANDLER_BACKFILL_QUEUE_SIZE= +# NFT_MEDIA_HANDLER_BACKFILL_ENQUEUE_BUSY_WAITING_TIMEOUT= +# NFT_MEDIA_HANDLER_CACHE_UNIQUENESS_MAX_SIZE= + +# old UI vars + +# SHOW_TENDERLY_LINK=false +# TENDERLY_CHAIN_PATH= +# NETWORK= +# SUBNETWORK=Awesome chain +# LOGO=/images/blockscout_logo.svg +# SUPPORTED_CHAINS={} +# JSON_RPC= +# APPS_MENU=true +# EXTERNAL_APPS=[] +# SHOW_ADDRESS_MARKETCAP_PERCENTAGE=true +# TXS_STATS_ENABLED=false +# SHOW_MAINTENANCE_ALERT=false +# MAINTENANCE_ALERT_MESSAGE= +# SHOW_PRICE_CHART=false +# SHOW_PRICE_CHART_LEGEND=false +# SHOW_TXS_CHART=true +# FOOTER_CHAT_LINK= +# FOOTER_FORUM_LINK_ENABLED= +# FOOTER_FORUM_LINK= +# FOOTER_TELEGRAM_LINK_ENABLED= +# FOOTER_TELEGRAM_LINK= +# FOOTER_GITHUB_LINK= +# FOOTER_LOGO=/images/blockscout_logo.svg +# FOOTER_LINK_TO_OTHER_EXPLORERS=false +# FOOTER_OTHER_EXPLORERS={} +# CONTRACT_MAX_STRING_LENGTH_WITHOUT_TRIMMING=2040 +# CONTRACT_DISABLE_INTERACTION= +# HIDE_BLOCK_MINER=false +# DISPLAY_TOKEN_ICONS=false +# MIXPANEL_TOKEN= +# MIXPANEL_URL= +# AMPLITUDE_API_KEY= +# AMPLITUDE_URL= +# NETWORK_PATH=/ +# RE_CAPTCHA_CLIENT_KEY= +# RE_CAPTCHA_V3_CLIENT_KEY= +# HACKNEY_DEFAULT_POOL_SIZE=1000 +# UNIVERSAL_PROXY_CONFIG_URL= diff --git a/framework/observability/blockscout/envs/common-frontend.env b/framework/observability/blockscout/envs/common-frontend.env index a3dcded76..4b070ea45 100644 --- a/framework/observability/blockscout/envs/common-frontend.env +++ b/framework/observability/blockscout/envs/common-frontend.env @@ -14,4 +14,6 @@ NEXT_PUBLIC_HOMEPAGE_CHARTS=['daily_txs'] NEXT_PUBLIC_VISUALIZE_API_HOST=http://localhost:8081 NEXT_PUBLIC_IS_TESTNET=true NEXT_PUBLIC_API_WEBSOCKET_PROTOCOL=ws -NEXT_PUBLIC_API_SPEC_URL=https://raw.githubusercontent.com/blockscout/blockscout-api-v2-swagger/main/swagger.yaml \ No newline at end of file +NEXT_PUBLIC_API_SPEC_URL=https://raw.githubusercontent.com/blockscout/blockscout-api-v2-swagger/main/swagger.yaml +# Required to enable blockchain interaction +# NEXT_PUBLIC_WALLET_CONNECT_PROJECT_ID= diff --git a/framework/observability/blockscout/envs/common-nft-media-handler.env b/framework/observability/blockscout/envs/common-nft-media-handler.env new file mode 100644 index 000000000..fd68542cf --- /dev/null +++ b/framework/observability/blockscout/envs/common-nft-media-handler.env @@ -0,0 +1,19 @@ +# NFT_MEDIA_HANDLER_AWS_ACCESS_KEY_ID= +# NFT_MEDIA_HANDLER_AWS_SECRET_ACCESS_KEY= +# NFT_MEDIA_HANDLER_AWS_BUCKET_HOST= +# NFT_MEDIA_HANDLER_AWS_PUBLIC_BUCKET_URL= +# NFT_MEDIA_HANDLER_AWS_BUCKET_NAME= + + +NFT_MEDIA_HANDLER_ENABLED=true +NFT_MEDIA_HANDLER_REMOTE_DISPATCHER_NODE_MODE_ENABLED=true +NFT_MEDIA_HANDLER_IS_WORKER=true +NFT_MEDIA_HANDLER_NODES_MAP="{\"producer@172.18.0.4\": \"/folder_1\"}" +# NFT_MEDIA_HANDLER_WORKER_CONCURRENCY= +# NFT_MEDIA_HANDLER_WORKER_BATCH_SIZE= +# NFT_MEDIA_HANDLER_WORKER_SPAWN_TASKS_TIMEOUT= + + +RELEASE_NODE=worker@0.0.0.0 +RELEASE_DISTRIBUTION=name +RELEASE_COOKIE=secret_cookie \ No newline at end of file diff --git a/framework/observability/blockscout/envs/common-stats.env b/framework/observability/blockscout/envs/common-stats.env index f5eed636b..0d2c38c1a 100644 --- a/framework/observability/blockscout/envs/common-stats.env +++ b/framework/observability/blockscout/envs/common-stats.env @@ -25,3 +25,5 @@ STATS__JAEGER__AGENT_ENDPOINT=localhost:6831 STATS__TRACING__ENABLED=true STATS__TRACING__FORMAT=default + +STATS__BLOCKSCOUT_API_URL=http://host.docker.internal diff --git a/framework/observability/blockscout/geth-clique-consensus.yml b/framework/observability/blockscout/geth-clique-consensus.yml new file mode 100644 index 000000000..75a0b457e --- /dev/null +++ b/framework/observability/blockscout/geth-clique-consensus.yml @@ -0,0 +1,88 @@ +version: '3.9' + +services: + redis-db: + extends: + file: ./services/redis.yml + service: redis-db + + db-init: + extends: + file: ./services/db.yml + service: db-init + + db: + depends_on: + db-init: + condition: service_completed_successfully + extends: + file: ./services/db.yml + service: db + + backend: + depends_on: + - db + - redis-db + extends: + file: ./services/backend.yml + service: backend + links: + - db:database + environment: + ETHEREUM_JSONRPC_VARIANT: 'geth' + BLOCK_TRANSFORMER: 'clique' + + visualizer: + extends: + file: ./services/visualizer.yml + service: visualizer + + sig-provider: + extends: + file: ./services/sig-provider.yml + service: sig-provider + + frontend: + depends_on: + - backend + extends: + file: ./services/frontend.yml + service: frontend + + stats-db-init: + extends: + file: ./services/stats.yml + service: stats-db-init + + stats-db: + depends_on: + stats-db-init: + condition: service_completed_successfully + extends: + file: ./services/stats.yml + service: stats-db + + stats: + depends_on: + - stats-db + - backend + extends: + file: ./services/stats.yml + service: stats + + user-ops-indexer: + depends_on: + - db + - backend + extends: + file: ./services/user-ops-indexer.yml + service: user-ops-indexer + + proxy: + depends_on: + - backend + - frontend + - stats + extends: + file: ./services/nginx.yml + service: proxy diff --git a/framework/observability/blockscout/geth.yml b/framework/observability/blockscout/geth.yml new file mode 100644 index 000000000..deed14c68 --- /dev/null +++ b/framework/observability/blockscout/geth.yml @@ -0,0 +1,87 @@ +version: '3.9' + +services: + redis-db: + extends: + file: ./services/redis.yml + service: redis-db + + db-init: + extends: + file: ./services/db.yml + service: db-init + + db: + depends_on: + db-init: + condition: service_completed_successfully + extends: + file: ./services/db.yml + service: db + + backend: + depends_on: + - db + - redis-db + extends: + file: ./services/backend.yml + service: backend + links: + - db:database + environment: + ETHEREUM_JSONRPC_VARIANT: 'geth' + + visualizer: + extends: + file: ./services/visualizer.yml + service: visualizer + + sig-provider: + extends: + file: ./services/sig-provider.yml + service: sig-provider + + frontend: + depends_on: + - backend + extends: + file: ./services/frontend.yml + service: frontend + + stats-db-init: + extends: + file: ./services/stats.yml + service: stats-db-init + + stats-db: + depends_on: + stats-db-init: + condition: service_completed_successfully + extends: + file: ./services/stats.yml + service: stats-db + + stats: + depends_on: + - stats-db + - backend + extends: + file: ./services/stats.yml + service: stats + + user-ops-indexer: + depends_on: + - db + - backend + extends: + file: ./services/user-ops-indexer.yml + service: user-ops-indexer + + proxy: + depends_on: + - backend + - frontend + - stats + extends: + file: ./services/nginx.yml + service: proxy diff --git a/framework/observability/blockscout/proxy/default.conf.template b/framework/observability/blockscout/proxy/default.conf.template index dbd5180d1..cebe8a837 100644 --- a/framework/observability/blockscout/proxy/default.conf.template +++ b/framework/observability/blockscout/proxy/default.conf.template @@ -9,7 +9,7 @@ server { server_name localhost; proxy_http_version 1.1; - location ~ ^/(api|socket|sitemap.xml|auth/auth0|auth/auth0/callback|auth/logout) { + location ~ ^/(api(?!-docs$)|socket|sitemap.xml|auth/auth0|auth/auth0/callback|auth/logout) { proxy_pass ${BACK_PROXY_PASS}; proxy_http_version 1.1; proxy_set_header Host "$host"; diff --git a/framework/observability/blockscout/proxy/explorer.conf.template b/framework/observability/blockscout/proxy/explorer.conf.template new file mode 100644 index 000000000..7cc794ede --- /dev/null +++ b/framework/observability/blockscout/proxy/explorer.conf.template @@ -0,0 +1,34 @@ +map $http_upgrade $connection_upgrade { + + default upgrade; + '' close; +} + +server { + listen 80; + server_name localhost; + proxy_http_version 1.1; + + location ~ ^/(api(?!-docs$)|socket|sitemap.xml|auth/auth0|auth/auth0/callback|auth/logout) { + proxy_pass ${BACK_PROXY_PASS}; + proxy_http_version 1.1; + proxy_set_header Host "$host"; + proxy_set_header X-Real-IP "$remote_addr"; + proxy_set_header X-Forwarded-For "$proxy_add_x_forwarded_for"; + proxy_set_header X-Forwarded-Proto "$scheme"; + proxy_set_header Upgrade "$http_upgrade"; + proxy_set_header Connection $connection_upgrade; + proxy_cache_bypass $http_upgrade; + } + location / { + proxy_pass ${FRONT_PROXY_PASS}; + proxy_http_version 1.1; + proxy_set_header Host "$host"; + proxy_set_header X-Real-IP "$remote_addr"; + proxy_set_header X-Forwarded-For "$proxy_add_x_forwarded_for"; + proxy_set_header X-Forwarded-Proto "$scheme"; + proxy_set_header Upgrade "$http_upgrade"; + proxy_set_header Connection $connection_upgrade; + proxy_cache_bypass $http_upgrade; + } +} \ No newline at end of file diff --git a/framework/observability/blockscout/services/backend.yml b/framework/observability/blockscout/services/backend.yml index 8ae1b2f6c..cb1cb54de 100644 --- a/framework/observability/blockscout/services/backend.yml +++ b/framework/observability/blockscout/services/backend.yml @@ -2,7 +2,7 @@ version: '3.9' services: backend: - image: blockscout/blockscout:6.9.0.commit.4100e959 + image: ghcr.io/blockscout/${DOCKER_REPO:-blockscout}:${DOCKER_TAG:-latest} pull_policy: always restart: always stop_grace_period: 5m @@ -11,6 +11,7 @@ services: extra_hosts: - 'host.docker.internal:host-gateway' env_file: - - ../envs/common-blockscout.env + - ../envs/common-blockscout.env volumes: - - ./logs/:/app/logs/ \ No newline at end of file + - ./logs/:/app/logs/ + - ./dets/:/app/dets/ diff --git a/framework/observability/blockscout/services/db.yml b/framework/observability/blockscout/services/db.yml index 430409bbe..c52d4e37f 100644 --- a/framework/observability/blockscout/services/db.yml +++ b/framework/observability/blockscout/services/db.yml @@ -2,7 +2,7 @@ version: '3.9' services: db-init: - image: postgres:15 + image: postgres:17 volumes: - ./blockscout-db-data:/var/lib/postgresql/data entrypoint: @@ -12,7 +12,7 @@ services: chown -R 2000:2000 /var/lib/postgresql/data db: - image: postgres:15 + image: postgres:17 user: 2000:2000 shm_size: 256m restart: always @@ -24,7 +24,7 @@ services: POSTGRES_PASSWORD: 'ceWb1MeLBEeOIfk65gU8EjF8' ports: - target: 5432 - published: 7432 + published: 17432 volumes: - ./blockscout-db-data:/var/lib/postgresql/data healthcheck: diff --git a/framework/observability/blockscout/services/frontend.yml b/framework/observability/blockscout/services/frontend.yml index 3123f8e8e..2dba9b285 100644 --- a/framework/observability/blockscout/services/frontend.yml +++ b/framework/observability/blockscout/services/frontend.yml @@ -2,10 +2,10 @@ version: '3.9' services: frontend: - image: ghcr.io/blockscout/frontend:v1.36.2 + image: ghcr.io/blockscout/frontend:${FRONTEND_DOCKER_TAG:-latest} pull_policy: always platform: linux/amd64 restart: always container_name: 'frontend' env_file: - - ../envs/common-frontend.env + - ../envs/common-frontend.env diff --git a/framework/observability/blockscout/services/nft_media_handler.yml b/framework/observability/blockscout/services/nft_media_handler.yml new file mode 100644 index 000000000..7a5b8b2ec --- /dev/null +++ b/framework/observability/blockscout/services/nft_media_handler.yml @@ -0,0 +1,16 @@ +version: '3.9' + +services: + nft_media_handler: + image: ghcr.io/blockscout/${DOCKER_REPO:-blockscout}:${DOCKER_TAG:-latest} + pull_policy: always + restart: always + stop_grace_period: 5m + container_name: 'nft_media_handler' + command: sh -c "bin/blockscout start" + extra_hosts: + - 'host.docker.internal:host-gateway' + env_file: + - ../envs/common-nft-media-handler.env + volumes: + - ./logs/:/app/logs/ diff --git a/framework/observability/blockscout/services/nginx-explorer.yml b/framework/observability/blockscout/services/nginx-explorer.yml new file mode 100644 index 000000000..513a054b0 --- /dev/null +++ b/framework/observability/blockscout/services/nginx-explorer.yml @@ -0,0 +1,14 @@ +version: '3.9' + +services: + proxy: + image: nginx + container_name: proxy + extra_hosts: + - 'host.docker.internal:host-gateway' + environment: + BACK_PROXY_PASS: ${BACK_PROXY_PASS:-http://backend:4000} + FRONT_PROXY_PASS: ${FRONT_PROXY_PASS:-http://frontend:3000} + ports: + - target: 80 + published: 80 diff --git a/framework/observability/blockscout/services/sig-provider.yml b/framework/observability/blockscout/services/sig-provider.yml index 74271747e..8c0cb3333 100644 --- a/framework/observability/blockscout/services/sig-provider.yml +++ b/framework/observability/blockscout/services/sig-provider.yml @@ -2,7 +2,7 @@ version: '3.9' services: sig-provider: - image: ghcr.io/blockscout/sig-provider:v1.1.1 + image: ghcr.io/blockscout/sig-provider:${SIG_PROVIDER_DOCKER_TAG:-latest} pull_policy: always platform: linux/amd64 restart: always diff --git a/framework/observability/blockscout/services/smart-contract-verifier.yml b/framework/observability/blockscout/services/smart-contract-verifier.yml index 5707f5f78..03e633c69 100644 --- a/framework/observability/blockscout/services/smart-contract-verifier.yml +++ b/framework/observability/blockscout/services/smart-contract-verifier.yml @@ -2,10 +2,10 @@ version: '3.9' services: smart-contract-verifier: - image: ghcr.io/blockscout/smart-contract-verifier:v1.9.2 + image: ghcr.io/blockscout/smart-contract-verifier:${SMART_CONTRACT_VERIFIER_DOCKER_TAG:-latest} pull_policy: always platform: linux/amd64 restart: always container_name: 'smart-contract-verifier' env_file: - - ../envs/common-smart-contract-verifier.env + - ../envs/common-smart-contract-verifier.env diff --git a/framework/observability/blockscout/services/stats.yml b/framework/observability/blockscout/services/stats.yml index 3fff4d0a3..d4f7e8dff 100644 --- a/framework/observability/blockscout/services/stats.yml +++ b/framework/observability/blockscout/services/stats.yml @@ -2,7 +2,7 @@ version: '3.9' services: stats-db-init: - image: postgres:15 + image: postgres:17 volumes: - ./stats-db-data:/var/lib/postgresql/data entrypoint: @@ -12,7 +12,7 @@ services: chown -R 2000:2000 /var/lib/postgresql/data stats-db: - image: postgres:15 + image: postgres:17 user: 2000:2000 shm_size: 256m restart: always @@ -35,7 +35,7 @@ services: start_period: 10s stats: - image: ghcr.io/blockscout/stats:v2.2.3 + image: ghcr.io/blockscout/stats:${STATS_DOCKER_TAG:-latest} pull_policy: always platform: linux/amd64 restart: always @@ -43,7 +43,7 @@ services: extra_hosts: - 'host.docker.internal:host-gateway' env_file: - - ../envs/common-stats.env + - ../envs/common-stats.env environment: - STATS__DB_URL=${STATS__DB_URL:-postgres://stats:n0uejXPl61ci6ldCuE2gQU5Y@stats-db:5432/stats} - STATS__BLOCKSCOUT_DB_URL=${STATS__BLOCKSCOUT_DB_URL:-postgresql://blockscout:ceWb1MeLBEeOIfk65gU8EjF8@db:5432/blockscout} diff --git a/framework/observability/blockscout/services/user-ops-indexer.yml b/framework/observability/blockscout/services/user-ops-indexer.yml index 5d376a336..352083b9a 100644 --- a/framework/observability/blockscout/services/user-ops-indexer.yml +++ b/framework/observability/blockscout/services/user-ops-indexer.yml @@ -2,7 +2,7 @@ version: '3.9' services: user-ops-indexer: - image: ghcr.io/blockscout/user-ops-indexer:v1.3.0 + image: ghcr.io/blockscout/user-ops-indexer:${USER_OPS_INDEXER_DOCKER_TAG:-latest} pull_policy: always platform: linux/amd64 restart: always @@ -10,7 +10,7 @@ services: extra_hosts: - 'host.docker.internal:host-gateway' env_file: - - ../envs/common-user-ops-indexer.env + - ../envs/common-user-ops-indexer.env environment: - USER_OPS_INDEXER__INDEXER__RPC_URL=${USER_OPS_INDEXER__INDEXER__RPC_URL:-ws://host.docker.internal:8545/} - USER_OPS_INDEXER__DATABASE__CONNECT__URL=${USER_OPS_INDEXER__DATABASE__CONNECT__URL:-postgresql://blockscout:ceWb1MeLBEeOIfk65gU8EjF8@db:5432/blockscout} diff --git a/framework/observability/blockscout/services/visualizer.yml b/framework/observability/blockscout/services/visualizer.yml index 5361c49a4..37a4aaad8 100644 --- a/framework/observability/blockscout/services/visualizer.yml +++ b/framework/observability/blockscout/services/visualizer.yml @@ -2,10 +2,10 @@ version: '3.9' services: visualizer: - image: ghcr.io/blockscout/visualizer:v0.2.1 + image: ghcr.io/blockscout/visualizer:${VISUALIZER_DOCKER_TAG:-latest} pull_policy: always platform: linux/amd64 restart: always container_name: 'visualizer' env_file: - - ../envs/common-visualizer.env + - ../envs/common-visualizer.env