Skip to content

Commit

Permalink
fix(blockscout): update versions; parametrize microservice and db dep… (
Browse files Browse the repository at this point in the history
  • Loading branch information
leopaul36 authored Jan 21, 2025
2 parents dfb7bd2 + f3624b4 commit 9584e66
Show file tree
Hide file tree
Showing 15 changed files with 254 additions and 135 deletions.
87 changes: 76 additions & 11 deletions roles/evm/blockscout/defaults/main.yml
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ blockscout_auto_restart: true
# Configuration directories
blockscout_conf_dir: /etc/blockscout/conf
blockscout_custom_dir: "{{ blockscout_conf_dir }}/custom"
blockscout_assets_dir: "{{ blockscout_custom_dir }}/shared"

# Log directory
blockscout_log_dir: /var/log/blockscout
Expand All @@ -22,7 +23,23 @@ blockscout_user: root
# Blockscout variables
blockscout_rpc: http://10.238.106.22:9650/ext/bc/RfX8YRUHePxFENBZFwaNt1tP6CR6RQ4hJJ5AqYv49LRoSKniK/rpc
blockscout_header_logo_file: ash-logo-circle-30.svg
blockscout_frontend_ip: 10.238.106.149

# Frontend
blockscout_frontend_ip: "10.238.106.149"
blockscout_frontend_protocol: http
blockscout_frontend_websocket_protocol: ws
blockscout_frontend_host_name: "{{ blockscout_frontend_ip }}"
blockscout_frontend_url: "{{ blockscout_frontend_protocol }}://{{ blockscout_frontend_host_name }}"
blockscout_assets_url: "{{ blockscout_frontend_url }}/shared"
blockscout_extra_assets_dir: '' ## eg. A folder containing logo, icon, etc.

# Services
# Stats
blockscout_stats_enabled: "false"

# Marketplace (https://github.com/blockscout/docs/blob/master/setup/env-variables/frontend-common-envs/envs.md#marketplace-app-configuration-properties)
# Required fields: blockscout_marketplace_app_list: [{id: 'app', title: 'The App', logo: 'app-logo.png', shortDescription: 'Awesome app', categories: ['Security', 'Tools'], author: 'Bob', url: 'http://app.com', description: 'This is an awesome app']}]
blockscout_marketplace_app_list: []

# Blockscout env variables
# --> https://docs.blockscout.com/for-developers/information-and-settings/env-variables
Expand All @@ -43,11 +60,15 @@ blockscout_backend_env_vars:
# Port
PORT: 4000

# Indexer
INDEXER_DISABLE_PENDING_TRANSACTIONS_FETCHER: "false" # It uses txpool_content which is some times disabled on nodes
INDEXER_DISABLE_INTERNAL_TRANSACTIONS_FETCHER: "false" # It uses debug_traceTransaction which is some times disabled on nodes

# Logo
LOGO: /app/apps/block_scout_web/assets/static/images/ash-logo-circle-30.svg
LOGO: /app/apps/block_scout_web/assets/static/images/{{ blockscout_header_logo_file | basename }}

# Footer
FOOTER_LOGO: /app/apps/block_scout_web/assets/static/images/ash-logo-circle-30.svg
FOOTER_LOGO: /app/apps/block_scout_web/assets/static/images/{{ blockscout_header_logo_file | basename }}

# Enable SSL encryption for ecto queries
ECTO_USE_SSL: "false"
Expand All @@ -62,35 +83,79 @@ blockscout_backend_env_vars:
TXS_STATS_DAYS_TO_COMPILE_AT_INIT: 10

# Enable Smart-contract verification microservice
MICROSERVICE_SC_VERIFIER_ENABLED: "true"
MICROSERVICE_SC_VERIFIER_ENABLED: "false"
MICROSERVICE_SC_VERIFIER_URL: http://sc-verifier:8050
MICROSERVICE_SC_VERIFIER_TYPE: sc_verifier

# Enable Visualizer services such as SOL2UML
MICROSERVICE_VISUALIZE_SOL2UML_ENABLED: "false"
MICROSERVICE_VISUALIZE_SOL2UML_URL: http://visualizer:8050

# Enable Sig-provider which is used to display decoded transaction data on transaction pages and to determine transaction actions.
MICROSERVICE_SIG_PROVIDER_ENABLED: "false"
MICROSERVICE_SIG_PROVIDER_URL: http://sig-provider:8050

blockscout_frontend_env_variables:
# API conf
NEXT_PUBLIC_API_HOST: "{{ blockscout_frontend_ip }}"
NEXT_PUBLIC_API_PROTOCOL: http
NEXT_PUBLIC_API_HOST: "{{ blockscout_frontend_host_name }}"
NEXT_PUBLIC_API_PROTOCOL: "{{ blockscout_frontend_protocol }}"
NEXT_PUBLIC_API_BASE_PATH: /
# NEXT_PUBLIC_STATS_API_HOST: http://10.238.106.212:8080

# Network
NEXT_PUBLIC_NETWORK_NAME: Ash Subnet
NEXT_PUBLIC_NETWORK_SHORT_NAME: Ash
NEXT_PUBLIC_NETWORK_ID: 66666
NEXT_PUBLIC_NETWORK_RPC_URL: "{{ blockscout_rpc }}"

# Coin
NEXT_PUBLIC_NETWORK_CURRENCY_NAME: AshCoin
NEXT_PUBLIC_NETWORK_CURRENCY_SYMBOL: ASH
NEXT_PUBLIC_NETWORK_CURRENCY_DECIMALS: 18

# App conf
NEXT_PUBLIC_APP_HOST: "{{ blockscout_frontend_ip }}"
NEXT_PUBLIC_APP_PROTOCOL: http
NEXT_PUBLIC_APP_HOST: "{{ blockscout_frontend_host_name }}"
NEXT_PUBLIC_APP_PROTOCOL: "{{ blockscout_frontend_protocol }}"

# Miscellaneous
NEXT_PUBLIC_HOMEPAGE_CHARTS: ['daily_txs']
NEXT_PUBLIC_VISUALIZE_API_HOST: "http://{{ blockscout_frontend_ip }}:8081"
NEXT_PUBLIC_IS_TESTNET: "true"
NEXT_PUBLIC_API_WEBSOCKET_PROTOCOL: ws
NEXT_PUBLIC_API_WEBSOCKET_PROTOCOL: "{{ blockscout_frontend_websocket_protocol }}"
NEXT_PUBLIC_API_SPEC_URL: https://raw.githubusercontent.com/blockscout/blockscout-api-v2-swagger/main/swagger.yaml

# Visualizer
NEXT_PUBLIC_VISUALIZE_API_HOST: "{{ blockscout_frontend_url }}"
NEXT_PUBLIC_VISUALIZE_API_BASE_PATH: /visualizer-service

# Stats
NEXT_PUBLIC_STATS_API_HOST: "{{ blockscout_frontend_url if blockscout_stats_enabled in ['true', true] else None }}"
NEXT_PUBLIC_STATS_API_BASE_PATH: /stats-service

# Other explorers
NEXT_PUBLIC_FEATURED_NETWORKS: "{{ [{'title': 'ASH Layer', 'url': blockscout_frontend_url, 'group': 'Testnets', 'icon': 'https://ash.center/img/ash-logo.svg', 'isActive': true}] | to_json }}"

# Other links
# NEXT_PUBLIC_OTHER_LINKS: [{'url':'http://10.200.14.212/','text':'Mainnet'}]


blockscout_visualizer_env_variables:
VISUALIZER__SERVER__GRPC__ENABLED: "false"

blockscout_sig_provider_env_variables:
SIG_PROVIDER__SERVER__GRPC__ENABLED: "false"

blockscout_sc_verifier_env_variables:
SMART_CONTRACT_VERIFIER__SERVER__GRPC__ENABLED: "false"

blockscout_stats_env_variables:
STATS__DB_URL: "{{ blockscout_backend_env_vars.DATABASE_URL | regex_replace('/\\w+?$', '/stats') }}"
STATS__BLOCKSCOUT_DB_URL: "{{ blockscout_backend_env_vars.DATABASE_URL }}"
STATS__CREATE_DATABASE: "true"
STATS__RUN_MIGRATIONS: "true"
STATS__BLOCKSCOUT_API_URL: "http://backend:4000"
RUST_BACKTRACE: 1
STATS__CHARTS_CONFIG: "config/charts.json"
STATS__LAYOUT_CONFIG: "config/layout.json"
STATS__UPDATE_GROUPS_CONFIG: "config/update_groups.json"
STATS__DISABLE_INTERNAL_TRANSACTIONS: "{{ blockscout_backend_env_vars.INDEXER_DISABLE_INTERNAL_TRANSACTIONS_FETCHER }}"
# Only once, after the first start, the stats service will update the stats for all stats
# STATS__FORCE_UPDATE_ON_START: "true"
42 changes: 0 additions & 42 deletions roles/evm/blockscout/files/proxy/microservices.conf.template

This file was deleted.

2 changes: 1 addition & 1 deletion roles/evm/blockscout/files/services/backend.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ version: '3.9'

services:
backend:
image: blockscout/blockscout:6.1.0
image: blockscout/blockscout:6.10.1
pull_policy: always
restart: always
stop_grace_period: 5m
Expand Down
2 changes: 1 addition & 1 deletion roles/evm/blockscout/files/services/frontend.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ version: '3.9'

services:
frontend:
image: ghcr.io/blockscout/frontend:v1.23.3
image: ghcr.io/blockscout/frontend:v1.37.4
pull_policy: always
platform: linux/amd64
restart: always
Expand Down
2 changes: 0 additions & 2 deletions roles/evm/blockscout/files/services/nginx.yml
Original file line number Diff line number Diff line change
Expand Up @@ -16,5 +16,3 @@ services:
published: 80
- target: 8080
published: 8080
- target: 8081
published: 8081
4 changes: 3 additions & 1 deletion roles/evm/blockscout/files/services/sig-provider.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,10 @@ version: '3.9'

services:
sig-provider:
image: ghcr.io/blockscout/sig-provider:v1.0.0
image: ghcr.io/blockscout/sig-provider:v1.1.1
pull_policy: always
platform: linux/amd64
restart: always
container_name: 'sig-provider'
env_file:
- /etc/blockscout/conf/vars-sig-provider.env
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ version: '3.9'

services:
smart-contract-verifier:
image: ghcr.io/blockscout/smart-contract-verifier:v1.6.1
image: ghcr.io/blockscout/smart-contract-verifier:v1.9.2
pull_policy: always
platform: linux/amd64
restart: always
Expand Down
12 changes: 12 additions & 0 deletions roles/evm/blockscout/files/services/stats.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
version: '3.9'

services:
stats:
image: ghcr.io/blockscout/stats:v2.3.0
build: .
pull_policy: always
platform: linux/amd64
restart: always
container_name: 'stats'
env_file:
- /etc/blockscout/conf/vars-stats.env
2 changes: 1 addition & 1 deletion roles/evm/blockscout/files/services/visualizer.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ version: '3.9'

services:
visualizer:
image: ghcr.io/blockscout/visualizer:v0.2.0
image: ghcr.io/blockscout/visualizer:v0.2.1
pull_policy: always
platform: linux/amd64
restart: always
Expand Down
83 changes: 78 additions & 5 deletions roles/evm/blockscout/tasks/config-blockscout.yml
Original file line number Diff line number Diff line change
@@ -1,6 +1,14 @@
# SPDX-License-Identifier: BSD-3-Clause
# Copyright (c) 2022-2024, E36 Knots
---
- name: Create Marketplace config
set_fact:
blockscout_frontend_env_variables:
NEXT_PUBLIC_MARKETPLACE_ENABLED: 'true'
NEXT_PUBLIC_MARKETPLACE_CONFIG_URL: "{{ blockscout_assets_url }}/marketplace-config.json"
NEXT_PUBLIC_MARKETPLACE_SUBMIT_FORM: https://forms.gle/S7LK7M6QiNeFnGUN8
when: blockscout_marketplace_app_list | length > 0

- name: Create Blockscout directories
file:
path: "{{ item }}"
Expand All @@ -12,6 +20,8 @@
- "{{ blockscout_custom_dir }}"
- "{{ blockscout_log_dir }}"
- "{{ blockscout_data_dir }}"
- "{{ blockscout_assets_dir }}"
tags: assets-sync

- name: Template docker-compose.yml
template:
Expand All @@ -29,10 +39,18 @@
group: "{{ blockscout_user }}"
notify: Restart blockscout

- name: Upload proxy
copy:
src: "proxy"
dest: "{{ blockscout_custom_dir }}"
- name: Ensure proxy directory exists
file:
path: "{{ blockscout_custom_dir }}/proxy"
state: directory
owner: "{{ blockscout_user }}"
group: "{{ blockscout_user }}"
mode: '0755'

- name: Template proxy default.conf.template
template:
src: default.conf.template.j2
dest: "{{ blockscout_custom_dir }}/proxy/default.conf.template"
owner: "{{ blockscout_user }}"
group: "{{ blockscout_user }}"
notify: Restart blockscout
Expand All @@ -59,6 +77,7 @@
dest: "{{ blockscout_conf_dir }}/vars-visualizer.env"
owner: "{{ blockscout_user }}"
group: "{{ blockscout_user }}"
when: blockscout_backend_env_vars.MICROSERVICE_VISUALIZE_SOL2UML_ENABLED in ['true', true]
notify: Restart blockscout

- name: Template vars-smart-contract-verifier.env
Expand All @@ -67,6 +86,25 @@
dest: "{{ blockscout_conf_dir }}/vars-smart-contract-verifier.env"
owner: "{{ blockscout_user }}"
group: "{{ blockscout_user }}"
when: blockscout_backend_env_vars.MICROSERVICE_SC_VERIFIER_ENABLED in ['true', true]
notify: Restart blockscout

- name: Template vars-sig-provider.env
template:
src: vars-sig-provider.env.j2
dest: "{{ blockscout_conf_dir }}/vars-sig-provider.env"
owner: "{{ blockscout_user }}"
group: "{{ blockscout_user }}"
when: blockscout_backend_env_vars.MICROSERVICE_SIG_PROVIDER_ENABLED in ['true', true]
notify: Restart blockscout

- name: Template vars-stats.env
template:
src: vars-stats.env.j2
dest: "{{ blockscout_conf_dir }}/vars-stats.env"
owner: "{{ blockscout_user }}"
group: "{{ blockscout_user }}"
when: blockscout_stats_enabled in ['true', true]
notify: Restart blockscout

- name: Ensure images directory exists
Expand All @@ -80,7 +118,7 @@
- name: Upload logo image
copy:
src: "{{ blockscout_header_logo_file }}"
dest: "{{ blockscout_custom_dir }}/images/{{ blockscout_header_logo_file }}"
dest: "{{ blockscout_custom_dir }}/images/{{ blockscout_header_logo_file | basename }}"
owner: "{{ blockscout_user }}"
group: "{{ blockscout_user }}"
notify: Restart blockscout
Expand All @@ -91,6 +129,41 @@
dest: /etc/systemd/system/blockscout.service
notify: Restart blockscout

- name: Create marketplace-config.json asset
copy:
content: "{{ blockscout_marketplace_app_list }}"
dest: "{{ blockscout_assets_dir }}/marketplace-config.json"
owner: "{{ blockscout_user }}"
group: "{{ blockscout_user }}"
mode: '0755'
when: blockscout_marketplace_app_list | length > 0
notify: Restart blockscout
tags: marketplace-sync

- name: Convert NEXT_PUBLIC_FEATURED_NETWORKS to json formatting
set_fact:
blockscout_frontend_env_variables:
NEXT_PUBLIC_FEATURED_NETWORKS: "{{ blockscout_frontend_env_variables.NEXT_PUBLIC_FEATURED_NETWORKS | to_json }}"
when: "'NEXT_PUBLIC_FEATURED_NETWORKS' in blockscout_frontend_env_variables"

- name: Convert NEXT_PUBLIC_FOOTER_LINKS to json formatting
set_fact:
blockscout_frontend_env_variables:
NEXT_PUBLIC_FOOTER_LINKS: "{{ blockscout_frontend_env_variables.NEXT_PUBLIC_FOOTER_LINKS | to_json }}"
when: "'NEXT_PUBLIC_FOOTER_LINKS' in blockscout_frontend_env_variables"

- name: Copy assets to expose it through NGINX '/shared' api path
copy:
src: "{{ blockscout_extra_assets_dir if blockscout_extra_assets_dir.endswith('/') else blockscout_extra_assets_dir + '/' }}"
dest: "{{ blockscout_assets_dir }}"
owner: "{{ blockscout_user }}"
group: "{{ blockscout_user }}"
when: blockscout_extra_assets_dir | length > 0
notify: Restart blockscout
tags: assets-sync

- name: Reload systemctl daemons
systemd:
daemon_reload: true


Loading

0 comments on commit 9584e66

Please sign in to comment.