From 72505becd93dd883b9ed420765a69effe26766d4 Mon Sep 17 00:00:00 2001 From: 0xatomFusion <179967211+0xatomFusion@users.noreply.github.com> Date: Sun, 18 May 2025 16:19:01 +0100 Subject: [PATCH 1/2] test: setup --- docker-compose/envs/common-blockscout.env | 39 +++++---- docker-compose/envs/common-frontend.env | 17 +++- .../envs/common-smart-contract-verifier.env | 17 +++- docker-compose/via.yml | 81 +++++++++++++++++++ 4 files changed, 129 insertions(+), 25 deletions(-) create mode 100644 docker-compose/via.yml diff --git a/docker-compose/envs/common-blockscout.env b/docker-compose/envs/common-blockscout.env index 410c0f915c1b..9c92acb8de78 100644 --- a/docker-compose/envs/common-blockscout.env +++ b/docker-compose/envs/common-blockscout.env @@ -1,6 +1,6 @@ ETHEREUM_JSONRPC_VARIANT=geth -ETHEREUM_JSONRPC_HTTP_URL=http://host.docker.internal:8545/ -DATABASE_URL=postgresql://blockscout:ceWb1MeLBEeOIfk65gU8EjF8@db:5432/blockscout +# ETHEREUM_JSONRPC_HTTP_URL=http://host.docker.internal:3050/ +DATABASE_URL=postgresql://blockscout:ceWb1MeLBEeOIfk65gU8EjF8@db:7432/blockscout # DATABASE_EVENT_URL= # DATABASE_QUEUE_TARGET @@ -9,12 +9,11 @@ DATABASE_URL=postgresql://blockscout:ceWb1MeLBEeOIfk65gU8EjF8@db:5432/blockscout 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_TRACE_URL=http://host.docker.internal:3050/ # ETHEREUM_JSONRPC_FALLBACK_TRACE_URL= # ETHEREUM_JSONRPC_ETH_CALL_URL= # ETHEREUM_JSONRPC_FALLBACK_ETH_CALL_URL= -# ETHEREUM_JSONRPC_WS_URL= +# ETHEREUM_JSONRPC_WS_URL=ws://host.docker.internal:3051/ # ETHEREUM_JSONRPC_FALLBACK_WS_URL= # ETHEREUM_JSONRPC_WS_RETRY_INTERVAL= # ETHEREUM_JSONRPC_ARCHIVE_BALANCES_WINDOW=200 @@ -31,9 +30,9 @@ ETHEREUM_JSONRPC_TRACE_URL=http://host.docker.internal:8545/ # ETHEREUM_JSONRPC_FALLBACK_TRACE_URLS= # ETHEREUM_JSONRPC_ETH_CALL_URLS= # ETHEREUM_JSONRPC_FALLBACK_ETH_CALL_URLS= -# CHAIN_TYPE= +CHAIN_TYPE=via # IPC_PATH= -# BLOCKSCOUT_HOST= +BLOCKSCOUT_HOST=localhost # BLOCKSCOUT_PROTOCOL= SECRET_KEY_BASE=56NtB48ear7+wMSf0IQuWDAAazhpb31qyc7GiyspBP2vh7t5zlCsF5QDv76chXeN # CHECK_ORIGIN= @@ -173,12 +172,12 @@ API_V1_WRITE_METHODS_DISABLED=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_PENDING_TRANSACTIONS_FETCHER=true +INDEXER_DISABLE_INTERNAL_TRANSACTIONS_FETCHER=true +INDEXER_DISABLE_CATALOGED_TOKEN_UPDATER_FETCHER=true +INDEXER_DISABLE_BLOCK_REWARD_FETCHER=true # INDEXER_DISABLE_EMPTY_BLOCKS_SANITIZER= -# INDEXER_DISABLE_WITHDRAWALS_FETCHER= +INDEXER_DISABLE_WITHDRAWALS_FETCHER=true # INDEXER_DISABLE_REPLACED_TRANSACTION_FETCHER= # INDEXER_CATCHUP_BLOCKS_BATCH_SIZE= # INDEXER_CATCHUP_BLOCKS_CONCURRENCY= @@ -248,6 +247,12 @@ API_V1_WRITE_METHODS_DISABLED=false # INDEXER_ZKSYNC_NEW_BATCHES_RECHECK_INTERVAL= # INDEXER_ZKSYNC_L1_RPC= # INDEXER_ZKSYNC_BATCHES_STATUS_RECHECK_INTERVAL= +# INDEXER_VIA_BATCHES_ENABLED=true +# INDEXER_VIA_BATCHES_CHUNK_SIZE=1 +# INDEXER_VIA_NEW_BATCHES_MAX_RANGE=1 +# INDEXER_VIA_NEW_BATCHES_RECHECK_INTERVAL=10000 +# INDEXER_VIA_L1_RPC= +# INDEXER_VIA_BATCHES_STATUS_RECHECK_INTERVAL= # INDEXER_ARBITRUM_ARBSYS_CONTRACT= # INDEXER_ARBITRUM_NODE_INTERFACE_CONTRACT= # INDEXER_ARBITRUM_L1_RPC= @@ -375,7 +380,7 @@ COIN_BALANCE_HISTORY_DAYS=90 # ADDRESSES_BLACKLIST_UPDATE_INTERVAL= # ADDRESSES_BLACKLIST_RETRY_INTERVAL= # ADDRESSES_BLACKLIST_PROVIDER= -# CHAIN_ID= +CHAIN_ID=25223 # HIDE_SCAM_ADDRESSES= # RE_CAPTCHA_SECRET_KEY= # RE_CAPTCHA_V3_SECRET_KEY= @@ -388,10 +393,10 @@ RE_CAPTCHA_DISABLED=false # 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_TYPE=eth_bytecode_db +MICROSERVICE_SC_VERIFIER_ENABLED=true +MICROSERVICE_SC_VERIFIER_URL=http://sc-verifier:8050/ +MICROSERVICE_SC_VERIFIER_TYPE=sc_verifier +# MICROSERVICE_SC_VERIFIER_TYPE=eth_bytecode_db # MICROSERVICE_ETH_BYTECODE_DB_INTERVAL_BETWEEN_LOOKUPS=10m # MICROSERVICE_ETH_BYTECODE_DB_MAX_LOOKUPS_CONCURRENCY=10 MICROSERVICE_VISUALIZE_SOL2UML_ENABLED=true diff --git a/docker-compose/envs/common-frontend.env b/docker-compose/envs/common-frontend.env index 4b070ea45f3c..8380e298a920 100644 --- a/docker-compose/envs/common-frontend.env +++ b/docker-compose/envs/common-frontend.env @@ -1,11 +1,11 @@ NEXT_PUBLIC_API_HOST=localhost NEXT_PUBLIC_API_PROTOCOL=http NEXT_PUBLIC_STATS_API_HOST=http://localhost:8080 -NEXT_PUBLIC_NETWORK_NAME=Awesome chain -NEXT_PUBLIC_NETWORK_SHORT_NAME=Awesome chain +NEXT_PUBLIC_NETWORK_NAME=Via Network +NEXT_PUBLIC_NETWORK_SHORT_NAME=Via NEXT_PUBLIC_NETWORK_ID=5 -NEXT_PUBLIC_NETWORK_CURRENCY_NAME=Ether -NEXT_PUBLIC_NETWORK_CURRENCY_SYMBOL=ETH +NEXT_PUBLIC_NETWORK_CURRENCY_NAME=Bitcoin +NEXT_PUBLIC_NETWORK_CURRENCY_SYMBOL=BTC NEXT_PUBLIC_NETWORK_CURRENCY_DECIMALS=18 NEXT_PUBLIC_API_BASE_PATH=/ NEXT_PUBLIC_APP_HOST=localhost @@ -17,3 +17,12 @@ NEXT_PUBLIC_API_WEBSOCKET_PROTOCOL=ws 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= + +# NEXT_PUBLIC_NETWORK_LOGO= +# NEXT_PUBLIC_NETWORK_LOGO_DARK= +# NEXT_PUBLIC_NETWORK_ICON= +# NEXT_PUBLIC_NETWORK_ICON_DARK= +# NEXT_PUBLIC_NAVIGATION_HIGHLIGHTED_ROUTES +# NEXT_PUBLIC_NETWORK_VERIFICATION_TYPE=sequencing +NEXT_PUBLIC_ROLLUP_TYPE=via +NEXT_PUBLIC_ROLLUP_L1_BASE_URL=https://mempool.space/testnet \ No newline at end of file diff --git a/docker-compose/envs/common-smart-contract-verifier.env b/docker-compose/envs/common-smart-contract-verifier.env index 5fdf805ec670..c1f85bd0d7a9 100644 --- a/docker-compose/envs/common-smart-contract-verifier.env +++ b/docker-compose/envs/common-smart-contract-verifier.env @@ -9,16 +9,16 @@ SMART_CONTRACT_VERIFIER__SERVER__HTTP__MAX_BODY_SIZE=2097152 SMART_CONTRACT_VERIFIER__SERVER__GRPC__ENABLED=false SMART_CONTRACT_VERIFIER__SERVER__GRPC__ADDR=0.0.0.0:8051 -SMART_CONTRACT_VERIFIER__SOLIDITY__ENABLED=true +SMART_CONTRACT_VERIFIER__SOLIDITY__ENABLED=false SMART_CONTRACT_VERIFIER__SOLIDITY__COMPILERS_DIR=/tmp/solidity-compilers SMART_CONTRACT_VERIFIER__SOLIDITY__REFRESH_VERSIONS_SCHEDULE=0 0 * * * * * # It depends on the OS you are running the service on -SMART_CONTRACT_VERIFIER__SOLIDITY__FETCHER__LIST__LIST_URL=https://solc-bin.ethereum.org/linux-amd64/list.json +SMART_CONTRACT_VERIFIER__SOLIDITY__FETCHER__LIST__LIST_URL=https://raw.githubusercontent.com/blockscout/solc-bin/refs/heads/main/era-solidity.linux-amd64.list.json #SMART_CONTRACT_VERIFIER__SOLIDITY__FETCHER__LIST__LIST_URL=https://solc-bin.ethereum.org/macosx-amd64/list.json #SMART_CONTRACT_VERIFIER__SOLIDITY__FETCHER__LIST__LIST_URL=https://solc-bin.ethereum.org/windows-amd64/list.json -SMART_CONTRACT_VERIFIER__VYPER__ENABLED=true +SMART_CONTRACT_VERIFIER__VYPER__ENABLED=false SMART_CONTRACT_VERIFIER__VYPER__COMPILERS_DIR=/tmp/vyper-compilers SMART_CONTRACT_VERIFIER__VYPER__REFRESH_VERSIONS_SCHEDULE=0 0 * * * * * @@ -26,7 +26,7 @@ SMART_CONTRACT_VERIFIER__VYPER__REFRESH_VERSIONS_SCHEDULE=0 0 * * * * * SMART_CONTRACT_VERIFIER__VYPER__FETCHER__LIST__LIST_URL=https://raw.githubusercontent.com/blockscout/solc-bin/main/vyper.list.json #SMART_CONTRACT_VERIFIER__VYPER__FETCHER__LIST__LIST_URL=https://raw.githubusercontent.com/blockscout/solc-bin/main/vyper.macos.list.json -SMART_CONTRACT_VERIFIER__SOURCIFY__ENABLED=true +SMART_CONTRACT_VERIFIER__SOURCIFY__ENABLED=false SMART_CONTRACT_VERIFIER__SOURCIFY__API_URL=https://sourcify.dev/server/ SMART_CONTRACT_VERIFIER__SOURCIFY__VERIFICATION_ATTEMPTS=3 SMART_CONTRACT_VERIFIER__SOURCIFY__REQUEST_TIMEOUT=10 @@ -37,3 +37,12 @@ SMART_CONTRACT_VERIFIER__METRICS__ROUTE=/metrics SMART_CONTRACT_VERIFIER__JAEGER__ENABLED=false SMART_CONTRACT_VERIFIER__JAEGER__AGENT_ENDPOINT=localhost:6831 + +SMART_CONTRACT_VERIFIER__ZKSYNC_SOLIDITY__ENABLED=true +SMART_CONTRACT_VERIFIER__ZKSYNC_SOLIDITY__EVM_COMPILERS_DIR=/tmp/zksync-evm-compilers +SMART_CONTRACT_VERIFIER__ZKSYNC_SOLIDITY__EVM_REFRESH_VERSIONS_SCHEDULE=0 * * * * * +SMART_CONTRACT_VERIFIER__ZKSYNC_SOLIDITY__EVM_FETCHER__LIST__LIST_URL=https://solc-bin.ethereum.org/linux-amd64/list.json +SMART_CONTRACT_VERIFIER__ZKSYNC_SOLIDITY__ERA_EVM_FETCHER__LIST__LIST_URL=https://raw.githubusercontent.com/blockscout/solc-bin/main/era-solidity.linux-amd64.list.json +SMART_CONTRACT_VERIFIER__ZKSYNC_SOLIDITY__ZK_COMPILERS_DIR=/tmp/zksync-zk-compilers +SMART_CONTRACT_VERIFIER__ZKSYNC_SOLIDITY__ZK_REFRESH_VERSIONS_SCHEDULE=0 * * * * * +SMART_CONTRACT_VERIFIER__ZKSYNC_SOLIDITY__ZK_FETCHER__LIST__LIST_URL=https://raw.githubusercontent.com/blockscout/solc-bin/main/zksolc.linux-amd64.list.json \ No newline at end of file diff --git a/docker-compose/via.yml b/docker-compose/via.yml new file mode 100644 index 000000000000..cc333330f901 --- /dev/null +++ b/docker-compose/via.yml @@ -0,0 +1,81 @@ +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 + build: + context: .. + dockerfile: ./docker/Dockerfile + args: + API_V1_READ_METHODS_DISABLED: "false" + DISABLE_WEBAPP: "false" + API_V1_WRITE_METHODS_DISABLED: "false" + ADMIN_PANEL_ENABLED: "" + RELEASE_VERSION: 8.0.2 + CHAIN_TYPE: via + links: + - db:database + environment: + ETHEREUM_JSONRPC_HTTP_URL: https://via.testnet.viablockchain.dev + ETHEREUM_JSONRPC_TRACE_URL: https://via.testnet.viablockchain.dev + DATABASE_URL: postgresql://blockscout:ceWb1MeLBEeOIfk65gU8EjF8@db:5432/blockscout + INDEXER_DISABLE_UNCLES_FETCHER: true + INDEXER_CATCHUP_BLOCKS_BATCH_SIZE: 10 + INDEXER_CATCHUP_BLOCKS_CONCURRENCY: 1 + INDEXER_BLOCK_INTERVAL: 5s + INDEXER_BLOCKS_CONCURRENCY: 1 + INDEXER_EMPTY_BLOCKS_SANITIZER_BATCH_SIZE: 10 + INDEXER_EMPTY_BLOCKS_SANITIZER_INTERVAL: 120s + INDEXER_VIA_BATCHES_ENABLED: true + INDEXER_DEBUG_LOG: true + + frontend: + depends_on: + - backend + image: via:latest + restart: always + container_name: 'frontend' + env_file: + - ./envs/common-frontend.env + environment: + NEXT_PUBLIC_STATS_API_HOST: + + proxy: + depends_on: + - backend + - frontend + extends: + file: ./services/nginx-explorer.yml + service: proxy + volumes: + - "./proxy/explorer.conf.template:/etc/nginx/templates/default.conf.template" + + sc-verifier: + extends: + file: ./services/smart-contract-verifier.yml + service: smart-contract-verifier + ports: + - 8082:8050 \ No newline at end of file From cbc86842a4521f782d9f7fceba6432db9d14e822 Mon Sep 17 00:00:00 2001 From: 0xatomFusion <179967211+0xatomFusion@users.noreply.github.com> Date: Thu, 29 May 2025 08:34:58 +0100 Subject: [PATCH 2/2] chore: update ui env --- docker-compose/envs/common-frontend.env | 21 +++++++++++---------- 1 file changed, 11 insertions(+), 10 deletions(-) diff --git a/docker-compose/envs/common-frontend.env b/docker-compose/envs/common-frontend.env index 8380e298a920..6f0f5c23c574 100644 --- a/docker-compose/envs/common-frontend.env +++ b/docker-compose/envs/common-frontend.env @@ -1,28 +1,29 @@ NEXT_PUBLIC_API_HOST=localhost NEXT_PUBLIC_API_PROTOCOL=http NEXT_PUBLIC_STATS_API_HOST=http://localhost:8080 -NEXT_PUBLIC_NETWORK_NAME=Via Network -NEXT_PUBLIC_NETWORK_SHORT_NAME=Via -NEXT_PUBLIC_NETWORK_ID=5 +NEXT_PUBLIC_NETWORK_NAME=VIA Alpha Testnet +NEXT_PUBLIC_NETWORK_SHORT_NAME=VIA +NEXT_PUBLIC_NETWORK_ID=25223 NEXT_PUBLIC_NETWORK_CURRENCY_NAME=Bitcoin NEXT_PUBLIC_NETWORK_CURRENCY_SYMBOL=BTC 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_HOMEPAGE_CHARTS=[] NEXT_PUBLIC_VISUALIZE_API_HOST=http://localhost:8081 +NEXT_PUBLIC_NETWORK_CURRENCY_WEI_NAME=satoshi NEXT_PUBLIC_IS_TESTNET=true NEXT_PUBLIC_API_WEBSOCKET_PROTOCOL=ws +NEXT_PUBLIC_GAS_TRACKER_UNITS=['usd'] 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= - -# NEXT_PUBLIC_NETWORK_LOGO= -# NEXT_PUBLIC_NETWORK_LOGO_DARK= -# NEXT_PUBLIC_NETWORK_ICON= -# NEXT_PUBLIC_NETWORK_ICON_DARK= +NEXT_PUBLIC_NETWORK_ICON=https://raw.githubusercontent.com/blockscout/frontend-configs/refs/heads/main/configs/network-logos/via-light.svg +NEXT_PUBLIC_NETWORK_ICON_DARK=https://raw.githubusercontent.com/blockscout/frontend-configs/refs/heads/main/configs/network-logos/via-dark.svg +NEXT_PUBLIC_NETWORK_LOGO=https://raw.githubusercontent.com/blockscout/frontend-configs/refs/heads/main/configs/network-logos/via-light.svg +NEXT_PUBLIC_NETWORK_LOGO_DARK=https://raw.githubusercontent.com/blockscout/frontend-configs/refs/heads/main/configs/network-logos/via-dark.svg # NEXT_PUBLIC_NAVIGATION_HIGHLIGHTED_ROUTES -# NEXT_PUBLIC_NETWORK_VERIFICATION_TYPE=sequencing +# NEXT_PUBLIC_NETWORK_VERIFICATION_TYPE=validation NEXT_PUBLIC_ROLLUP_TYPE=via NEXT_PUBLIC_ROLLUP_L1_BASE_URL=https://mempool.space/testnet \ No newline at end of file