From 38bf3624dbe7d009e8210b9adcf9b3b53ceb7cb6 Mon Sep 17 00:00:00 2001 From: Viktor Baranov Date: Tue, 19 Sep 2023 12:23:32 +0300 Subject: [PATCH 01/17] Suave node + Blockscout --- .gitignore | 4 + suave/devenv/docker-compose.yml | 66 ++++++ suave/devenv/envs/common-blockscout.env | 221 ++++++++++++++++++ suave/devenv/envs/common-frontend.env | 16 ++ suave/devenv/envs/common-stats.env | 27 +++ suave/devenv/envs/common-visualizer.env | 1 + suave/devenv/proxy/default.conf.template | 104 +++++++++ .../services/docker-compose-backend.yml | 16 ++ suave/devenv/services/docker-compose-db.yml | 16 ++ .../services/docker-compose-frontend.yml | 11 + .../devenv/services/docker-compose-nginx.yml | 17 ++ .../devenv/services/docker-compose-redis.yml | 9 + .../services/docker-compose-sig-provider.yml | 9 + .../devenv/services/docker-compose-stats.yml | 32 +++ .../services/docker-compose-visualizer.yml | 11 + 15 files changed, 560 insertions(+) create mode 100644 suave/devenv/envs/common-blockscout.env create mode 100644 suave/devenv/envs/common-frontend.env create mode 100644 suave/devenv/envs/common-stats.env create mode 100644 suave/devenv/envs/common-visualizer.env create mode 100644 suave/devenv/proxy/default.conf.template create mode 100644 suave/devenv/services/docker-compose-backend.yml create mode 100644 suave/devenv/services/docker-compose-db.yml create mode 100644 suave/devenv/services/docker-compose-frontend.yml create mode 100644 suave/devenv/services/docker-compose-nginx.yml create mode 100644 suave/devenv/services/docker-compose-redis.yml create mode 100644 suave/devenv/services/docker-compose-sig-provider.yml create mode 100644 suave/devenv/services/docker-compose-stats.yml create mode 100644 suave/devenv/services/docker-compose-visualizer.yml diff --git a/.gitignore b/.gitignore index f4db106b56..80692beb67 100644 --- a/.gitignore +++ b/.gitignore @@ -47,5 +47,9 @@ profile.cov /dashboard/assets/bundle.js.map /dashboard/assets/package-lock.json +/suave/devenv/services/blockscout-db-data +/suave/devenv/services/redis-data +/suave/devenv/services/stats-db-data + **/yarn-error.log logs/ \ No newline at end of file diff --git a/suave/devenv/docker-compose.yml b/suave/devenv/docker-compose.yml index 233d686064..70a8ad6d2b 100644 --- a/suave/devenv/docker-compose.yml +++ b/suave/devenv/docker-compose.yml @@ -34,3 +34,69 @@ services: - --ws ports: - 8555:8545 + redis_db: + extends: + file: ./services/docker-compose-redis.yml + service: redis_db + + db: + extends: + file: ./services/docker-compose-db.yml + service: db + + backend: + depends_on: + - db + - redis_db + extends: + file: ./services/docker-compose-backend.yml + service: backend + links: + - db:database + environment: + ETHEREUM_JSONRPC_VARIANT: geth + ETHEREUM_JSONRPC_HTTP_URL: http://host.docker.internal:8545/ + ETHEREUM_JSONRPC_TRACE_URL: http://host.docker.internal:8545/ + DATABASE_URL: postgresql://postgres:@host.docker.internal:7432/blockscout?ssl=false + CHAIN_ID: '1337' + POOL_SIZE: 30 + + visualizer: + extends: + file: ./services/docker-compose-visualizer.yml + service: visualizer + + sig-provider: + extends: + file: ./services/docker-compose-sig-provider.yml + service: sig-provider + + frontend: + depends_on: + - backend + extends: + file: ./services/docker-compose-frontend.yml + service: frontend + + stats-db: + depends_on: + - backend + extends: + file: ./services/docker-compose-stats.yml + service: stats-db + + stats: + depends_on: + - stats-db + extends: + file: ./services/docker-compose-stats.yml + service: stats + + proxy: + depends_on: + - backend + - frontend + - stats + extends: + file: ./services/docker-compose-nginx.yml + service: proxy diff --git a/suave/devenv/envs/common-blockscout.env b/suave/devenv/envs/common-blockscout.env new file mode 100644 index 0000000000..581bc0cb62 --- /dev/null +++ b/suave/devenv/envs/common-blockscout.env @@ -0,0 +1,221 @@ +# DOCKER_TAG= +ETHEREUM_JSONRPC_VARIANT=geth +ETHEREUM_JSONRPC_HTTP_URL=http://host.docker.internal:8545/ +# ETHEREUM_JSONRPC_FALLBACK_HTTP_URL= +DATABASE_URL=postgresql://postgres:@host.docker.internal:7432/blockscout?ssl=false +ETHEREUM_JSONRPC_TRACE_URL=http://host.docker.internal:8545/ +# ETHEREUM_JSONRPC_FALLBACK_TRACE_URL= +# ETHEREUM_JSONRPC_HTTP_TIMEOUT= +NETWORK= +SUBNETWORK=Awesome chain +LOGO=/images/blockscout_logo.svg +# ETHEREUM_JSONRPC_WS_URL= +ETHEREUM_JSONRPC_TRANSPORT=http +ETHEREUM_JSONRPC_DISABLE_ARCHIVE_BALANCES=false +# ETHEREUM_JSONRPC_HTTP_HEADERS= +# ETHEREUM_JSONRPC_WAIT_PER_TIMEOUT= +IPC_PATH= +NETWORK_PATH=/ +BLOCKSCOUT_HOST= +BLOCKSCOUT_PROTOCOL= +SECRET_KEY_BASE=56NtB48ear7+wMSf0IQuWDAAazhpb31qyc7GiyspBP2vh7t5zlCsF5QDv76chXeN +# CHECK_ORIGIN= +PORT=4000 +COIN_NAME= +# METADATA_CONTRACT= +# VALIDATORS_CONTRACT= +# KEYS_MANAGER_CONTRACT= +# REWARDS_CONTRACT= +# TOKEN_BRIDGE_CONTRACT= +EMISSION_FORMAT=DEFAULT +# CHAIN_SPEC_PATH= +# SUPPLY_MODULE= +COIN= +EXCHANGE_RATES_COIN= +# EXCHANGE_RATES_MARKET_CAP_SOURCE= +# EXCHANGE_RATES_PRICE_SOURCE= +# EXCHANGE_RATES_COINGECKO_COIN_ID= +# EXCHANGE_RATES_COINGECKO_API_KEY= +# EXCHANGE_RATES_COINMARKETCAP_API_KEY= +# EXCHANGE_RATES_COINMARKETCAP_COIN_ID= +POOL_SIZE=90 +# EXCHANGE_RATES_COINGECKO_PLATFORM_ID= +# TOKEN_EXCHANGE_RATE_INTERVAL= +# TOKEN_EXCHANGE_RATE_REFETCH_INTERVAL= +# TOKEN_EXCHANGE_RATE_MAX_BATCH_SIZE= +# DISABLE_TOKEN_EXCHANGE_RATE= +POOL_SIZE_API=10 +ECTO_USE_SSL=false +# DATADOG_HOST= +# DATADOG_PORT= +# SPANDEX_BATCH_SIZE= +# SPANDEX_SYNC_THRESHOLD= +HEART_BEAT_TIMEOUT=30 +# HEART_COMMAND= +#BLOCKSCOUT_VERSION= +RELEASE_LINK= +BLOCK_TRANSFORMER=base +# GRAPHIQL_TRANSACTION= +# BLOCK_RANGES= +# FIRST_BLOCK= +# LAST_BLOCK= +# 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 +TOKEN_METADATA_UPDATE_INTERVAL=172800 +CONTRACT_VERIFICATION_ALLOWED_SOLIDITY_EVM_VERSIONS=homestead,tangerineWhistle,spuriousDragon,byzantium,constantinople,petersburg,istanbul,berlin,london,paris,shanghai,default +CONTRACT_VERIFICATION_ALLOWED_VYPER_EVM_VERSIONS=byzantium,constantinople,petersburg,istanbul,berlin,paris,shanghai,default +# CONTRACT_VERIFICATION_MAX_LIBRARIES=10 +CONTRACT_MAX_STRING_LENGTH_WITHOUT_TRIMMING=2040 +# CONTRACT_DISABLE_INTERACTION= +UNCLES_IN_AVERAGE_BLOCK_TIME=false +DISABLE_WEBAPP=false +API_V1_READ_METHODS_DISABLED=false +API_V1_WRITE_METHODS_DISABLED=false +DISABLE_INDEXER=false +DISABLE_REALTIME_INDEXER=false +INDEXER_DISABLE_TOKEN_INSTANCE_REALTIME_FETCHER=false +INDEXER_DISABLE_TOKEN_INSTANCE_RETRY_FETCHER=false +INDEXER_DISABLE_TOKEN_INSTANCE_SANITIZE_FETCHER=false +INDEXER_DISABLE_PENDING_TRANSACTIONS_FETCHER=false +INDEXER_DISABLE_INTERNAL_TRANSACTIONS_FETCHER=false +# INDEXER_CATCHUP_BLOCKS_BATCH_SIZE= +# INDEXER_CATCHUP_BLOCKS_CONCURRENCY= +# INDEXER_CATCHUP_BLOCK_INTERVAL= +# INDEXER_INTERNAL_TRANSACTIONS_BATCH_SIZE= +# INDEXER_INTERNAL_TRANSACTIONS_CONCURRENCY= +# INDEXER_BLOCK_REWARD_BATCH_SIZE= +# INDEXER_BLOCK_REWARD_CONCURRENCY= +# INDEXER_TOKEN_INSTANCE_RETRY_REFETCH_INTERVAL= +# INDEXER_TOKEN_INSTANCE_RETRY_CONCURRENCY= +# INDEXER_TOKEN_INSTANCE_REALTIME_CONCURRENCY= +# INDEXER_TOKEN_INSTANCE_SANITIZE_CONCURRENCY= +# INDEXER_COIN_BALANCES_BATCH_SIZE= +# INDEXER_COIN_BALANCES_CONCURRENCY= +# INDEXER_RECEIPTS_BATCH_SIZE= +# INDEXER_RECEIPTS_CONCURRENCY= +# INDEXER_TOKEN_CONCURRENCY= +# INDEXER_TOKEN_BALANCES_BATCH_SIZE= +# INDEXER_TOKEN_BALANCES_CONCURRENCY= +# 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_REALTIME_FETCHER_MAX_GAP= +# INDEXER_FETCHER_INIT_QUERY_LIMIT= +# INDEXER_TOKEN_BALANCES_FETCHER_INIT_QUERY_LIMIT= +# INDEXER_DISABLE_WITHDRAWALS_FETCHER= +# WITHDRAWALS_FIRST_BLOCK= +# TOKEN_ID_MIGRATION_FIRST_BLOCK= +# TOKEN_ID_MIGRATION_CONCURRENCY= +# TOKEN_ID_MIGRATION_BATCH_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 +TXS_STATS_DAYS_TO_COMPILE_AT_INIT=10 +COIN_BALANCE_HISTORY_DAYS=90 +APPS_MENU=true +EXTERNAL_APPS=[] +# GAS_PRICE= +# RESTRICTED_LIST= +# RESTRICTED_LIST_KEY= +SHOW_MAINTENANCE_ALERT=false +MAINTENANCE_ALERT_MESSAGE= +SOURCIFY_INTEGRATION_ENABLED=false +SOURCIFY_SERVER_URL= +SOURCIFY_REPO_URL= +CHAIN_ID= +MAX_SIZE_UNLESS_HIDE_ARRAY=50 +HIDE_BLOCK_MINER=false +DISPLAY_TOKEN_ICONS=false +SHOW_TENDERLY_LINK=false +TENDERLY_CHAIN_PATH= +RE_CAPTCHA_SECRET_KEY= +RE_CAPTCHA_CLIENT_KEY= +RE_CAPTCHA_V3_SECRET_KEY= +RE_CAPTCHA_V3_CLIENT_KEY= +RE_CAPTCHA_DISABLED=false +JSON_RPC= +#API_RATE_LIMIT_DISABLED=true +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_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 +#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_TYPE=eth_bytecode_db +MICROSERVICE_ETH_BYTECODE_DB_INTERVAL_BETWEEN_LOOKUPS=10m +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/ +DECODE_NOT_A_CONTRACT_CALLS=true +# DATABASE_READ_ONLY_API_URL= +# ACCOUNT_DATABASE_URL= +# ACCOUNT_POOL_SIZE= +# ACCOUNT_AUTH0_DOMAIN= +# ACCOUNT_AUTH0_CLIENT_ID= +# ACCOUNT_AUTH0_CLIENT_SECRET= +# ACCOUNT_PUBLIC_TAGS_AIRTABLE_URL= +# ACCOUNT_PUBLIC_TAGS_AIRTABLE_API_KEY= +# ACCOUNT_SENDGRID_API_KEY= +# ACCOUNT_SENDGRID_SENDER= +# ACCOUNT_SENDGRID_TEMPLATE= +ACCOUNT_CLOAK_KEY= +ACCOUNT_ENABLED=false +ACCOUNT_REDIS_URL=redis://redis_db:6379 +# MIXPANEL_TOKEN= +# MIXPANEL_URL= +# AMPLITUDE_API_KEY= +# AMPLITUDE_URL= +EIP_1559_ELASTICITY_MULTIPLIER=2 +# API_SENSITIVE_ENDPOINTS_KEY= +# ACCOUNT_VERIFICATION_EMAIL_RESEND_INTERVAL= +# INDEXER_TOKEN_INSTANCE_RETRY_BATCH_SIZE=10 +# INDEXER_TOKEN_INSTANCE_REALTIME_BATCH_SIZE=1 +# INDEXER_TOKEN_INSTANCE_SANITIZE_BATCH_SIZE=10 +API_V2_ENABLED=true \ No newline at end of file diff --git a/suave/devenv/envs/common-frontend.env b/suave/devenv/envs/common-frontend.env new file mode 100644 index 0000000000..9169908d81 --- /dev/null +++ b/suave/devenv/envs/common-frontend.env @@ -0,0 +1,16 @@ +NEXT_PUBLIC_API_HOST=localhost +NEXT_PUBLIC_API_PROTOCOL=http +NEXT_PUBLIC_STATS_API_HOST=http://localhost:8080 +NEXT_PUBLIC_NETWORK_NAME=Suave Devnet +NEXT_PUBLIC_NETWORK_SHORT_NAME=Suave Devnet +NEXT_PUBLIC_NETWORK_ID=5 +NEXT_PUBLIC_NETWORK_CURRENCY_NAME=Ether +NEXT_PUBLIC_NETWORK_CURRENCY_SYMBOL=ETH +NEXT_PUBLIC_NETWORK_CURRENCY_DECIMALS=18 +NEXT_PUBLIC_API_BASE_PATH=/ +NEXT_PUBLIC_APP_HOST=localhost +NEXT_PUBLIC_APP_PROTOCOL=http +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 diff --git a/suave/devenv/envs/common-stats.env b/suave/devenv/envs/common-stats.env new file mode 100644 index 0000000000..f5eed636ba --- /dev/null +++ b/suave/devenv/envs/common-stats.env @@ -0,0 +1,27 @@ +# Those are examples of existing configuration variables and their default values. +# When uncommented, they would overwrite corresponding values from `base.toml` +# configuration file. + +STATS__SERVER__HTTP__ENABLED=true +STATS__SERVER__HTTP__ADDR=0.0.0.0:8050 +STATS__SERVER__HTTP__MAX_BODY_SIZE=2097152 + +STATS__SERVER__GRPC__ENABLED=false +STATS__SERVER__GRPC__ADDR=0.0.0.0:8051 + +STATS__DB_URL= +STATS__BLOCKSCOUT_DB_URL= +STATS__CREATE_DATABASE=false +STATS__RUN_MIGRATIONS=false +STATS__DEFAULT_SCHEDULE=0 0 1 * * * * +STATS__FORCE_UPDATE_ON_START=false + +STATS__METRICS__ENABLED=false +STATS__METRICS__ADDR=0.0.0.0:6060 +STATS__METRICS__ROUTE=/metrics + +STATS__JAEGER__ENABLED=false +STATS__JAEGER__AGENT_ENDPOINT=localhost:6831 + +STATS__TRACING__ENABLED=true +STATS__TRACING__FORMAT=default diff --git a/suave/devenv/envs/common-visualizer.env b/suave/devenv/envs/common-visualizer.env new file mode 100644 index 0000000000..b4fd470849 --- /dev/null +++ b/suave/devenv/envs/common-visualizer.env @@ -0,0 +1 @@ +VISUALIZER__SERVER__GRPC__ENABLED=false diff --git a/suave/devenv/proxy/default.conf.template b/suave/devenv/proxy/default.conf.template new file mode 100644 index 0000000000..0ea0e3bf9f --- /dev/null +++ b/suave/devenv/proxy/default.conf.template @@ -0,0 +1,104 @@ +map $http_upgrade $connection_upgrade { + + default upgrade; + '' close; +} + +server { + listen 80; + server_name localhost; + proxy_http_version 1.1; + + location / { + 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; + } + location ~ ^/(_next|node-api|apps|account|accounts|favicon|static|auth/profile|auth/unverified-email|txs|tx|blocks|block|login|address|stats|search-results|token|tokens|visualize|api-docs|csv-export|verified-contracts|graphiql|withdrawals) { + 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; + } +} +server { + listen 8080; + server_name localhost; + proxy_http_version 1.1; + proxy_hide_header Access-Control-Allow-Origin; + proxy_hide_header Access-Control-Allow-Methods; + add_header 'Access-Control-Allow-Origin' 'http://localhost' always; + add_header 'Access-Control-Allow-Credentials' 'true' always; + add_header 'Access-Control-Allow-Methods' 'PUT, GET, POST, OPTIONS, DELETE, PATCH' always; + + location / { + proxy_pass http://stats:8050/; + 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; + } +} +server { + listen 8081; + server_name localhost; + proxy_http_version 1.1; + proxy_hide_header Access-Control-Allow-Origin; + proxy_hide_header Access-Control-Allow-Methods; + add_header 'Access-Control-Allow-Origin' 'http://localhost' always; + add_header 'Access-Control-Allow-Credentials' 'true' always; + add_header 'Access-Control-Allow-Methods' 'PUT, GET, POST, OPTIONS, DELETE, PATCH' always; + add_header 'Access-Control-Allow-Headers' 'DNT,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Range,Authorization,x-csrf-token' always; + + location / { + proxy_pass http://visualizer:8050/; + proxy_http_version 1.1; + proxy_buffering off; + proxy_set_header Host "$host"; + proxy_set_header X-Real-IP "$remote_addr"; + proxy_connect_timeout 30m; + proxy_read_timeout 30m; + proxy_send_timeout 30m; + 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; + if ($request_method = 'OPTIONS') { + add_header 'Access-Control-Allow-Origin' 'http://localhost' always; + add_header 'Access-Control-Allow-Credentials' 'true' always; + add_header 'Access-Control-Allow-Methods' 'PUT, GET, POST, OPTIONS, DELETE, PATCH' always; + add_header 'Access-Control-Allow-Headers' 'DNT,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Range,Authorization,x-csrf-token' always; + add_header 'Access-Control-Max-Age' 1728000; + add_header 'Content-Type' 'text/plain charset=UTF-8'; + add_header 'Content-Length' 0; + return 204; + } + } +} \ No newline at end of file diff --git a/suave/devenv/services/docker-compose-backend.yml b/suave/devenv/services/docker-compose-backend.yml new file mode 100644 index 0000000000..f73af4dab1 --- /dev/null +++ b/suave/devenv/services/docker-compose-backend.yml @@ -0,0 +1,16 @@ +version: '3.8' + +services: + backend: + image: blockscout/blockscout:${DOCKER_TAG:-latest} + pull_policy: always + restart: always + stop_grace_period: 5m + container_name: 'backend' + command: sh -c "bin/blockscout eval \"Elixir.Explorer.ReleaseTasks.create_and_migrate()\" && bin/blockscout start" + extra_hosts: + - 'host.docker.internal:host-gateway' + env_file: + - ../envs/common-blockscout.env + volumes: + - ./logs/:/app/logs/ \ No newline at end of file diff --git a/suave/devenv/services/docker-compose-db.yml b/suave/devenv/services/docker-compose-db.yml new file mode 100644 index 0000000000..51a139dff4 --- /dev/null +++ b/suave/devenv/services/docker-compose-db.yml @@ -0,0 +1,16 @@ +version: '3.8' + +services: + db: + image: postgres:14 + restart: always + container_name: 'postgres' + command: postgres -c 'max_connections=200' + environment: + POSTGRES_PASSWORD: '' + POSTGRES_USER: 'postgres' + POSTGRES_HOST_AUTH_METHOD: 'trust' + ports: + - 7432:5432 + volumes: + - ./blockscout-db-data:/var/lib/postgresql/data/ diff --git a/suave/devenv/services/docker-compose-frontend.yml b/suave/devenv/services/docker-compose-frontend.yml new file mode 100644 index 0000000000..2c0210ebf8 --- /dev/null +++ b/suave/devenv/services/docker-compose-frontend.yml @@ -0,0 +1,11 @@ +version: '3.8' + +services: + frontend: + 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 diff --git a/suave/devenv/services/docker-compose-nginx.yml b/suave/devenv/services/docker-compose-nginx.yml new file mode 100644 index 0000000000..e54401d3f5 --- /dev/null +++ b/suave/devenv/services/docker-compose-nginx.yml @@ -0,0 +1,17 @@ +version: '3.8' + +services: + proxy: + image: nginx + container_name: proxy + extra_hosts: + - 'host.docker.internal:host-gateway' + volumes: + - "../proxy:/etc/nginx/templates" + environment: + BACK_PROXY_PASS: ${BACK_PROXY_PASS:-http://backend:4000} + FRONT_PROXY_PASS: ${FRONT_PROXY_PASS:-http://frontend:3000} + ports: + - 80:80 + - 8080:8080 + - 8081:8081 diff --git a/suave/devenv/services/docker-compose-redis.yml b/suave/devenv/services/docker-compose-redis.yml new file mode 100644 index 0000000000..c4b425509d --- /dev/null +++ b/suave/devenv/services/docker-compose-redis.yml @@ -0,0 +1,9 @@ +version: '3.8' + +services: + redis_db: + image: 'redis:alpine' + container_name: redis_db + command: redis-server + volumes: + - ./redis-data:/data diff --git a/suave/devenv/services/docker-compose-sig-provider.yml b/suave/devenv/services/docker-compose-sig-provider.yml new file mode 100644 index 0000000000..df508404f7 --- /dev/null +++ b/suave/devenv/services/docker-compose-sig-provider.yml @@ -0,0 +1,9 @@ +version: '3.8' + +services: + sig-provider: + image: ghcr.io/blockscout/sig-provider:${SIG_PROVIDER_DOCKER_TAG:-latest} + pull_policy: always + platform: linux/amd64 + restart: always + container_name: 'sig-provider' diff --git a/suave/devenv/services/docker-compose-stats.yml b/suave/devenv/services/docker-compose-stats.yml new file mode 100644 index 0000000000..5dde5bbad1 --- /dev/null +++ b/suave/devenv/services/docker-compose-stats.yml @@ -0,0 +1,32 @@ +version: '3.8' + +services: + stats-db: + image: postgres:14 + restart: always + container_name: 'stats-postgres' + command: postgres -c 'max_connections=200' + environment: + POSTGRES_PASSWORD: '' + POSTGRES_USER: 'postgres' + POSTGRES_HOST_AUTH_METHOD: 'trust' + ports: + - 7433:5432 + volumes: + - ./stats-db-data:/var/lib/postgresql/data/ + + stats: + image: ghcr.io/blockscout/stats:${STATS_DOCKER_TAG:-latest} + pull_policy: always + platform: linux/amd64 + restart: always + container_name: 'stats' + extra_hosts: + - 'host.docker.internal:host-gateway' + env_file: + - ../envs/common-stats.env + environment: + - STATS__DB_URL=postgres://postgres:@stats-db:5432/stats + - STATS__BLOCKSCOUT_DB_URL=postgresql://postgres:@host.docker.internal:7432/blockscout?ssl=false + - STATS__CREATE_DATABASE=true + - STATS__RUN_MIGRATIONS=true diff --git a/suave/devenv/services/docker-compose-visualizer.yml b/suave/devenv/services/docker-compose-visualizer.yml new file mode 100644 index 0000000000..39dbfaf440 --- /dev/null +++ b/suave/devenv/services/docker-compose-visualizer.yml @@ -0,0 +1,11 @@ +version: '3.8' + +services: + visualizer: + 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 From e3b1d11a8c7a93e7f3d2cb821f485275457f3e87 Mon Sep 17 00:00:00 2001 From: Viktor Baranov Date: Mon, 25 Sep 2023 18:34:33 +0300 Subject: [PATCH 02/17] Move Blockscout-related configs to suave/devenv/blockscout subdir --- .gitignore | 6 +++--- .../envs/common-blockscout.env | 0 .../{ => blockscout}/envs/common-frontend.env | 0 .../{ => blockscout}/envs/common-stats.env | 0 .../envs/common-visualizer.env | 0 .../proxy/default.conf.template | 0 .../services/docker-compose-backend.yml | 0 .../services/docker-compose-db.yml | 0 .../services/docker-compose-frontend.yml | 0 .../services/docker-compose-nginx.yml | 0 .../services/docker-compose-redis.yml | 0 .../services/docker-compose-sig-provider.yml | 0 .../services/docker-compose-stats.yml | 0 .../services/docker-compose-visualizer.yml | 0 suave/devenv/docker-compose.yml | 19 ++++++++++--------- 15 files changed, 13 insertions(+), 12 deletions(-) rename suave/devenv/{ => blockscout}/envs/common-blockscout.env (100%) rename suave/devenv/{ => blockscout}/envs/common-frontend.env (100%) rename suave/devenv/{ => blockscout}/envs/common-stats.env (100%) rename suave/devenv/{ => blockscout}/envs/common-visualizer.env (100%) rename suave/devenv/{ => blockscout}/proxy/default.conf.template (100%) rename suave/devenv/{ => blockscout}/services/docker-compose-backend.yml (100%) rename suave/devenv/{ => blockscout}/services/docker-compose-db.yml (100%) rename suave/devenv/{ => blockscout}/services/docker-compose-frontend.yml (100%) rename suave/devenv/{ => blockscout}/services/docker-compose-nginx.yml (100%) rename suave/devenv/{ => blockscout}/services/docker-compose-redis.yml (100%) rename suave/devenv/{ => blockscout}/services/docker-compose-sig-provider.yml (100%) rename suave/devenv/{ => blockscout}/services/docker-compose-stats.yml (100%) rename suave/devenv/{ => blockscout}/services/docker-compose-visualizer.yml (100%) diff --git a/.gitignore b/.gitignore index 80692beb67..aabcaad0f8 100644 --- a/.gitignore +++ b/.gitignore @@ -47,9 +47,9 @@ profile.cov /dashboard/assets/bundle.js.map /dashboard/assets/package-lock.json -/suave/devenv/services/blockscout-db-data -/suave/devenv/services/redis-data -/suave/devenv/services/stats-db-data +/suave/devenv/blockscout/services/blockscout-db-data +/suave/devenv/blockscout/services/redis-data +/suave/devenv/blockscout/services/stats-db-data **/yarn-error.log logs/ \ No newline at end of file diff --git a/suave/devenv/envs/common-blockscout.env b/suave/devenv/blockscout/envs/common-blockscout.env similarity index 100% rename from suave/devenv/envs/common-blockscout.env rename to suave/devenv/blockscout/envs/common-blockscout.env diff --git a/suave/devenv/envs/common-frontend.env b/suave/devenv/blockscout/envs/common-frontend.env similarity index 100% rename from suave/devenv/envs/common-frontend.env rename to suave/devenv/blockscout/envs/common-frontend.env diff --git a/suave/devenv/envs/common-stats.env b/suave/devenv/blockscout/envs/common-stats.env similarity index 100% rename from suave/devenv/envs/common-stats.env rename to suave/devenv/blockscout/envs/common-stats.env diff --git a/suave/devenv/envs/common-visualizer.env b/suave/devenv/blockscout/envs/common-visualizer.env similarity index 100% rename from suave/devenv/envs/common-visualizer.env rename to suave/devenv/blockscout/envs/common-visualizer.env diff --git a/suave/devenv/proxy/default.conf.template b/suave/devenv/blockscout/proxy/default.conf.template similarity index 100% rename from suave/devenv/proxy/default.conf.template rename to suave/devenv/blockscout/proxy/default.conf.template diff --git a/suave/devenv/services/docker-compose-backend.yml b/suave/devenv/blockscout/services/docker-compose-backend.yml similarity index 100% rename from suave/devenv/services/docker-compose-backend.yml rename to suave/devenv/blockscout/services/docker-compose-backend.yml diff --git a/suave/devenv/services/docker-compose-db.yml b/suave/devenv/blockscout/services/docker-compose-db.yml similarity index 100% rename from suave/devenv/services/docker-compose-db.yml rename to suave/devenv/blockscout/services/docker-compose-db.yml diff --git a/suave/devenv/services/docker-compose-frontend.yml b/suave/devenv/blockscout/services/docker-compose-frontend.yml similarity index 100% rename from suave/devenv/services/docker-compose-frontend.yml rename to suave/devenv/blockscout/services/docker-compose-frontend.yml diff --git a/suave/devenv/services/docker-compose-nginx.yml b/suave/devenv/blockscout/services/docker-compose-nginx.yml similarity index 100% rename from suave/devenv/services/docker-compose-nginx.yml rename to suave/devenv/blockscout/services/docker-compose-nginx.yml diff --git a/suave/devenv/services/docker-compose-redis.yml b/suave/devenv/blockscout/services/docker-compose-redis.yml similarity index 100% rename from suave/devenv/services/docker-compose-redis.yml rename to suave/devenv/blockscout/services/docker-compose-redis.yml diff --git a/suave/devenv/services/docker-compose-sig-provider.yml b/suave/devenv/blockscout/services/docker-compose-sig-provider.yml similarity index 100% rename from suave/devenv/services/docker-compose-sig-provider.yml rename to suave/devenv/blockscout/services/docker-compose-sig-provider.yml diff --git a/suave/devenv/services/docker-compose-stats.yml b/suave/devenv/blockscout/services/docker-compose-stats.yml similarity index 100% rename from suave/devenv/services/docker-compose-stats.yml rename to suave/devenv/blockscout/services/docker-compose-stats.yml diff --git a/suave/devenv/services/docker-compose-visualizer.yml b/suave/devenv/blockscout/services/docker-compose-visualizer.yml similarity index 100% rename from suave/devenv/services/docker-compose-visualizer.yml rename to suave/devenv/blockscout/services/docker-compose-visualizer.yml diff --git a/suave/devenv/docker-compose.yml b/suave/devenv/docker-compose.yml index 70a8ad6d2b..5f0f09dcd2 100644 --- a/suave/devenv/docker-compose.yml +++ b/suave/devenv/docker-compose.yml @@ -34,14 +34,15 @@ services: - --ws ports: - 8555:8545 + redis_db: extends: - file: ./services/docker-compose-redis.yml + file: ./blockscout/services/docker-compose-redis.yml service: redis_db db: extends: - file: ./services/docker-compose-db.yml + file: ./blockscout/services/docker-compose-db.yml service: db backend: @@ -49,7 +50,7 @@ services: - db - redis_db extends: - file: ./services/docker-compose-backend.yml + file: ./blockscout/services/docker-compose-backend.yml service: backend links: - db:database @@ -63,33 +64,33 @@ services: visualizer: extends: - file: ./services/docker-compose-visualizer.yml + file: ./blockscout/services/docker-compose-visualizer.yml service: visualizer sig-provider: extends: - file: ./services/docker-compose-sig-provider.yml + file: ./blockscout/services/docker-compose-sig-provider.yml service: sig-provider frontend: depends_on: - backend extends: - file: ./services/docker-compose-frontend.yml + file: ./blockscout/services/docker-compose-frontend.yml service: frontend stats-db: depends_on: - backend extends: - file: ./services/docker-compose-stats.yml + file: ./blockscout/services/docker-compose-stats.yml service: stats-db stats: depends_on: - stats-db extends: - file: ./services/docker-compose-stats.yml + file: ./blockscout/services/docker-compose-stats.yml service: stats proxy: @@ -98,5 +99,5 @@ services: - frontend - stats extends: - file: ./services/docker-compose-nginx.yml + file: ./blockscout/services/docker-compose-nginx.yml service: proxy From 37a5706637b5784e2bfa802b319c2f1d79cf3c5c Mon Sep 17 00:00:00 2001 From: Viktor Baranov Date: Thu, 28 Sep 2023 19:31:48 +0300 Subject: [PATCH 03/17] Add Blockscout UI customizations --- suave/devenv/blockscout/envs/common-frontend.env | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/suave/devenv/blockscout/envs/common-frontend.env b/suave/devenv/blockscout/envs/common-frontend.env index 9169908d81..1d4edc9053 100644 --- a/suave/devenv/blockscout/envs/common-frontend.env +++ b/suave/devenv/blockscout/envs/common-frontend.env @@ -1,8 +1,8 @@ NEXT_PUBLIC_API_HOST=localhost NEXT_PUBLIC_API_PROTOCOL=http NEXT_PUBLIC_STATS_API_HOST=http://localhost:8080 -NEXT_PUBLIC_NETWORK_NAME=Suave Devnet -NEXT_PUBLIC_NETWORK_SHORT_NAME=Suave Devnet +NEXT_PUBLIC_NETWORK_NAME=SUAVE +NEXT_PUBLIC_NETWORK_SHORT_NAME=SUAVE NEXT_PUBLIC_NETWORK_ID=5 NEXT_PUBLIC_NETWORK_CURRENCY_NAME=Ether NEXT_PUBLIC_NETWORK_CURRENCY_SYMBOL=ETH @@ -14,3 +14,9 @@ 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_NETWORK_LOGO=https://raw.githubusercontent.com/blockscout/frontend-configs/main/configs/network-logos/suave-light.png +NEXT_PUBLIC_NETWORK_LOGO_DARK=https://raw.githubusercontent.com/blockscout/frontend-configs/main/configs/network-logos/suave-light.png +NEXT_PUBLIC_NETWORK_ICON=https://raw.githubusercontent.com/blockscout/frontend-configs/main/configs/network-icons/suave-short.png +NEXT_PUBLIC_NETWORK_ICON_DARK=https://raw.githubusercontent.com/blockscout/frontend-configs/main/configs/network-icons/suave-short.png +NEXT_PUBLIC_HOMEPAGE_PLATE_BACKGROUND=rgba(46, 46, 46, 1) +NEXT_PUBLIC_HOMEPAGE_PLATE_TEXT_COLOR=rgba(48, 210, 248, 1) From 73e4b2b6e585141ff6d2541f1561402eea5dff93 Mon Sep 17 00:00:00 2001 From: Viktor Baranov Date: Fri, 29 Sep 2023 16:52:44 +0300 Subject: [PATCH 04/17] Adding customized for SUAVE Blockscout backend --- .../blockscout/envs/common-blockscout.env | 21 +++++++++++++++++-- .../services/docker-compose-backend.yml | 2 +- .../services/docker-compose-frontend.yml | 2 +- suave/devenv/docker-compose.yml | 2 ++ 4 files changed, 23 insertions(+), 4 deletions(-) diff --git a/suave/devenv/blockscout/envs/common-blockscout.env b/suave/devenv/blockscout/envs/common-blockscout.env index 581bc0cb62..bf0bed6ae6 100644 --- a/suave/devenv/blockscout/envs/common-blockscout.env +++ b/suave/devenv/blockscout/envs/common-blockscout.env @@ -6,6 +6,7 @@ DATABASE_URL=postgresql://postgres:@host.docker.internal:7432/blockscout?ssl=fal ETHEREUM_JSONRPC_TRACE_URL=http://host.docker.internal:8545/ # ETHEREUM_JSONRPC_FALLBACK_TRACE_URL= # ETHEREUM_JSONRPC_HTTP_TIMEOUT= +# CHAIN_TYPE= NETWORK= SUBNETWORK=Awesome chain LOGO=/images/blockscout_logo.svg @@ -38,7 +39,7 @@ EXCHANGE_RATES_COIN= # EXCHANGE_RATES_COINGECKO_API_KEY= # EXCHANGE_RATES_COINMARKETCAP_API_KEY= # EXCHANGE_RATES_COINMARKETCAP_COIN_ID= -POOL_SIZE=90 +POOL_SIZE=80 # EXCHANGE_RATES_COINGECKO_PLATFORM_ID= # TOKEN_EXCHANGE_RATE_INTERVAL= # TOKEN_EXCHANGE_RATE_REFETCH_INTERVAL= @@ -99,6 +100,7 @@ DISABLE_REALTIME_INDEXER=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 # INDEXER_CATCHUP_BLOCKS_BATCH_SIZE= @@ -112,6 +114,7 @@ INDEXER_DISABLE_INTERNAL_TRANSACTIONS_FETCHER=false # INDEXER_TOKEN_INSTANCE_RETRY_CONCURRENCY= # INDEXER_TOKEN_INSTANCE_REALTIME_CONCURRENCY= # INDEXER_TOKEN_INSTANCE_SANITIZE_CONCURRENCY= +# INDEXER_TOKEN_INSTANCE_LEGACY_SANITIZE_CONCURRENCY=10 # INDEXER_COIN_BALANCES_BATCH_SIZE= # INDEXER_COIN_BALANCES_CONCURRENCY= # INDEXER_RECEIPTS_BATCH_SIZE= @@ -125,9 +128,20 @@ INDEXER_DISABLE_INTERNAL_TRANSACTIONS_FETCHER=false # 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_REALTIME_FETCHER_MAX_GAP= # INDEXER_FETCHER_INIT_QUERY_LIMIT= # INDEXER_TOKEN_BALANCES_FETCHER_INIT_QUERY_LIMIT= +# INDEXER_COIN_BALANCES_FETCHER_INIT_QUERY_LIMIT= # INDEXER_DISABLE_WITHDRAWALS_FETCHER= # WITHDRAWALS_FIRST_BLOCK= # TOKEN_ID_MIGRATION_FIRST_BLOCK= @@ -218,4 +232,7 @@ EIP_1559_ELASTICITY_MULTIPLIER=2 # INDEXER_TOKEN_INSTANCE_RETRY_BATCH_SIZE=10 # INDEXER_TOKEN_INSTANCE_REALTIME_BATCH_SIZE=1 # INDEXER_TOKEN_INSTANCE_SANITIZE_BATCH_SIZE=10 -API_V2_ENABLED=true \ No newline at end of file +API_V2_ENABLED=true +# INDEXER_TOKEN_INSTANCE_LEGACY_SANITIZE_BATCH_SIZE=10 +# TOKEN_INSTANCE_OWNER_MIGRATION_CONCURRENCY=5 +# TOKEN_INSTANCE_OWNER_MIGRATION_BATCH_SIZE=50 \ No newline at end of file diff --git a/suave/devenv/blockscout/services/docker-compose-backend.yml b/suave/devenv/blockscout/services/docker-compose-backend.yml index f73af4dab1..33e5b927c0 100644 --- a/suave/devenv/blockscout/services/docker-compose-backend.yml +++ b/suave/devenv/blockscout/services/docker-compose-backend.yml @@ -2,7 +2,7 @@ version: '3.8' services: backend: - image: blockscout/blockscout:${DOCKER_TAG:-latest} + image: blockscout/blockscout-suave:${DOCKER_TAG:-latest} pull_policy: always restart: always stop_grace_period: 5m diff --git a/suave/devenv/blockscout/services/docker-compose-frontend.yml b/suave/devenv/blockscout/services/docker-compose-frontend.yml index 2c0210ebf8..510341b840 100644 --- a/suave/devenv/blockscout/services/docker-compose-frontend.yml +++ b/suave/devenv/blockscout/services/docker-compose-frontend.yml @@ -2,7 +2,7 @@ version: '3.8' services: frontend: - image: ghcr.io/blockscout/frontend:${FRONTEND_DOCKER_TAG:-latest} + image: ghcr.io/blockscout/frontend:${FRONTEND_DOCKER_TAG:-v1.11.2} pull_policy: always platform: linux/amd64 restart: always diff --git a/suave/devenv/docker-compose.yml b/suave/devenv/docker-compose.yml index 5f0f09dcd2..8df2556d3b 100644 --- a/suave/devenv/docker-compose.yml +++ b/suave/devenv/docker-compose.yml @@ -61,6 +61,8 @@ services: DATABASE_URL: postgresql://postgres:@host.docker.internal:7432/blockscout?ssl=false CHAIN_ID: '1337' POOL_SIZE: 30 + CHAIN_TYPE: 'suave' + SUAVE_BID_CONTRACTS: '0x8f21fdd6b4f4cacd33151777a46c122797c8bf17' visualizer: extends: From 0e1b4660ec5eb1d70dcfaf95ca96d788add7b453 Mon Sep 17 00:00:00 2001 From: Viktor Baranov Date: Mon, 2 Oct 2023 18:22:51 +0300 Subject: [PATCH 05/17] Remove extra containers: visualizer, sig-provider, Redis; use a single db instance for stats and backend; enhance proxy template --- .gitignore | 2 - .../blockscout/envs/common-blockscout.env | 20 +++--- .../blockscout/envs/common-frontend.env | 2 +- .../blockscout/envs/common-visualizer.env | 1 - .../blockscout/proxy/default.conf.template | 55 ++------------- .../services/docker-compose-backend.yml | 4 +- .../blockscout/services/docker-compose-db.yml | 34 ++++++++-- .../services/docker-compose-frontend.yml | 4 +- .../services/docker-compose-nginx.yml | 9 ++- .../services/docker-compose-redis.yml | 9 --- .../services/docker-compose-sig-provider.yml | 9 --- .../services/docker-compose-stats.yml | 22 ++---- .../services/docker-compose-visualizer.yml | 11 --- suave/devenv/docker-compose.yml | 67 ++++++------------- 14 files changed, 75 insertions(+), 174 deletions(-) delete mode 100644 suave/devenv/blockscout/envs/common-visualizer.env delete mode 100644 suave/devenv/blockscout/services/docker-compose-redis.yml delete mode 100644 suave/devenv/blockscout/services/docker-compose-sig-provider.yml delete mode 100644 suave/devenv/blockscout/services/docker-compose-visualizer.yml diff --git a/.gitignore b/.gitignore index aabcaad0f8..e4923a42b7 100644 --- a/.gitignore +++ b/.gitignore @@ -48,8 +48,6 @@ profile.cov /dashboard/assets/package-lock.json /suave/devenv/blockscout/services/blockscout-db-data -/suave/devenv/blockscout/services/redis-data -/suave/devenv/blockscout/services/stats-db-data **/yarn-error.log logs/ \ No newline at end of file diff --git a/suave/devenv/blockscout/envs/common-blockscout.env b/suave/devenv/blockscout/envs/common-blockscout.env index bf0bed6ae6..f1ed5efd20 100644 --- a/suave/devenv/blockscout/envs/common-blockscout.env +++ b/suave/devenv/blockscout/envs/common-blockscout.env @@ -2,11 +2,12 @@ ETHEREUM_JSONRPC_VARIANT=geth ETHEREUM_JSONRPC_HTTP_URL=http://host.docker.internal:8545/ # ETHEREUM_JSONRPC_FALLBACK_HTTP_URL= -DATABASE_URL=postgresql://postgres:@host.docker.internal:7432/blockscout?ssl=false +DATABASE_URL=postgresql://blockscout:ceWb1MeLBEeOIfk65gU8EjF8@blockscout-db:5432/blockscout?ssl=false ETHEREUM_JSONRPC_TRACE_URL=http://host.docker.internal:8545/ # ETHEREUM_JSONRPC_FALLBACK_TRACE_URL= # ETHEREUM_JSONRPC_HTTP_TIMEOUT= -# CHAIN_TYPE= +CHAIN_TYPE=suave +CHAIN_ID=1337 NETWORK= SUBNETWORK=Awesome chain LOGO=/images/blockscout_logo.svg @@ -39,7 +40,7 @@ EXCHANGE_RATES_COIN= # EXCHANGE_RATES_COINGECKO_API_KEY= # EXCHANGE_RATES_COINMARKETCAP_API_KEY= # EXCHANGE_RATES_COINMARKETCAP_COIN_ID= -POOL_SIZE=80 +POOL_SIZE=30 # EXCHANGE_RATES_COINGECKO_PLATFORM_ID= # TOKEN_EXCHANGE_RATE_INTERVAL= # TOKEN_EXCHANGE_RATE_REFETCH_INTERVAL= @@ -203,10 +204,10 @@ MICROSERVICE_SC_VERIFIER_ENABLED=true MICROSERVICE_SC_VERIFIER_URL=https://eth-bytecode-db.services.blockscout.com/ MICROSERVICE_SC_VERIFIER_TYPE=eth_bytecode_db MICROSERVICE_ETH_BYTECODE_DB_INTERVAL_BETWEEN_LOOKUPS=10m -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_VISUALIZE_SOL2UML_ENABLED=true +#MICROSERVICE_VISUALIZE_SOL2UML_URL=http://visualizer:8050/ +#MICROSERVICE_SIG_PROVIDER_ENABLED=true +#MICROSERVICE_SIG_PROVIDER_URL=http://sig-provider:8050/ DECODE_NOT_A_CONTRACT_CALLS=true # DATABASE_READ_ONLY_API_URL= # ACCOUNT_DATABASE_URL= @@ -221,7 +222,7 @@ DECODE_NOT_A_CONTRACT_CALLS=true # ACCOUNT_SENDGRID_TEMPLATE= ACCOUNT_CLOAK_KEY= ACCOUNT_ENABLED=false -ACCOUNT_REDIS_URL=redis://redis_db:6379 +#ACCOUNT_REDIS_URL=redis://redis_db:6379 # MIXPANEL_TOKEN= # MIXPANEL_URL= # AMPLITUDE_API_KEY= @@ -235,4 +236,5 @@ EIP_1559_ELASTICITY_MULTIPLIER=2 API_V2_ENABLED=true # INDEXER_TOKEN_INSTANCE_LEGACY_SANITIZE_BATCH_SIZE=10 # TOKEN_INSTANCE_OWNER_MIGRATION_CONCURRENCY=5 -# TOKEN_INSTANCE_OWNER_MIGRATION_BATCH_SIZE=50 \ No newline at end of file +# TOKEN_INSTANCE_OWNER_MIGRATION_BATCH_SIZE=50 +SUAVE_BID_CONTRACTS=0x8f21fdd6b4f4cacd33151777a46c122797c8bf17 \ No newline at end of file diff --git a/suave/devenv/blockscout/envs/common-frontend.env b/suave/devenv/blockscout/envs/common-frontend.env index 1d4edc9053..121a6a146a 100644 --- a/suave/devenv/blockscout/envs/common-frontend.env +++ b/suave/devenv/blockscout/envs/common-frontend.env @@ -11,7 +11,6 @@ NEXT_PUBLIC_API_BASE_PATH=/ NEXT_PUBLIC_APP_HOST=localhost NEXT_PUBLIC_APP_PROTOCOL=http 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_NETWORK_LOGO=https://raw.githubusercontent.com/blockscout/frontend-configs/main/configs/network-logos/suave-light.png @@ -20,3 +19,4 @@ NEXT_PUBLIC_NETWORK_ICON=https://raw.githubusercontent.com/blockscout/frontend-c NEXT_PUBLIC_NETWORK_ICON_DARK=https://raw.githubusercontent.com/blockscout/frontend-configs/main/configs/network-icons/suave-short.png NEXT_PUBLIC_HOMEPAGE_PLATE_BACKGROUND=rgba(46, 46, 46, 1) NEXT_PUBLIC_HOMEPAGE_PLATE_TEXT_COLOR=rgba(48, 210, 248, 1) +NEXT_PUBLIC_API_SPEC_URL=https://raw.githubusercontent.com/blockscout/blockscout-api-v2-swagger/main/swagger.yaml diff --git a/suave/devenv/blockscout/envs/common-visualizer.env b/suave/devenv/blockscout/envs/common-visualizer.env deleted file mode 100644 index b4fd470849..0000000000 --- a/suave/devenv/blockscout/envs/common-visualizer.env +++ /dev/null @@ -1 +0,0 @@ -VISUALIZER__SERVER__GRPC__ENABLED=false diff --git a/suave/devenv/blockscout/proxy/default.conf.template b/suave/devenv/blockscout/proxy/default.conf.template index 0ea0e3bf9f..b4a2675c5c 100644 --- a/suave/devenv/blockscout/proxy/default.conf.template +++ b/suave/devenv/blockscout/proxy/default.conf.template @@ -9,7 +9,7 @@ server { server_name localhost; proxy_http_version 1.1; - location / { + location ~ ^/(api|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"; @@ -20,18 +20,7 @@ server { 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; - } - location ~ ^/(_next|node-api|apps|account|accounts|favicon|static|auth/profile|auth/unverified-email|txs|tx|blocks|block|login|address|stats|search-results|token|tokens|visualize|api-docs|csv-export|verified-contracts|graphiql|withdrawals) { + location / { proxy_pass ${FRONT_PROXY_PASS}; proxy_http_version 1.1; proxy_set_header Host "$host"; @@ -43,30 +32,9 @@ server { proxy_cache_bypass $http_upgrade; } } -server { - listen 8080; - server_name localhost; - proxy_http_version 1.1; - proxy_hide_header Access-Control-Allow-Origin; - proxy_hide_header Access-Control-Allow-Methods; - add_header 'Access-Control-Allow-Origin' 'http://localhost' always; - add_header 'Access-Control-Allow-Credentials' 'true' always; - add_header 'Access-Control-Allow-Methods' 'PUT, GET, POST, OPTIONS, DELETE, PATCH' always; - location / { - proxy_pass http://stats:8050/; - 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; - } -} server { - listen 8081; + listen 8080; server_name localhost; proxy_http_version 1.1; proxy_hide_header Access-Control-Allow-Origin; @@ -74,31 +42,16 @@ server { add_header 'Access-Control-Allow-Origin' 'http://localhost' always; add_header 'Access-Control-Allow-Credentials' 'true' always; add_header 'Access-Control-Allow-Methods' 'PUT, GET, POST, OPTIONS, DELETE, PATCH' always; - add_header 'Access-Control-Allow-Headers' 'DNT,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Range,Authorization,x-csrf-token' always; location / { - proxy_pass http://visualizer:8050/; + proxy_pass http://blockscout-stats:8050/; proxy_http_version 1.1; - proxy_buffering off; proxy_set_header Host "$host"; proxy_set_header X-Real-IP "$remote_addr"; - proxy_connect_timeout 30m; - proxy_read_timeout 30m; - proxy_send_timeout 30m; 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; - if ($request_method = 'OPTIONS') { - add_header 'Access-Control-Allow-Origin' 'http://localhost' always; - add_header 'Access-Control-Allow-Credentials' 'true' always; - add_header 'Access-Control-Allow-Methods' 'PUT, GET, POST, OPTIONS, DELETE, PATCH' always; - add_header 'Access-Control-Allow-Headers' 'DNT,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Range,Authorization,x-csrf-token' always; - add_header 'Access-Control-Max-Age' 1728000; - add_header 'Content-Type' 'text/plain charset=UTF-8'; - add_header 'Content-Length' 0; - return 204; - } } } \ No newline at end of file diff --git a/suave/devenv/blockscout/services/docker-compose-backend.yml b/suave/devenv/blockscout/services/docker-compose-backend.yml index 33e5b927c0..e2afac761a 100644 --- a/suave/devenv/blockscout/services/docker-compose-backend.yml +++ b/suave/devenv/blockscout/services/docker-compose-backend.yml @@ -1,12 +1,12 @@ version: '3.8' services: - backend: + blockscout-backend: image: blockscout/blockscout-suave:${DOCKER_TAG:-latest} pull_policy: always restart: always stop_grace_period: 5m - container_name: 'backend' + container_name: 'blockscout-backend' command: sh -c "bin/blockscout eval \"Elixir.Explorer.ReleaseTasks.create_and_migrate()\" && bin/blockscout start" extra_hosts: - 'host.docker.internal:host-gateway' diff --git a/suave/devenv/blockscout/services/docker-compose-db.yml b/suave/devenv/blockscout/services/docker-compose-db.yml index 51a139dff4..515d7d224f 100644 --- a/suave/devenv/blockscout/services/docker-compose-db.yml +++ b/suave/devenv/blockscout/services/docker-compose-db.yml @@ -1,16 +1,36 @@ version: '3.8' services: - db: + blockscout-db-init: image: postgres:14 + volumes: + - ./blockscout-db-data:/var/lib/postgresql/data + entrypoint: + - sh + - -c + - | + chown -R 2000:2000 /var/lib/postgresql/data + + blockscout-db: + depends_on: + blockscout-db-init: + condition: service_completed_successfully + image: postgres:14 + user: 2000:2000 restart: always - container_name: 'postgres' - command: postgres -c 'max_connections=200' + container_name: 'blockscout-db' + command: postgres -c 'max_connections=300' environment: - POSTGRES_PASSWORD: '' - POSTGRES_USER: 'postgres' - POSTGRES_HOST_AUTH_METHOD: 'trust' + POSTGRES_DB: 'blockscout' + POSTGRES_USER: 'blockscout' + POSTGRES_PASSWORD: 'ceWb1MeLBEeOIfk65gU8EjF8' ports: - 7432:5432 volumes: - - ./blockscout-db-data:/var/lib/postgresql/data/ + - ./blockscout-db-data:/var/lib/postgresql/data + healthcheck: + test: ["CMD-SHELL", "pg_isready -U blockscout -d blockscout"] + interval: 10s + timeout: 5s + retries: 5 + start_period: 10s diff --git a/suave/devenv/blockscout/services/docker-compose-frontend.yml b/suave/devenv/blockscout/services/docker-compose-frontend.yml index 510341b840..ed4bafe257 100644 --- a/suave/devenv/blockscout/services/docker-compose-frontend.yml +++ b/suave/devenv/blockscout/services/docker-compose-frontend.yml @@ -1,11 +1,11 @@ version: '3.8' services: - frontend: + blockscout-frontend: image: ghcr.io/blockscout/frontend:${FRONTEND_DOCKER_TAG:-v1.11.2} pull_policy: always platform: linux/amd64 restart: always - container_name: 'frontend' + container_name: 'blockscout-frontend' env_file: - ../envs/common-frontend.env diff --git a/suave/devenv/blockscout/services/docker-compose-nginx.yml b/suave/devenv/blockscout/services/docker-compose-nginx.yml index e54401d3f5..306f063559 100644 --- a/suave/devenv/blockscout/services/docker-compose-nginx.yml +++ b/suave/devenv/blockscout/services/docker-compose-nginx.yml @@ -1,17 +1,16 @@ version: '3.8' services: - proxy: + blockscout-proxy: image: nginx - container_name: proxy + container_name: 'blockscout-proxy' extra_hosts: - 'host.docker.internal:host-gateway' volumes: - "../proxy:/etc/nginx/templates" environment: - BACK_PROXY_PASS: ${BACK_PROXY_PASS:-http://backend:4000} - FRONT_PROXY_PASS: ${FRONT_PROXY_PASS:-http://frontend:3000} + BACK_PROXY_PASS: ${BACK_PROXY_PASS:-http://blockscout-backend:4000} + FRONT_PROXY_PASS: ${FRONT_PROXY_PASS:-http://blockscout-frontend:3000} ports: - 80:80 - 8080:8080 - - 8081:8081 diff --git a/suave/devenv/blockscout/services/docker-compose-redis.yml b/suave/devenv/blockscout/services/docker-compose-redis.yml deleted file mode 100644 index c4b425509d..0000000000 --- a/suave/devenv/blockscout/services/docker-compose-redis.yml +++ /dev/null @@ -1,9 +0,0 @@ -version: '3.8' - -services: - redis_db: - image: 'redis:alpine' - container_name: redis_db - command: redis-server - volumes: - - ./redis-data:/data diff --git a/suave/devenv/blockscout/services/docker-compose-sig-provider.yml b/suave/devenv/blockscout/services/docker-compose-sig-provider.yml deleted file mode 100644 index df508404f7..0000000000 --- a/suave/devenv/blockscout/services/docker-compose-sig-provider.yml +++ /dev/null @@ -1,9 +0,0 @@ -version: '3.8' - -services: - sig-provider: - image: ghcr.io/blockscout/sig-provider:${SIG_PROVIDER_DOCKER_TAG:-latest} - pull_policy: always - platform: linux/amd64 - restart: always - container_name: 'sig-provider' diff --git a/suave/devenv/blockscout/services/docker-compose-stats.yml b/suave/devenv/blockscout/services/docker-compose-stats.yml index 5dde5bbad1..8c31553067 100644 --- a/suave/devenv/blockscout/services/docker-compose-stats.yml +++ b/suave/devenv/blockscout/services/docker-compose-stats.yml @@ -1,32 +1,18 @@ version: '3.8' services: - stats-db: - image: postgres:14 - restart: always - container_name: 'stats-postgres' - command: postgres -c 'max_connections=200' - environment: - POSTGRES_PASSWORD: '' - POSTGRES_USER: 'postgres' - POSTGRES_HOST_AUTH_METHOD: 'trust' - ports: - - 7433:5432 - volumes: - - ./stats-db-data:/var/lib/postgresql/data/ - - stats: + blockscout-stats: image: ghcr.io/blockscout/stats:${STATS_DOCKER_TAG:-latest} pull_policy: always platform: linux/amd64 restart: always - container_name: 'stats' + container_name: 'blockscout-stats' extra_hosts: - 'host.docker.internal:host-gateway' env_file: - ../envs/common-stats.env environment: - - STATS__DB_URL=postgres://postgres:@stats-db:5432/stats - - STATS__BLOCKSCOUT_DB_URL=postgresql://postgres:@host.docker.internal:7432/blockscout?ssl=false + - STATS__DB_URL=postgres://blockscout:ceWb1MeLBEeOIfk65gU8EjF8@blockscout-db:5432/stats + - STATS__BLOCKSCOUT_DB_URL=postgresql://blockscout:ceWb1MeLBEeOIfk65gU8EjF8@blockscout-db:5432/blockscout?ssl=false - STATS__CREATE_DATABASE=true - STATS__RUN_MIGRATIONS=true diff --git a/suave/devenv/blockscout/services/docker-compose-visualizer.yml b/suave/devenv/blockscout/services/docker-compose-visualizer.yml deleted file mode 100644 index 39dbfaf440..0000000000 --- a/suave/devenv/blockscout/services/docker-compose-visualizer.yml +++ /dev/null @@ -1,11 +0,0 @@ -version: '3.8' - -services: - visualizer: - 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 diff --git a/suave/devenv/docker-compose.yml b/suave/devenv/docker-compose.yml index 8df2556d3b..928970e63d 100644 --- a/suave/devenv/docker-compose.yml +++ b/suave/devenv/docker-compose.yml @@ -35,71 +35,44 @@ services: ports: - 8555:8545 - redis_db: + blockscout-db-init: extends: - file: ./blockscout/services/docker-compose-redis.yml - service: redis_db + file: ./blockscout/services/docker-compose-db.yml + service: blockscout-db-init - db: + blockscout-db: extends: file: ./blockscout/services/docker-compose-db.yml - service: db + service: blockscout-db - backend: + blockscout-backend: depends_on: - - db - - redis_db + - blockscout-db extends: file: ./blockscout/services/docker-compose-backend.yml - service: backend + service: blockscout-backend links: - - db:database - environment: - ETHEREUM_JSONRPC_VARIANT: geth - ETHEREUM_JSONRPC_HTTP_URL: http://host.docker.internal:8545/ - ETHEREUM_JSONRPC_TRACE_URL: http://host.docker.internal:8545/ - DATABASE_URL: postgresql://postgres:@host.docker.internal:7432/blockscout?ssl=false - CHAIN_ID: '1337' - POOL_SIZE: 30 - CHAIN_TYPE: 'suave' - SUAVE_BID_CONTRACTS: '0x8f21fdd6b4f4cacd33151777a46c122797c8bf17' - - visualizer: - extends: - file: ./blockscout/services/docker-compose-visualizer.yml - service: visualizer - - sig-provider: - extends: - file: ./blockscout/services/docker-compose-sig-provider.yml - service: sig-provider + - blockscout-db:database - frontend: + blockscout-frontend: depends_on: - - backend + - blockscout-backend extends: file: ./blockscout/services/docker-compose-frontend.yml - service: frontend - - stats-db: - depends_on: - - backend - extends: - file: ./blockscout/services/docker-compose-stats.yml - service: stats-db + service: blockscout-frontend - stats: + blockscout-stats: depends_on: - - stats-db + - blockscout-db extends: file: ./blockscout/services/docker-compose-stats.yml - service: stats + service: blockscout-stats - proxy: + blockscout-proxy: depends_on: - - backend - - frontend - - stats + - blockscout-backend + - blockscout-frontend + - blockscout-stats extends: file: ./blockscout/services/docker-compose-nginx.yml - service: proxy + service: blockscout-proxy From 80dcf0968b49232cb63d3299b0c043a3e82b1e36 Mon Sep 17 00:00:00 2001 From: Viktor Baranov Date: Thu, 12 Oct 2023 21:53:21 +0300 Subject: [PATCH 06/17] Set NEXT_PUBLIC_OG_IMAGE_URL --- suave/devenv/blockscout/envs/common-frontend.env | 1 + 1 file changed, 1 insertion(+) diff --git a/suave/devenv/blockscout/envs/common-frontend.env b/suave/devenv/blockscout/envs/common-frontend.env index 121a6a146a..3285b7b211 100644 --- a/suave/devenv/blockscout/envs/common-frontend.env +++ b/suave/devenv/blockscout/envs/common-frontend.env @@ -20,3 +20,4 @@ NEXT_PUBLIC_NETWORK_ICON_DARK=https://raw.githubusercontent.com/blockscout/front NEXT_PUBLIC_HOMEPAGE_PLATE_BACKGROUND=rgba(46, 46, 46, 1) NEXT_PUBLIC_HOMEPAGE_PLATE_TEXT_COLOR=rgba(48, 210, 248, 1) NEXT_PUBLIC_API_SPEC_URL=https://raw.githubusercontent.com/blockscout/blockscout-api-v2-swagger/main/swagger.yaml +NEXT_PUBLIC_OG_IMAGE_URL=https://raw.githubusercontent.com/blockscout/frontend-configs/main/configs/og-images/suave-testnet.png \ No newline at end of file From 6c30abf9d49b1677f56436605da3b3d2aa9d600b Mon Sep 17 00:00:00 2001 From: Viktor Baranov Date: Fri, 13 Oct 2023 15:23:29 +0300 Subject: [PATCH 07/17] Update to the latest version of frontend --- suave/devenv/blockscout/envs/common-frontend.env | 1 + suave/devenv/blockscout/services/docker-compose-frontend.yml | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/suave/devenv/blockscout/envs/common-frontend.env b/suave/devenv/blockscout/envs/common-frontend.env index 3285b7b211..1b06e0ec80 100644 --- a/suave/devenv/blockscout/envs/common-frontend.env +++ b/suave/devenv/blockscout/envs/common-frontend.env @@ -12,6 +12,7 @@ NEXT_PUBLIC_APP_HOST=localhost NEXT_PUBLIC_APP_PROTOCOL=http NEXT_PUBLIC_HOMEPAGE_CHARTS=['daily_txs'] NEXT_PUBLIC_IS_TESTNET=true +NEXT_PUBLIC_IS_SUAVE_CHAIN=true NEXT_PUBLIC_API_WEBSOCKET_PROTOCOL=ws NEXT_PUBLIC_NETWORK_LOGO=https://raw.githubusercontent.com/blockscout/frontend-configs/main/configs/network-logos/suave-light.png NEXT_PUBLIC_NETWORK_LOGO_DARK=https://raw.githubusercontent.com/blockscout/frontend-configs/main/configs/network-logos/suave-light.png diff --git a/suave/devenv/blockscout/services/docker-compose-frontend.yml b/suave/devenv/blockscout/services/docker-compose-frontend.yml index ed4bafe257..a3a2c0e4ad 100644 --- a/suave/devenv/blockscout/services/docker-compose-frontend.yml +++ b/suave/devenv/blockscout/services/docker-compose-frontend.yml @@ -2,7 +2,7 @@ version: '3.8' services: blockscout-frontend: - image: ghcr.io/blockscout/frontend:${FRONTEND_DOCKER_TAG:-v1.11.2} + image: ghcr.io/blockscout/frontend:${FRONTEND_DOCKER_TAG:-latest} pull_policy: always platform: linux/amd64 restart: always From 4db0bef5cb9351b4b4b66070dfd2eea353d4a12a Mon Sep 17 00:00:00 2001 From: Viktor Baranov Date: Mon, 16 Oct 2023 16:01:49 +0300 Subject: [PATCH 08/17] Change explorer port to 8080, remove ads --- suave/devenv/blockscout/envs/common-frontend.env | 7 +++++-- suave/devenv/blockscout/proxy/default.conf.template | 6 +++--- suave/devenv/blockscout/services/docker-compose-nginx.yml | 2 +- 3 files changed, 9 insertions(+), 6 deletions(-) diff --git a/suave/devenv/blockscout/envs/common-frontend.env b/suave/devenv/blockscout/envs/common-frontend.env index 1b06e0ec80..404ca5a873 100644 --- a/suave/devenv/blockscout/envs/common-frontend.env +++ b/suave/devenv/blockscout/envs/common-frontend.env @@ -1,6 +1,7 @@ NEXT_PUBLIC_API_HOST=localhost +NEXT_PUBLIC_API_PORT=8080 NEXT_PUBLIC_API_PROTOCOL=http -NEXT_PUBLIC_STATS_API_HOST=http://localhost:8080 +NEXT_PUBLIC_STATS_API_HOST=http://localhost:8081 NEXT_PUBLIC_NETWORK_NAME=SUAVE NEXT_PUBLIC_NETWORK_SHORT_NAME=SUAVE NEXT_PUBLIC_NETWORK_ID=5 @@ -21,4 +22,6 @@ NEXT_PUBLIC_NETWORK_ICON_DARK=https://raw.githubusercontent.com/blockscout/front NEXT_PUBLIC_HOMEPAGE_PLATE_BACKGROUND=rgba(46, 46, 46, 1) NEXT_PUBLIC_HOMEPAGE_PLATE_TEXT_COLOR=rgba(48, 210, 248, 1) NEXT_PUBLIC_API_SPEC_URL=https://raw.githubusercontent.com/blockscout/blockscout-api-v2-swagger/main/swagger.yaml -NEXT_PUBLIC_OG_IMAGE_URL=https://raw.githubusercontent.com/blockscout/frontend-configs/main/configs/og-images/suave-testnet.png \ No newline at end of file +NEXT_PUBLIC_OG_IMAGE_URL=https://raw.githubusercontent.com/blockscout/frontend-configs/main/configs/og-images/suave-testnet.png +NEXT_PUBLIC_AD_BANNER_PROVIDER=none +NEXT_PUBLIC_AD_TEXT_PROVIDER=none \ No newline at end of file diff --git a/suave/devenv/blockscout/proxy/default.conf.template b/suave/devenv/blockscout/proxy/default.conf.template index b4a2675c5c..8a60dd725b 100644 --- a/suave/devenv/blockscout/proxy/default.conf.template +++ b/suave/devenv/blockscout/proxy/default.conf.template @@ -5,7 +5,7 @@ map $http_upgrade $connection_upgrade { } server { - listen 80; + listen 8080; server_name localhost; proxy_http_version 1.1; @@ -34,12 +34,12 @@ server { } server { - listen 8080; + listen 8081; server_name localhost; proxy_http_version 1.1; proxy_hide_header Access-Control-Allow-Origin; proxy_hide_header Access-Control-Allow-Methods; - add_header 'Access-Control-Allow-Origin' 'http://localhost' always; + add_header 'Access-Control-Allow-Origin' 'http://localhost:8080' always; add_header 'Access-Control-Allow-Credentials' 'true' always; add_header 'Access-Control-Allow-Methods' 'PUT, GET, POST, OPTIONS, DELETE, PATCH' always; diff --git a/suave/devenv/blockscout/services/docker-compose-nginx.yml b/suave/devenv/blockscout/services/docker-compose-nginx.yml index 306f063559..4c57b102bb 100644 --- a/suave/devenv/blockscout/services/docker-compose-nginx.yml +++ b/suave/devenv/blockscout/services/docker-compose-nginx.yml @@ -12,5 +12,5 @@ services: BACK_PROXY_PASS: ${BACK_PROXY_PASS:-http://blockscout-backend:4000} FRONT_PROXY_PASS: ${FRONT_PROXY_PASS:-http://blockscout-frontend:3000} ports: - - 80:80 - 8080:8080 + - 8081:8081 From ddfe2809eee14140a55f1c49f08356708eb59ffe Mon Sep 17 00:00:00 2001 From: Viktor Baranov Date: Mon, 16 Oct 2023 19:27:53 +0300 Subject: [PATCH 09/17] Add Docker-compose v2 to GA CI --- .github/workflows/checks.yml | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/.github/workflows/checks.yml b/.github/workflows/checks.yml index c771473691..47a2a7d943 100644 --- a/.github/workflows/checks.yml +++ b/.github/workflows/checks.yml @@ -81,6 +81,11 @@ jobs: - name: Check out code into the Go module directory uses: actions/checkout@v2 + - name: Setup Docker-compose v2 + uses: KengoTODA/actions-setup-docker-compose@v1 + with: + version: '2.22.0' + - name: Run dev environment run: make devnet-up From 60cfaff584acc220f08606eb82dc52f89249d8a8 Mon Sep 17 00:00:00 2001 From: Viktor Baranov Date: Thu, 19 Oct 2023 00:07:01 +0300 Subject: [PATCH 10/17] Remove duplicate CHAIN_ID from common-blockscout.env --- suave/devenv/blockscout/envs/common-blockscout.env | 1 - 1 file changed, 1 deletion(-) diff --git a/suave/devenv/blockscout/envs/common-blockscout.env b/suave/devenv/blockscout/envs/common-blockscout.env index f1ed5efd20..07cfe69aad 100644 --- a/suave/devenv/blockscout/envs/common-blockscout.env +++ b/suave/devenv/blockscout/envs/common-blockscout.env @@ -172,7 +172,6 @@ MAINTENANCE_ALERT_MESSAGE= SOURCIFY_INTEGRATION_ENABLED=false SOURCIFY_SERVER_URL= SOURCIFY_REPO_URL= -CHAIN_ID= MAX_SIZE_UNLESS_HIDE_ARRAY=50 HIDE_BLOCK_MINER=false DISPLAY_TOKEN_ICONS=false From 372aca32fa3a47e995efa1a1af3b7c45e5e2e5c4 Mon Sep 17 00:00:00 2001 From: Viktor Baranov Date: Thu, 19 Oct 2023 18:05:26 +0300 Subject: [PATCH 11/17] Connect Blockscout to node websocket endpoint --- suave/devenv/blockscout/envs/common-blockscout.env | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/suave/devenv/blockscout/envs/common-blockscout.env b/suave/devenv/blockscout/envs/common-blockscout.env index 07cfe69aad..57bc1a4d65 100644 --- a/suave/devenv/blockscout/envs/common-blockscout.env +++ b/suave/devenv/blockscout/envs/common-blockscout.env @@ -11,7 +11,7 @@ CHAIN_ID=1337 NETWORK= SUBNETWORK=Awesome chain LOGO=/images/blockscout_logo.svg -# ETHEREUM_JSONRPC_WS_URL= +ETHEREUM_JSONRPC_WS_URL=ws://host.docker.internal:8546/ ETHEREUM_JSONRPC_TRANSPORT=http ETHEREUM_JSONRPC_DISABLE_ARCHIVE_BALANCES=false # ETHEREUM_JSONRPC_HTTP_HEADERS= From c380cd2b5aee0eaf107eac155c6298ad0479484d Mon Sep 17 00:00:00 2001 From: Viktor Baranov Date: Fri, 20 Oct 2023 13:05:45 +0300 Subject: [PATCH 12/17] Implicit versions of Docker images --- suave/devenv/blockscout/services/docker-compose-backend.yml | 2 +- suave/devenv/blockscout/services/docker-compose-frontend.yml | 2 +- suave/devenv/blockscout/services/docker-compose-stats.yml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/suave/devenv/blockscout/services/docker-compose-backend.yml b/suave/devenv/blockscout/services/docker-compose-backend.yml index e2afac761a..0dc489d008 100644 --- a/suave/devenv/blockscout/services/docker-compose-backend.yml +++ b/suave/devenv/blockscout/services/docker-compose-backend.yml @@ -2,7 +2,7 @@ version: '3.8' services: blockscout-backend: - image: blockscout/blockscout-suave:${DOCKER_TAG:-latest} + image: blockscout/blockscout-suave:${DOCKER_TAG:-5.2.3-postrelease-08cf6668} pull_policy: always restart: always stop_grace_period: 5m diff --git a/suave/devenv/blockscout/services/docker-compose-frontend.yml b/suave/devenv/blockscout/services/docker-compose-frontend.yml index a3a2c0e4ad..dfd659e22e 100644 --- a/suave/devenv/blockscout/services/docker-compose-frontend.yml +++ b/suave/devenv/blockscout/services/docker-compose-frontend.yml @@ -2,7 +2,7 @@ version: '3.8' services: blockscout-frontend: - image: ghcr.io/blockscout/frontend:${FRONTEND_DOCKER_TAG:-latest} + image: ghcr.io/blockscout/frontend:${FRONTEND_DOCKER_TAG:-v1.15.0} pull_policy: always platform: linux/amd64 restart: always diff --git a/suave/devenv/blockscout/services/docker-compose-stats.yml b/suave/devenv/blockscout/services/docker-compose-stats.yml index 8c31553067..9af27e4f5b 100644 --- a/suave/devenv/blockscout/services/docker-compose-stats.yml +++ b/suave/devenv/blockscout/services/docker-compose-stats.yml @@ -2,7 +2,7 @@ version: '3.8' services: blockscout-stats: - image: ghcr.io/blockscout/stats:${STATS_DOCKER_TAG:-latest} + image: ghcr.io/blockscout/stats:${STATS_DOCKER_TAG:-v1.4.1} pull_policy: always platform: linux/amd64 restart: always From a323ea738860ab3e6b19cb45027190ad4336fac4 Mon Sep 17 00:00:00 2001 From: Viktor Baranov Date: Fri, 20 Oct 2023 15:14:43 +0300 Subject: [PATCH 13/17] Remove stop_grace_period for backend container --- suave/devenv/blockscout/services/docker-compose-backend.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/suave/devenv/blockscout/services/docker-compose-backend.yml b/suave/devenv/blockscout/services/docker-compose-backend.yml index 0dc489d008..50a06c87af 100644 --- a/suave/devenv/blockscout/services/docker-compose-backend.yml +++ b/suave/devenv/blockscout/services/docker-compose-backend.yml @@ -5,7 +5,6 @@ services: image: blockscout/blockscout-suave:${DOCKER_TAG:-5.2.3-postrelease-08cf6668} pull_policy: always restart: always - stop_grace_period: 5m container_name: 'blockscout-backend' command: sh -c "bin/blockscout eval \"Elixir.Explorer.ReleaseTasks.create_and_migrate()\" && bin/blockscout start" extra_hosts: From c7e40cfd86303a27eb4bb07f6caaa98a2c8aae53 Mon Sep 17 00:00:00 2001 From: Viktor Baranov Date: Thu, 26 Oct 2023 10:20:47 +0300 Subject: [PATCH 14/17] Bump backend version up to 5.3.0, disable int & pending txs fetchers --- suave/devenv/blockscout/envs/common-blockscout.env | 4 ++-- suave/devenv/blockscout/services/docker-compose-backend.yml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/suave/devenv/blockscout/envs/common-blockscout.env b/suave/devenv/blockscout/envs/common-blockscout.env index 57bc1a4d65..dce2ee48e3 100644 --- a/suave/devenv/blockscout/envs/common-blockscout.env +++ b/suave/devenv/blockscout/envs/common-blockscout.env @@ -102,8 +102,8 @@ 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 +INDEXER_DISABLE_PENDING_TRANSACTIONS_FETCHER=true +INDEXER_DISABLE_INTERNAL_TRANSACTIONS_FETCHER=true # INDEXER_CATCHUP_BLOCKS_BATCH_SIZE= # INDEXER_CATCHUP_BLOCKS_CONCURRENCY= # INDEXER_CATCHUP_BLOCK_INTERVAL= diff --git a/suave/devenv/blockscout/services/docker-compose-backend.yml b/suave/devenv/blockscout/services/docker-compose-backend.yml index 50a06c87af..355973ae7c 100644 --- a/suave/devenv/blockscout/services/docker-compose-backend.yml +++ b/suave/devenv/blockscout/services/docker-compose-backend.yml @@ -2,7 +2,7 @@ version: '3.8' services: blockscout-backend: - image: blockscout/blockscout-suave:${DOCKER_TAG:-5.2.3-postrelease-08cf6668} + image: blockscout/blockscout-suave:${DOCKER_TAG:-5.3.0-postrelease-565d8148} pull_policy: always restart: always container_name: 'blockscout-backend' From 02f9f021b18b38cca3350972b0c739768219862c Mon Sep 17 00:00:00 2001 From: Viktor Baranov Date: Fri, 27 Oct 2023 09:01:24 +0300 Subject: [PATCH 15/17] Blockscout v5.3.1 release --- suave/devenv/blockscout/services/docker-compose-backend.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/suave/devenv/blockscout/services/docker-compose-backend.yml b/suave/devenv/blockscout/services/docker-compose-backend.yml index 355973ae7c..fd2df49810 100644 --- a/suave/devenv/blockscout/services/docker-compose-backend.yml +++ b/suave/devenv/blockscout/services/docker-compose-backend.yml @@ -2,7 +2,7 @@ version: '3.8' services: blockscout-backend: - image: blockscout/blockscout-suave:${DOCKER_TAG:-5.3.0-postrelease-565d8148} + image: blockscout/blockscout-suave:${DOCKER_TAG:-5.3.1} pull_policy: always restart: always container_name: 'blockscout-backend' From 2f274a08e954a9e37cec6c4927520aa6acc242c0 Mon Sep 17 00:00:00 2001 From: Viktor Baranov Date: Mon, 30 Oct 2023 14:38:50 +0300 Subject: [PATCH 16/17] Use named volume instead of path --- .gitignore | 2 -- Makefile | 2 +- suave/devenv/blockscout/services/docker-compose-db.yml | 4 ++-- suave/devenv/docker-compose.yml | 3 +++ 4 files changed, 6 insertions(+), 5 deletions(-) diff --git a/.gitignore b/.gitignore index e4923a42b7..f4db106b56 100644 --- a/.gitignore +++ b/.gitignore @@ -47,7 +47,5 @@ profile.cov /dashboard/assets/bundle.js.map /dashboard/assets/package-lock.json -/suave/devenv/blockscout/services/blockscout-db-data - **/yarn-error.log logs/ \ No newline at end of file diff --git a/Makefile b/Makefile index 6ca8096dd7..d6af90694a 100644 --- a/Makefile +++ b/Makefile @@ -51,4 +51,4 @@ devnet-up: docker-compose -f ./suave/devenv/docker-compose.yml up -d --build devnet-down: - docker-compose -f ./suave/devenv/docker-compose.yml down + docker-compose -f ./suave/devenv/docker-compose.yml down -v diff --git a/suave/devenv/blockscout/services/docker-compose-db.yml b/suave/devenv/blockscout/services/docker-compose-db.yml index 515d7d224f..0d76ae39c6 100644 --- a/suave/devenv/blockscout/services/docker-compose-db.yml +++ b/suave/devenv/blockscout/services/docker-compose-db.yml @@ -4,7 +4,7 @@ services: blockscout-db-init: image: postgres:14 volumes: - - ./blockscout-db-data:/var/lib/postgresql/data + - blockscout_db_data:/var/lib/postgresql/data entrypoint: - sh - -c @@ -27,7 +27,7 @@ services: ports: - 7432:5432 volumes: - - ./blockscout-db-data:/var/lib/postgresql/data + - blockscout_db_data:/var/lib/postgresql/data healthcheck: test: ["CMD-SHELL", "pg_isready -U blockscout -d blockscout"] interval: 10s diff --git a/suave/devenv/docker-compose.yml b/suave/devenv/docker-compose.yml index 928970e63d..871ef8e76c 100644 --- a/suave/devenv/docker-compose.yml +++ b/suave/devenv/docker-compose.yml @@ -76,3 +76,6 @@ services: extends: file: ./blockscout/services/docker-compose-nginx.yml service: blockscout-proxy + +volumes: + blockscout_db_data: From 5ca9fc27d7b5f8fef3782f69a1366ddac048345a Mon Sep 17 00:00:00 2001 From: Viktor Baranov Date: Mon, 30 Oct 2023 18:47:48 +0300 Subject: [PATCH 17/17] Use container name instead host.docker.internal for the node endpoint --- suave/devenv/blockscout/envs/common-blockscout.env | 6 +++--- suave/devenv/blockscout/services/docker-compose-backend.yml | 2 -- suave/devenv/blockscout/services/docker-compose-nginx.yml | 2 -- suave/devenv/blockscout/services/docker-compose-stats.yml | 2 -- 4 files changed, 3 insertions(+), 9 deletions(-) diff --git a/suave/devenv/blockscout/envs/common-blockscout.env b/suave/devenv/blockscout/envs/common-blockscout.env index dce2ee48e3..6fd893991f 100644 --- a/suave/devenv/blockscout/envs/common-blockscout.env +++ b/suave/devenv/blockscout/envs/common-blockscout.env @@ -1,9 +1,9 @@ # DOCKER_TAG= ETHEREUM_JSONRPC_VARIANT=geth -ETHEREUM_JSONRPC_HTTP_URL=http://host.docker.internal:8545/ +ETHEREUM_JSONRPC_HTTP_URL=http://suave-mevm:8545/ # ETHEREUM_JSONRPC_FALLBACK_HTTP_URL= DATABASE_URL=postgresql://blockscout:ceWb1MeLBEeOIfk65gU8EjF8@blockscout-db:5432/blockscout?ssl=false -ETHEREUM_JSONRPC_TRACE_URL=http://host.docker.internal:8545/ +ETHEREUM_JSONRPC_TRACE_URL=http://suave-mevm:8545/ # ETHEREUM_JSONRPC_FALLBACK_TRACE_URL= # ETHEREUM_JSONRPC_HTTP_TIMEOUT= CHAIN_TYPE=suave @@ -11,7 +11,7 @@ CHAIN_ID=1337 NETWORK= SUBNETWORK=Awesome chain LOGO=/images/blockscout_logo.svg -ETHEREUM_JSONRPC_WS_URL=ws://host.docker.internal:8546/ +ETHEREUM_JSONRPC_WS_URL=ws://suave-mevm:8546/ ETHEREUM_JSONRPC_TRANSPORT=http ETHEREUM_JSONRPC_DISABLE_ARCHIVE_BALANCES=false # ETHEREUM_JSONRPC_HTTP_HEADERS= diff --git a/suave/devenv/blockscout/services/docker-compose-backend.yml b/suave/devenv/blockscout/services/docker-compose-backend.yml index fd2df49810..043f5e79eb 100644 --- a/suave/devenv/blockscout/services/docker-compose-backend.yml +++ b/suave/devenv/blockscout/services/docker-compose-backend.yml @@ -7,8 +7,6 @@ services: restart: always container_name: 'blockscout-backend' command: sh -c "bin/blockscout eval \"Elixir.Explorer.ReleaseTasks.create_and_migrate()\" && bin/blockscout start" - extra_hosts: - - 'host.docker.internal:host-gateway' env_file: - ../envs/common-blockscout.env volumes: diff --git a/suave/devenv/blockscout/services/docker-compose-nginx.yml b/suave/devenv/blockscout/services/docker-compose-nginx.yml index 4c57b102bb..67591aa6e5 100644 --- a/suave/devenv/blockscout/services/docker-compose-nginx.yml +++ b/suave/devenv/blockscout/services/docker-compose-nginx.yml @@ -4,8 +4,6 @@ services: blockscout-proxy: image: nginx container_name: 'blockscout-proxy' - extra_hosts: - - 'host.docker.internal:host-gateway' volumes: - "../proxy:/etc/nginx/templates" environment: diff --git a/suave/devenv/blockscout/services/docker-compose-stats.yml b/suave/devenv/blockscout/services/docker-compose-stats.yml index 9af27e4f5b..a48a33f340 100644 --- a/suave/devenv/blockscout/services/docker-compose-stats.yml +++ b/suave/devenv/blockscout/services/docker-compose-stats.yml @@ -7,8 +7,6 @@ services: platform: linux/amd64 restart: always container_name: 'blockscout-stats' - extra_hosts: - - 'host.docker.internal:host-gateway' env_file: - ../envs/common-stats.env environment: