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

latest releases: v10.2.6, v10.2.5, v10.2.4...
20 months ago

Breaking changes

  • Set of environment variables for OP-stack is changed. The list has been reduced for simplicity of configuration. The new set is updated in the documentation. Deprecated INDEXER_OPTIMISM_... variables have been added to this table.
  • Docker image, starting from 6.8.0, is rootless. Please make sure to update security context in your setup.

Experimental feature highlight

The release contains optional experimental feature, which allows reducing the size of internal_transactions table by removing of output field data and reducing input field size to 4 bytes signature. Our preliminary results from staging environment give estimation of up to 50% reducing of table data + indexes size for mentioned table. In order to enable this feature you should set SHRINK_INTERNAL_TRANSACTIONS_ENABLED=true and use 6.8.0-shrink-internal-txs Docker image tag for all-in-one setup and 6.8.0-shrink-internal-txs-api and 6.8.0-shrink-internal-txs-indexer for splitted setup.

New environment variables

💡List of new environment variables
Variable Description Parameters
ETHEREUM_JSONRPC_FALLBACK_WS_URL The fallback WebSockets RPC endpoint used to subscribe to the newHeads subscription alerting the indexer to fetch new blocks. Implemented in #10407.

Version: v6.8.0+
Default: (empty)
Applications: Indexer

ETHEREUM_JSONRPC_WS_RETRY_INTERVAL The interval between retries of connecting to WebSocket RPC endpoint after the previous attempt is failed. Implemented in #10407.

Version: v6.8.0+
Default: 1m
Applications: Indexer

DATABASE_EVENT_URL Variable to define the Postgres Database endpoint that will be used by event listener process. Applicable for separate indexer and API setup. More info in related PR. Implemented in #10164.

Version: v6.8.0+
Default: (empty)
Applications: API

PUBLIC_METRICS_ENABLED Variable to enable running queries at /public-metrics endpoint. Implemented in #10469.

Version: v6.8.0+
Default: false
Applications: API

PUBLIC_METRICS_UPDATE_PERIOD_HOURS Public metrics update period in hours at /public-metrics endpoint. Implemented in #10469.

Version: v6.8.0+
Default: 24
Applications: API

SHRINK_INTERNAL_TRANSACTIONS_ENABLED Variable to enable internal transactions shrinking logic. Implemented in #10567.

Version: v6.8.0+
Default: false
Applications: API, Indexer

SHRINK_INTERNAL_TRANSACTIONS_BATCH_SIZE Batch size of the shrink internal transactions migration. Implemented in #10567.

Version: v6.8.0+
Default: 10000
Applications: API, Indexer

SHRINK_INTERNAL_TRANSACTIONS_CONCURRENCY Concurrency of the shrink internal transactions migration. Implemented in #10567.

Version: v6.8.0+
Default: 1
Applications: API, Indexer

IPFS_PUBLIC_GATEWAY_URL IPFS public gateway url which is used by frontend to display IPFS resources such as token instance image.

Version: v6.8.0+
Default: https://ipfs.io/ipfs
Applications: API

INDEXER_TOKEN_INSTANCE_RETRY_MAX_REFETCH_INTERVAL Maximum interval between attempts to fetch token instance metadata. Time format. Implemented in #10027.

Version: v6.8.0+
Default: 168h
Applications: Indexer

INDEXER_TOKEN_INSTANCE_RETRY_EXPONENTIAL_TIMEOUT_BASE Base to calculate exponential timeout. Implemented in #10027.

Version: v6.8.0+
Default: 2
Applications: Indexer

INDEXER_TOKEN_INSTANCE_RETRY_EXPONENTIAL_TIMEOUT_COEFF Coefficient to calculate exponential timeout. Implemented in #10027.

Version: v6.8.0+
Default: 100
Applications: Indexer

MISSING_BALANCE_OF_TOKENS_WINDOW_SIZE Minimal blocks count until the next token balance request will be executed for tokens that doesn't implement balanceOf function. Implemented in #10142

Version: v6.8.0+
Default: 100
Applications: Indexer

ETHEREUM_JSONRPC_GETH_ALLOW_EMPTY_TRACES Allow transactions to not have internal transactions. Implemented in #10200

Version: v6.8.0+
Default: false
Applications: Indexer

INDEXER_DISABLE_REPLACED_TRANSACTION_FETCHER If true, Indexer.Fetcher.ReplacedTransaction fetcher doesn't run

Version: v6.8.0+
Default: false
Applications: Indexer

SANITIZE_INCORRECT_WETH_BATCH_SIZE Number of token transfers to sanitize in the batch. Implemented in #10134

Version: v6.8.0+
Default: 100
Applications: API, Indexer

SANITIZE_INCORRECT_WETH_CONCURRENCY Number of parallel sanitizing token transfer batches processing. Implemented in #10134

Version: v6.8.0+
Default: 1
Applications: API, Indexer

