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

latest releases: v6.5.0-beta, v6.4.0-beta
2 months ago

This is the list of key fatures introduced in the release:

  • Optimism and Zksync are supported in the master branch now via CHAIN_TYPE compile-time environment variable with the values optimism/zksync respectively.

  • Block import is improved to fetch massive blocks in a separate queue which allows to main queue to be processed faster.

  • The logic of JSON RPC endpoint availability observer is improved: errors came from users actions are excluded.

  • Internal transactions fetcher logic is imroved to process more relevant blocks first.

  • Basic ERC-404 token type support is added

  • API for user operations AI interpretator service is added.

  • Several fixes for blobs support in UI are made.

  • Ethereum JSON RPC API is extended with new endpoints.

  • Stability validators list API is added.

⚙️ the release contains several foreground migrations:

  • new indexes on pending_block_operations, token_transfers and smart_contracts tables.
  • new table massive_blocks.
  • extending market_history table with new column secondary_coin and transform single-column index by date to multi-column including secondary_coin column.

ℹ️ indexes on potentially huge tables are built with concurrently option. So, the foreground migrations shouldn't affect working indexer. Thus, no notable downtime is expected - update can be prepared on the live DB.

💡New environment variables
Variable Required Description Default
ETHEREUM_JSONRPC_FALLBACK_ETH_CALL_URL Fallback JSON RPC eth_call url. Implemented in #9511 (empty)
TOKEN_TRANSFER_TOKEN_TYPE_MIGRATION_BATCH_SIZE Number of token transfers to denormalize (add token_type) in the batch. 100
TOKEN_TRANSFER_TOKEN_TYPE_MIGRATION_CONCURRENCY Number of parallel denormalization token transfer batches processing. 1
SANITIZE_INCORRECT_NFT_BATCH_SIZE Number of token transfers to sanitize in the batch. 100
SANITIZE_INCORRECT_NFT_CONCURRENCY Number of parallel sanitizing token transfer batches processing. 1
EXCHANGE_RATES_COINGECKO_SECONDARY_COIN_ID Explicitly set CoinGecko coin ID for secondary coin market chart. Implemented in #9483. (empty)
EXCHANGE_RATES_COINMARKETCAP_SECONDARY_COIN_ID CoinMarketCap coin id for secondary coin market chart. Implemented in #9483. (empty)
EXCHANGE_RATES_CRYPTOCOMPARE_SECONDARY_COIN_SYMBOL CryptoCompare coin symbol for secondary coin market chart. Implemented in #9483. (empty)
CACHE_TRANSACTIONS_24H_STATS_PERIOD Interval to update data for the last 24 hours transactions stats. Time format. Introduced in #9483. 1h
CACHE_FRESH_PENDING_TRANSACTIONS_COUNTER_PERIOD Interval to update count of pending transactions that appeared less than half an hour ago. Time format. Introduced in #9483. 5m
CACHE_OPTIMISM_LAST_OUTPUT_ROOT_SIZE_COUNTER_PERIOD Interval to update data for the last output root size counter. Time format. Introduced in #9532. 5m
GAS_PRICE_ORACLE_SAFELOW_TIME_COEFFICIENT Average block time multiplied by this coefficent for safelow gas price when time from pending transactions is not available. Floats may be used. Introduced in #9582. 5
GAS_PRICE_ORACLE_AVERAGE_TIME_COEFFICIENT Average block time multiplied by this coefficent for average gas price when time from pending transactions is not available. Floats may be used. Introduced in #9582. 3
GAS_PRICE_ORACLE_FAST_TIME_COEFFICIENT Average block time multiplied by this coefficent for fast gas price when time from pending transactions is not available. Floats may be used. Introduced in #9582. 1
ETH_JSON_RPC_MAX_BATCH_SIZE Max batch size for Eth JSON RPC requests. Implemented in #9409 5

Optimism Rollup Management

Please note that these Optimism-related variables are only supported together with setting CHAIN_TYPE=optimism.

