github blockscout/blockscout v6.0.0-beta
BlockScout v6.0.0-beta

latest releases: v10.2.6, v10.2.5, v10.2.4...
2 years ago

This release contains bulk DB migrations for the sake of improvement of Blockscout DB schema such as:

  • Denormalization of table transactions: adding block_consensus, block_timestamp. This allows eliminating join with blocks table almost in all API v1/v2 endpoints which return entities list or address's entities list.
  • Finalization of denormalizing of tables address_current_token_balances and address_token_balances: filling empty token_types to be able to eliminate join with tokens table in some requests where token transfers take place.
  • Changing of topics (4 fields) column types of event logs from string to bytea. This should make logs table lighter up to 21%.
  • Improvement of index to speed up query for getting token IDs of the token. This should improve the response time of token's inventory tab API.
  • Adding mirror indexes in ascending direction to improve the speed of API requests with ascending order included.
  • Removal of unused indexes to release DB storage.
  • Drop type column in event logs since it is not used.
  • Adding index for blocks refetch_needed column to improve init query performance for BlocksTransactionsMismatch fetcher.

⚠️ To mitigate the risk of data corruption due to migration please make sure, that you make a copy of the previous DB before running these DB migrations.
ℹ️ The release contains foreground and background migrations. Foreground migrations run before the application has been started. At this time downtime is expected. Background migrations run after the applications is started. Background migrations are for backfilling the existing data to fit new DB schema. Background migrations can be running on the live instance of Blockscout: if background migrations are not finished yet, the application is usable - it automatically will use new queries, if the migration is finished, and use old queries with joins while background migration is in progress.
⚠️ Please take in mind that foreground DB migrations are heavy enough and downtime of the explorer is expected. Depending on the size of the foreground DB migrations may take up to 24 hours. For instance, migrations lasted ~6 hours on ETH Sepolia DB. We recommend running a separate Blockscout instance of 6.0.0 version on the replica of the DB and switching to it when all migrations have been finished.
ℹ️ Please be aware, that denormalization of the archive data in the affected tables will continue in the background mode even when the application will be up & running after running the set of DB migrations. The background DB migrations can last several days. You can check the migration status from the DB with the query SELECT * FROM migrations_status;. Once the migration has been finished, the response should be like this:

 migration_name  |  status   |        inserted_at         |         updated_at
-----------------+-----------+----------------------------+----------------------------
 denormalization | completed | 2023-12-17 05:00:28.36332  | 2023-12-26 07:27:20.669697
 ctb_token_type  | completed | 2024-01-04 18:32:46.301728 | 2024-01-04 18:40:09.112862
 tb_token_type   | completed | 2024-01-04 18:32:46.41895  | 2024-01-04 18:40:26.470253

New environment variables

Variable Required Description Default
ETHEREUM_JSONRPC_ETH_CALL_URL JSON RPC url for eth_call method. Implemented in #9112 (empty)
GAS_PRICE_ORACLE_SIMPLE_TRANSACTION_GAS Gas price oracle: amount of gas for a simple coin transfer. Introduced in #9044. 21000

Features

  • #9112 - Add specific url for eth_call
  • #9044 - Expand gas price oracle functionality

Fixes

  • #9113 - Fix migrators cache updating
  • #9101 - Fix migration_finished? logic
  • #9062 - Fix blockscout-ens integration
  • #9061 - Arbitrum allow tx receipt gasUsedForL1 field
  • #8812 - Update existing tokens type if got transfer with higher type priority

Chore

  • #9055 - Add ASC indices for logs, token transfers, transactions
  • #9038 - Token type filling migrations
  • #9009 - Index for block refetch_needed
  • #9007 - Drop logs type index
  • #9006 - Drop unused indexes on address_current_token_balances table
  • #9005 - Drop unused token_id column from token_transfers table and indexes based on this column
  • #9000 - Change log topic type in the DB to bytea
  • #8996 - Refine token transfers token ids index
  • #5322 - DB denormalization: block consensus and timestamp in transaction table
Dependencies version bumps
  • #9059 - Bump redux from 5.0.0 to 5.0.1 in /apps/block_scout_web/assets
  • #9057 - Bump benchee from 1.2.0 to 1.3.0
  • #9060 - Bump @amplitude/analytics-browser from 2.3.7 to 2.3.8 in /apps/block_scout_web/assets
  • #9084 - Bump @babel/preset-env from 7.23.6 to 7.23.7 in /apps/block_scout_web/assets
  • #9083 - Bump @babel/core from 7.23.6 to 7.23.7 in /apps/block_scout_web/assets
  • #9086 - Bump core-js from 3.34.0 to 3.35.0 in /apps/block_scout_web/assets
  • #9081 - Bump sweetalert2 from 11.10.1 to 11.10.2 in /apps/block_scout_web/assets
  • #9085 - Bump moment from 2.29.4 to 2.30.1 in /apps/block_scout_web/assets
  • #9087 - Bump postcss-loader from 7.3.3 to 7.3.4 in /apps/block_scout_web/assets
  • #9082 - Bump sass-loader from 13.3.2 to 13.3.3 in /apps/block_scout_web/assets
  • #9088 - Bump sass from 1.69.5 to 1.69.6 in /apps/block_scout_web/assets

What's Changed

Full Changelog: v5.4.0-beta...v6.0.0-beta

Don't miss a new blockscout release

NewReleases is sending notifications on new releases.