MIGRATION_RESTORE_OMITTED_WETH_TOKEN_TRANSFERS_BATCH_SIZE Number of logs to process in the batch. Implemented in #10466

Version: v6.8.0+
Default: 50
Applications: API, Indexer

MIGRATION_RESTORE_OMITTED_WETH_TOKEN_TRANSFERS_CONCURRENCY Number of parallel logs batches processing. Implemented in #10466

Version: v6.8.0+
Default: 5
Applications: API, Indexer

MIGRATION_RESTORE_OMITTED_WETH_TOKEN_TRANSFERS_TIMEOUT Time interval between checks if queue are not empty. The same timeout multiplied by 2 used between checks if qeueue are not full. Implemented in #10466

Version: v6.8.0+
Default: 250ms
Applications: API, Indexer

EXCHANGE_RATES_SOURCE Source for native coin and tokens price fetching. Possible values are: coin_gecko, coin_market_cap or mobula.

Version: v6.8.0+
Default: coin_gecko
Applications: API, Indexer

EXCHANGE_RATES_SECONDARY_COIN_SOURCE Source for secondary coin fetching. Possible values are: coin_gecko, coin_market_cap or mobula.

Version: v6.8.0+
Default: coin_gecko
Applications: API, Indexer

TOKEN_EXCHANGE_RATES_SOURCE Sets the source for tokens price fetching. Available values are coin_gecko, cryptorank. Implemented in #10550.

Version: v6.8.0+
Default: coin_gecko
Applications: API, Indexer

EXCHANGE_RATES_CRYPTORANK_SECONDARY_COIN_ID Sets Cryptorank coin ID for secondary coin market chart. Implemented in #10550.

Version: v6.8.0+
Default: (empty)
Applications: API, Indexer

EXCHANGE_RATES_CRYPTORANK_PLATFORM_ID Sets Cryptorank platform ID. Implemented in #10550.

Version: v6.8.0+
Default: (empty)
Applications: API, Indexer

EXCHANGE_RATES_CRYPTORANK_BASE_URL If set, overrides the Cryptorank API url. Implemented in #10550.

Version: v6.8.0+
Default: https://api.cryptorank.io/v1/
Applications: API, Indexer

EXCHANGE_RATES_CRYPTORANK_API_KEY Cryptorank API key. Current implementation uses dedicated beta Cryptorank API endpoint. If you want to integrate Cryptorank price fetching you should contact Cryptorank to receive an API key. Implemented in #10550.

Version: v6.8.0+
Default: (empty)
Applications: API, Indexer

EXCHANGE_RATES_CRYPTORANK_COIN_ID Sets Cryptorank coin ID. Implemented in #10550.

Version: v6.8.0+
Default: (empty)
Applications: API, Indexer

EXCHANGE_RATES_CRYPTORANK_LIMIT Sets the maximum number of token prices returned in a single request. Implemented in #10550.

Version: v6.8.0+
Default: 1000
Applications: API, Indexer

WHITELISTED_WETH_CONTRACTS Comma-separated list of smart-contract address hashes of WETH-like tokens which deposit and withdrawal events you'd like to index. Implemented in #10134

Version: v6.8.0+
Default: (empty)
Applications: API, Indexer

API_NO_RATE_LIMIT_API_KEY API key with no rate limit. Implemented in #10515

Version: v6.8.0+
Default: (empty)
Applications: API