Variable Required Description Default
INDEXER_OPTIMISM_L1_RPC The RPC endpoint for L1 used to fetch transaction batches, output roots, deposits, or withdrawal events. Implemented in #6980. (empty)
INDEXER_OPTIMISM_L1_PORTAL_CONTRACT The address of OptimismPortal contract on L1 used to fetch deposits and withdrawal events. Required for deposits and withdrawal events indexing. Implemented in #6980. (empty)
INDEXER_OPTIMISM_L1_BATCH_START_BLOCK The number of start block on L1 to index transaction batches. If the table of batches is not empty, the process will continue indexing from the last indexed batch. Implemented in #6980. (empty)
INDEXER_OPTIMISM_L1_BATCH_INBOX The inbox address to index transaction batches on L1. Required if INDEXER_OPTIMISM_L1_BATCH_START_BLOCK is not empty. Implemented in #6980. (empty)
INDEXER_OPTIMISM_L1_BATCH_SUBMITTER The batch submitter address to index transaction batches on L1. Required if INDEXER_OPTIMISM_L1_BATCH_START_BLOCK is not empty. Implemented in #6980. (empty)
INDEXER_OPTIMISM_L1_BATCH_BLOCKSCOUT_BLOBS_API_URL Defines a URL to Blockscout Blobs API to retrieve L1 blobs from that. Example for Sepolia: https://eth-sepolia.blockscout.com/api/v2/blobs. Required if INDEXER_OPTIMISM_L1_BATCH_START_BLOCK is not empty. Implemented in #9571. (empty)
INDEXER_OPTIMISM_L1_BATCH_BLOCKS_CHUNK_SIZE Blocks chunk size to send batch RPC requests. Implemented in #6980. 4
INDEXER_OPTIMISM_L2_BATCH_GENESIS_BLOCK_NUMBER L2 genesis block number for Optimism chain. Required if INDEXER_OPTIMISM_L1_BATCH_START_BLOCK is defined. The block number can be found at superchain registry. Example. Implemented in #9260. (empty)
INDEXER_OPTIMISM_L1_OUTPUT_ROOTS_START_BLOCK The number of start block on L1 to index output roots. If the table of output roots is not empty, the process will continue indexing from the last indexed root. Implemented in #6980. (empty)
INDEXER_OPTIMISM_L1_OUTPUT_ORACLE_CONTRACT The address of OutputOracle contract on L1 used to fetch output roots. Required for output roots indexing when INDEXER_OPTIMISM_L1_OUTPUT_ROOTS_START_BLOCK is not empty. Implemented in #6980. (empty)
INDEXER_OPTIMISM_L1_DEPOSITS_START_BLOCK The number of the L1 block from which deposits will be fetched. Implemented in #6993. (empty)
INDEXER_OPTIMISM_L1_DEPOSITS_BATCH_SIZE Number of blocks in a single eth_getLogs request. Implemented in #6993. 500
INDEXER_OPTIMISM_L1_WITHDRAWALS_START_BLOCK The number of start block on L1 to index withdrawal events. If the table of withdrawal events is not empty, the process will continue indexing from the last indexed withdrawal event. Implemented in #6980. (empty)
INDEXER_OPTIMISM_L2_WITHDRAWALS_START_BLOCK The number of start block on L2 to index withdrawals. If the table of withdrawals is not empty, the process will continue indexing from the last indexed withdrawal. Implemented in #6980. (empty)
INDEXER_OPTIMISM_L2_MESSAGE_PASSER_CONTRACT The address of L2ToL1MessagePasser contract to index withdrawals. Required if INDEXER_OPTIMISM_L2_WITHDRAWALS_START_BLOCK is not empty. Implemented in #6980. (empty)

zkSync Rollup Management

Please note that these zkSync-related variables are only supported together with setting CHAIN_TYPE=zksync.

Variable Required Description Default
INDEXER_ZKSYNC_BATCHES_ENABLED Enables Polygon zkEVM batches fetcher. Implemented in #9080. false
INDEXER_ZKSYNC_BATCHES_CHUNK_SIZE The number of RPC calls in one request when reading data from RPC. Implemented in #9080. 50
INDEXER_ZKSYNC_NEW_BATCHES_MAX_RANGE Maximum amount of batches requested if Blockscout does not have all batches synced. Implemented in #9080. 50
INDEXER_ZKSYNC_NEW_BATCHES_RECHECK_INTERVAL The latest batch rechecking interval, seconds. Implemented in #9080. 60
INDEXER_ZKSYNC_L1_RPC The RPC endpoint for L1 used to fetch status of batches. Implemented in #9080. (empty)
INDEXER_ZKSYNC_BATCHES_STATUS_RECHECK_INTERVAL The batches status rechecking interval, seconds. Implemented in #9080. 60

Full changelog

Features 🎉

  • #9631 - Initial support of zksync chain type
  • #9532 - Add last output root size counter
  • #9511 - Separate errors by type in EndpointAvailabilityObserver
  • #9490, #9644 - Add blob transaction counter and filter in block view
  • #9486 - Massive blocks fetcher
  • #9483 - Add secondary coin and transaction stats
  • #9473 - Add user_op interpretation
  • #9461 - Fetch blocks without internal transactions backwards
  • #9460 - Optimism chain type
  • #9409 - ETH JSON RPC extension
  • #9390 - Add stability validators
  • #8702 - Add OP withdrawal status to transaction page in API
  • #7200 - Add Optimism BedRock Deposits to the main page in API
  • #6980 - Add Optimism BedRock support (Txn Batches, Output Roots, Deposits, Withdrawals)

