POA Forum

BlockScout v3.0.0-beta - `block_hash` indexing approach

This release contains a major change among other changes, namely migration to block_hash indexing approach. What does it mean? It means that in order to fetch internal transactions, token transfers and logs from the blocks’ transactions Blockscout will no longer lean on block number, but it will utilize block hash instead. It is more robust and eliminates possible inconsistencies in the Blockscout DB since block hash is unique whereas several blocks could have the same number on the chains split.

Due to migration to the new block_hash approach, this release also contains DB migrations to add a new column block_hash and block_index to corresponding tables and filling it. Usually, those tables are the biggest in the DB and depending on the capacity of the chain could consist of millions or even hundreds of millions of records. This circumstance could cause a long time execution of migration. Also, before running migration, it is better to switch off the application to decrease the loading on the DB. So, please, notify your users about downtime in the explorer until the migration is finished.

Features

  • #2835, #2871, #2872, #2886, #2925, #2936, #2949, #2940, #2958 - Add “block_hash” to logs, token_transfers and internal transactions and “pending blocks operations” approach
  • #2975 - Refine UX of contracts verification
  • #2926 - API endpoint: sum balances except burnt address
  • #2918 - Add tokenID for tokentx API action explicitly

Fixes

  • #2969 - Fix contract constructor require msg appearance in constructor arguments encoded view
  • #2964 - Fix bug in skipping of constructor arguments in contract verification
  • #2961 - Add a guard that addresses is enum in values function in read contract page
  • #2960 - Add BLOCKSCOUT_HOST to docker setup
  • #2956 - Add support of 0.6.x version of compiler
  • #2955 - Move socket path to env
  • #2938 - utf8 copy tx input tooltip
  • #2934 - RSK release 1.2.0 breaking changes support
  • #2933 - Get rid of deadlock in the query to address_current_token_balance table
  • #2932 - fix duplicate websocket connection
  • #2928 - Speedup pending block ops int txs to fetch query
  • #2924 - Speedup address to logs query
  • #2915 - Speedup of blocks_without_reward_query
  • #2914 - Reduce execution time of stream_unfetched_token_instances query
  • 2910 - Reorganize queries and indexes for internal_transactions table
  • #2908 - Fix performance of address page
  • #2906 - fix address sum cache
  • #2902 - Offset in blocks retrieval for average block time
  • #2900 - check fetched instance metadata in multiple places
  • #2899 - fix empty buffered task
  • #2887 - increase chart loading speed

Chore

  • #2959 - Remove logs from test folder too in the cleaning script
  • #2954 - Upgrade absinthe and ecto deps
  • #2947 - Upgrade Circle CI postgres Docker image
  • #2946 - Fix vulnerable NPM deps
  • #2942 - Actualize Docker setup
  • #2896 - Disable Parity websockets tests
2 Likes