🚀 Features

  • Detect Diamond proxy pattern on unverified proxy smart-contract (#10665)
  • Support smart-contract verification in zkSync (#10500)
  • Add icon for secondary coin (#10241)
  • Integrate Cryptorank API (#10550)
  • Enhance /api/v2/smart-contracts/:hash API endpoint (#10558)
  • Add method name to transactions CSV export (#10579)
  • Add /api/v2/proxy/metadata/addresses endpoint (#10585)
  • More descriptive status for Arbitrum message for the transaction view (#10593)
  • Add internal_transactions to Tx interpreter request (#10347)
  • Add token decimals to token transfers CSV export (#10589)
  • Add DELETE /api/v2/import/token-info method (#10580)
  • Add block number to token transfer object in API v2 endpoint (#10591)
  • L1 tx associated with Arbitrum message in /api/v2/transactions/{txHash} (#10590)
  • No rate limit API key (#10515)
  • Support for :celo chain type (#10564)
  • Public IPFS gateway URL (#10511)
  • Add CSV_EXPORT_LIMIT env (#10497)
  • Backfiller for omitted WETH transfers (#10466)
  • Add INDEXER_DISABLE_REPLACED_TRANSACTION_FETCHER env (#10485)
  • Revisited approach to catchup missed Arbitrum messages (#10374)
  • Missing Arbitrum batches re-discovery (#10446)
  • Add memory metrics for OnDemand fetchers (#10425)
  • Add Celestia blobs support to Optimism batches fetcher (#10199)
  • AnyTrust and Celestia support as DA for Arbitrum batches (#10144)
  • Broadcast updates about new Arbitrum batches and L1-L2 messages through WebSocket (#10272)

🐛 Bug Fixes

  • Logs list serialization (#10565)
  • nil in OrderedCache (#10647)
  • Fix for metadata detection at ipfs protocol(#10646)
  • Change default shrink internal_transactions table migration params (#10644)
  • Fix bug in update_replaced_transactions query (#10634)
  • Fix mode dependent processes starting (#10641)
  • Better detection IPFS links in NFT metadata fetcher (#10638)
  • Change mode env name (#10636)
  • Proper default value of gas used for dropped Arbitrum transactions (#10619)
  • Fix fetch_first_trace tests (#10618)
  • Add SHRINK_INTERNAL_TRANSACTIONS_ENABLED arg to Dockerfile (#10616)
  • Fix raw-trace test (#10606)
  • Fix internal transaction validation (#10443)
  • Fix internal transactions runner test for zetachain (#10576)
  • Filter out incorrect L1-to-L2 Arbitrum messages (#10570)
  • Fetch contract methods decoding candidates sorted by inserted_at (#10529)
  • Sanitize topic value before making db query (#10481)
  • Fix :checkout_timeout error on NFT fetching (#10429)
  • Proper handling confirmations for Arbitrum rollup block in the middle of a batch (#10482)
  • Sanitize contractURI response (#10479)
  • Use token_type from tt instead of token (#10555)
  • Non-consensus logs in JSON RPC and ETH RPC APIs (#10545)
  • Fix address_to_logs consensus filtering (#10528)
  • Error on internal transactions CSV export (#10495)
  • Extend block search range for getblocknobytime method (#10475)
  • Move recon dep to explorer mix.exs (#10487)
  • Add missing condition to fetch_min_missing_block_cache (#10478)
  • Mud api format fixes (#10362)
  • Add no overlapping constraint to missing_block_ranges (#10449)
  • Avoid infinite loop during batch block range binary search (#10436)
  • Fix "key :bytes not found in: nil" issue (#10435)
  • Missing clauses in MetadataPreloader functions (#10439)
  • Code compiler test (#10454)
  • Include internal transactions in state change (#10210)
  • Race condition in cache tests (#10441)
  • Fix on-demand fetchers metrics (#10431)
  • Transactions and token transfers block_consensus (#10285)
  • Allow fetching image from properties -> image prop in token instance metadata (#10380)
  • Filter out internal transactions belonging to reorg (#10330)
  • Fix logs sorting in API v1 (#10405)
  • Fix flickering transaction_estimated_count/1 test (#10403)
  • Fix flickering "updates cache if initial value is zero" tests (#10402)
  • /addresses empty list flickering test fix (#10400)
  • Fix missing expectation in mock_beacon_storage_pointer_request (#10399)
  • Fix /stats/charts/market test (#10392)
  • Alternative way to detect blocks range for ArbitrumOne batches (#10295)
  • Fix exchange rate flickering test (#10383)
  • Fix gas price oracle flickering test (#10381)
  • Fix address controller flickering test (#10382)
  • Empty revert reasons in geth variant (#10243)
  • Proper handling for re-discovered Arbitrum batches (#10326)
  • Proper lookup of confirmed Arbitrum cross-chain messages (#10322)
  • Indexer first block usage to halt Arbitrum missed messages discovery (#10280)

📚 Documentation

  • Refine PR template
  • Move note in README.md higher for visibility (#10450)

⚡ Performance

  • Speed up worlds list query (#10556)
  • Reduce LookUpSmartContractSourcesOnDemand fetcher footprint (#10457)

⚙️ Miscellaneous Tasks

  • Make Dockerfile use specified user with uid/gid (#10070)
  • Run shrink internal transactions migration for indexer instance only (#10631)
  • Shrink internal transactions (#10567)
  • Upgrade WS client (#10407)
  • Add API endpoint for OP batch blocks (#10566)
  • Public metrics config API endpoint (#10568)
  • Add workflow to generate separate pre-release indexer/API images for Arbitrum
  • Fix some comments (#10519)
  • Set Geth as default JSON RPC Variant (#10509)
  • Return ex_abi core lib dependency (#10470)
  • Add recon dependency (#10486)
  • Manage Solidityscan platform id via runtime variable (#10473)
  • Add test for broadcasting fetched_bytecode message (#10244)
  • Disable public metrics by default, set 1 day as default period of update (#10469)
  • Move eth_bytecode_db_lookup_started event to smart contract related event handler (#10462)
  • Token transfers broadcast optimization (#10465)
  • Remove catchup sequence logic (#10415)
  • Remove single implementation name, address from API v2 response (#10390)
  • Refactor init functions to use continue if needed (#10300)
  • Update buildkit builders (#10377)

What's Changed

New Contributors

Full Changelog: v6.7.2-beta...v6.8.0-beta

Don't miss a new blockscout release

NewReleases is sending notifications on new releases.