Fixes 🛠️

  • #9654 - Send timeout param in debug_traceBlockByNumber request
  • #9653 - Tokens import improvements
  • #9652 - Remove duplicated tx hashes while indexing OP batches
  • #9646 - Hotfix for Optimism Ecotone batch blobs indexing
  • #9640 - Fix no function clause matching in BENS.item_to_address_hash_strings/1
  • #9638 - Do not broadcast coin balance changes with empty value/delta
  • #9635 - Reset missing ranges collector to max number after the cycle is done
  • #9629 - Don't insert pbo for not inserted blocks
  • #9620 - Fix infinite retries for orphaned blobs
  • #9601 - Fix token instance transform for some unconventional tokens
  • #9597 - Update token transfers block_consensus by block_number
  • #9596 - Fix logging
  • #9585 - Fix Geth block internal transactions fetching
  • #9576 - Rewrite query for token transfers on address to eliminate "or"
  • #9572 - Fix Shibarium L1 fetcher
  • #9563 - Fix timestamp handler for unfinalized zkEVM batches
  • #9560 - Fix fetch pending transaction for hyperledger besu client
  • #9555 - Fix EIP-1967 beacon proxy pattern detection
  • #9529 - Fix MAX_SAFE_INTEGER frontend bug
  • #9518, #9628 - Fix MultipleResultsError in smart_contract_creation_tx_bytecode/1
  • #9514 - Fix missing 0x prefix for blockNumber, logIndex, transactionIndex and remove transactionLogIndex in eth_getLogs response.
  • #9510 - Fix WS false 0 token balances
  • #9512 - Docker-compose 2.24.6 compatibility
  • #9262 - Fix withdrawal status
  • #9123 - Fixes in Optimism due to changed log topics type
  • #8831 - Return all OP Withdrawals bound to L2 transaction
  • #8822 - Hotfix for optimism_withdrawal_transaction_status function
  • #8811 - Consider consensus block only when retrieving OP withdrawal transaction status
  • #8364 - Fix API v2 for OP Withdrawals
  • #8229 - Fix Indexer.Fetcher.OptimismTxnBatch
  • #8208 - Ignore invalid frame by OP transaction batches module
  • #8122 - Ignore previously handled frame by OP transaction batches module
  • #7827 - Fix transaction batches module for L2 OP stack
  • #7776 - Fix transactions ordering in Indexer.Fetcher.OptimismTxnBatch
  • #7219 - Output L1 fields in API v2 for transaction page and fix transaction fee calculation
  • #6699 - L1 tx fields fix for Goerli Optimism BedRock update

Chore 🧹

  • #9622 - Add alternative hex.pm mirrors
  • #9571 - Support Optimism Ecotone upgrade by Indexer.Fetcher.Optimism.TxnBatch module
  • #9562 - Add cancun evm version
  • #9506 - API v1 bridgedtokenlist endpoint
  • #9260 - Optimism Delta upgrade support by Indexer.Fetcher.OptimismTxnBatch module
  • #8740 - Add delay to Indexer.Fetcher.OptimismTxnBatch module initialization
Dependencies version bumps
  • #9544 - Bump @babel/core from 7.23.9 to 7.24.0 in /apps/block_scout_web/assets
  • #9537 - Bump logger_json from 5.1.3 to 5.1.4
  • #9550 - Bump xss from 1.0.14 to 1.0.15 in /apps/block_scout_web/assets
  • #9539 - Bump floki from 0.35.4 to 0.36.0
  • #9551 - Bump @amplitude/analytics-browser from 2.5.1 to 2.5.2 in /apps/block_scout_web/assets
  • #9547 - Bump @babel/preset-env from 7.23.9 to 7.24.0 in /apps/block_scout_web/assets
  • #9549 - Bump postcss-loader from 8.1.0 to 8.1.1 in /apps/block_scout_web/assets
  • #9542 - Bump phoenix_ecto from 4.4.3 to 4.5.0
  • #9546 - #9546
  • #9545 - Bump chart.js from 4.4.1 to 4.4.2 in /apps/block_scout_web/assets
  • #9540 - Bump postgrex from 0.17.4 to 0.17.5
  • #9543 - Bump ueberauth from 0.10.7 to 0.10.8
  • #9538 - Bump credo from 1.7.4 to 1.7.5
  • #9607 - Bump redix from 1.3.0 to 1.4.1
  • #9606 - Bump ecto from 3.11.1 to 3.11.2
  • #9605 - Bump ex_doc from 0.31.1 to 0.31.2
  • #9604 - Bump phoenix_ecto from 4.5.0 to 4.5.1

What's Changed

New Contributors

Full Changelog: v6.2.2-beta...v6.3.0-beta

Don't miss a new blockscout release

NewReleases is sending notifications on new releases.