Skip to content

Releases: blockscout/blockscout

BlockScout v6.5.0-beta

26 Apr 05:39
Compare
Choose a tag to compare
💡New environment variables
Variable Required Description Default
IPFS_GATEWAY_URL_PARAM_KEY The key of the parameter to add to IPFS gateway url. Implemented in #9898. (empty))
IPFS_GATEWAY_URL_PARAM_VALUE The value of the parameter to add to IPFS gateway url. Implemented in #9898. (empty))
IPFS_GATEWAY_URL_PARAM_LOCATION Whether to add extra params: to query string or to the headers. Available values: query/header. Implemented in #9898. (empty))
CONTRACT_CERTIFIED_LIST Comma-separated list of smart-contract addresses hashes, to which "certified" flag should be applied. Implemented in #9910 (empty)
INDEXER_GRACEFUL_SHUTDOWN_PERIOD Time that will be given to the block fetchers when stopping the application before they are killed. Implemented in #9729 5m

Zerion

Variable Required Description Default
ZERION_BASE_API_URL Zerion API base URL. Implemented in #9896. https://api.zerion.io/v1
ZERION_API_TOKEN Zerion API API token for usage of Noves.fi API. Implemented in #9896. API. (empty)

⚙️ the release contains several foreground migrations:

  • new indexes on token_transfers, address_token_balances, address_current_token_balances tables to address querying performance issues.
  • new certified column in smart_contracts table.

ℹ️ indexes 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.

🚀 Features

  • Certified smart contracts (#9910)
  • Exit on provided invalid CHAIN_TYPE (#9904)
  • IPFS gateway URL extra params (#9898)
  • Zerion API proxy (#9896)
  • Support Optimism Fault Proofs (#9892)
  • Return number of days in address's coin-balance-history-by-day API v2 endpoint (#9806)
  • Allow the use of Coingecko demo account (#9835)

🐛 Bug Fixes

  • Set refetch_needed: false on block import (#9953)
  • GAS_PRICE_ORACLE_NUM_OF_BLOCKS calculation (#9943)
  • Handle "null" filter in api/v1/logs-csv (#9933)
  • Fix metadata preload (#9925)
  • coin_price_change_percentage calculation (#9774)
  • Remove backend dependency in microservices.yml (#9905)
  • Expand memory only if it was shrunk (#9907)
  • Coin balances fetcher error logging (#9902)
  • Refactor catchup rudimentaries + fix graceful shutdown (#9729)
  • Handle transactions with gas_price set to nil in transaction_revert_reason/2 (#9647)
  • Correct processing of sized array to view in API v2 (#9854)
  • Broadcast realtime coin balances (#9804)
  • Disable BlockReward fetcher for unsupported variants (#9859)
  • Add non-unique log_index support in update_token_instances_owner (#9862)

⚡ Performance

  • Paging function edge cases fix (#9820)
  • Adjust unfetched_address_token_balances_index to fit all bound query conditions (#9912)
  • Enhance index for token holders list (#9816)
  • Improve performance of token page transfers tab (#9809)

⚙️ Miscellaneous Tasks

  • Fix some typos in comments (#9900)
  • Add queue expanding logic to memory monitor (#9870)
  • Bump ex_doc from 0.31.2 to 0.32.1 (#9889)
  • Separate reorgs from blocks that just need refetch (#9674)
  • Unknown token in email template (#9883)
  • Bump tesla from 1.8.0 to 1.9.0 (#9886)
  • Bump logger_file_backend from 0.0.13 to 0.0.14 (#9885)
  • Bump cloak_ecto from 1.2.0 to 1.3.0 (#9890)
  • Bump ex_secp256k1 from 0.7.2 to 0.7.3 (#9888)
  • Bump ex_cldr_units from 3.16.4 to 3.16.5 (#9884)
  • Move has_methods_* fields to /smart-contracts endpoint response (#9599)
  • Add metrics for realtime event handlers queue length (#9822)
  • Increase MissingRangesCollector past check interval after the first cycle (#9872)
  • Reduce number of warnings in web tests (#9851)
  • Fix some typos in conments (#9838)
  • Bump ex_abi from 0.7.1 to 0.7.2 (#9841)
  • Remove /config/json-rpc-url API endpoint (#9798)
  • Bump junit_formatter from 3.3.1 to 3.4.0 (#9842)
  • Bump number from 1.0.4 to 1.0.5 (#9843)
  • Bump absinthe_phoenix from 2.0.2 to 2.0.3 (#9840)
  • Bump plug_cowboy from 2.7.0 to 2.7.1 ([#9844](htt...
Read more

BlockScout v6.4.0-beta

06 Apr 09:38
Compare
Choose a tag to compare
💡New environment variables
Variable Required Description Default
INDEXER_POLYGON_ZKEVM_L1_BRIDGE_START_BLOCK or INDEXER_POLYGON_ZKEVM_L2_BRIDGE_START_BLOCK is defined. Implemented in #9637.
INDEXER_POLYGON_ZKEVM_L1_BRIDGE_ROLLUP_INDEX L1 Rollup index in terms of Polygon zkEVM bridge (0 = Polygon zkEVM, 1 = Astar zkEVM, etc.). Not defined if L1 is Ethereum Mainnet. Required if L1 is not Ethereum Mainnet and INDEXER_POLYGON_ZKEVM_L1_BRIDGE_START_BLOCK or INDEXER_POLYGON_ZKEVM_L2_BRIDGE_START_BLOCK is defined. Implemented in #9637.
INDEXER_POLYGON_ZKEVM_L2_BRIDGE_NETWORK_ID L2 Network ID in terms of Polygon zkEVM bridge (1 = Polygon zkEVM, 2 = Astar zkEVM, etc.). Required if INDEXER_POLYGON_ZKEVM_L1_BRIDGE_START_BLOCK or INDEXER_POLYGON_ZKEVM_L2_BRIDGE_START_BLOCK is defined. Implemented in #9637.
INDEXER_POLYGON_ZKEVM_L2_BRIDGE_ROLLUP_INDEX L2 Rollup index in terms of Polygon zkEVM bridge (0 = Polygon zkEVM, 1 = Astar zkEVM, etc.). Required if INDEXER_POLYGON_ZKEVM_L1_BRIDGE_START_BLOCK or INDEXER_POLYGON_ZKEVM_L2_BRIDGE_START_BLOCK is defined. Implemented in #9637.
EXCHANGE_RATES_COINGECKO_BASE_URL If set, overrides the Coingecko base URL. Implemented in #9679. true
EXCHANGE_RATES_COINGECKO_BASE_PRO_URL If set, overrides the Coingecko Pro base URL. Implemented in #9679. true
EXCHANGE_RATES_COINMARKETCAP_BASE_URL If set, overrides the CoinMarketCap base URL (Free and Pro). Implemented in #9679. true
CONTRACT_CODE_ON_DEMAND_FETCHER_THRESHOLD An initial threshold (for exponential backoff) to fetch smart-contract bytecode on-demand. Time format. Implemented in #9708. 5s

Metadata Service

Variable Required Description Default
MICROSERVICE_METADATA_ENABLED If true, integration with Metadata Service is enabled. Implemented in #9706 (empty)
MICROSERVICE_METADATA_URL URL of Metadata Service. Implemented in #9706 (empty)

GraphQL API management

Variable Required Description Default Version Need recompile
API_GRAPHQL_ENABLED Enabling/disabling of GraphQL API. Implemented in #9751 true v6.4.0
API_GRAPHQL_MAX_COMPLEXITY Query/schema max_complexity of GraphQL API. Implemented in #9751 215 v6.4.0
API_GRAPHQL_TOKEN_LIMIT Query token_limit of Absinthe. Implemented in #9751 1000 v6.4.0
API_GRAPHQL_DEFAULT_TRANSACTION_HASH Default transaction hash in a sample query to GraphiQL. Implemented in #9751. 0x69e3923eef50eada197c3336d546936d0c994211492c9f947a24c02827568f9f v6.4.0
API_GRAPHQL_RATE_LIMIT A global GraphQL API rate limit: number or requests per second for all users. Implemented in #9771 10 req/sec v6.4.0
API_GRAPHQL_RATE_LIMIT_BY_KEY A dedicated GraphQL API rate limit per static key. If this limit is less than stated in API plan, then API_GRAPHQL_RATE_LIMIT_BY_KEY used for key generated from Account module. Implemented in #9771 5 req/sec v6.4.0
API_GRAPHQL_RATE_LIMIT_STATIC_API_KEY Static GraphQL API key with dedicated GraphQL API rate limit. Implemented in #9771 (empty) v6.4.0
API_GRAPHQL_RATE_LIMIT_DISABLED If true, any type of rate limit is ignored. Implemented in #9771 (empty) v6.4.0
API_GRAPHQL_RATE_LIMIT_BY_IP Global rate limit for an IP address for GraphQL API requests. #9771 500 v6.4.0
API_GRAPHQL_RATE_LIMIT_TIME_INTERVAL Time interval of rate limit. Time format. Implemented in #9771 1s v6.4.0
API_GRAPHQL_RATE_LIMIT_BY_IP_TIME_INTERVAL Time interval of rate limit set by API_GRAPHQL_RATE_LIMIT_BY_IP. Time format. Implemented in #9771 5m v6.4.0

⚠️ MICROSERVICE_SC_VERIFIER_ENABLED changed default value to true.
⚠️ GRAPHIQL_TRANSACTION was renamed to API_GRAPHQL_DEFAULT_TRANSACTION_HASH

🚀 Features

  • Secondary coin price in api/v2/stats (#9777)
  • Add /api/v2/blocks/{hash_or_num...
Read more

BlockScout v6.3.0-beta

19 Mar 16:08
Compare
Choose a tag to compare

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_BLO...
Read more

BlockScout v6.2.2-beta

29 Feb 13:26
Compare
Choose a tag to compare

⚠️ if migration is from 6.1.0 or less: background migrations will require more computational resources on the application and DB level because additional migrators are running. It is suggested to increase allocated resources before starting the update. Once the status of migration in migration_status table turns into completed, resources can be returned to the initial range as it was before the update.

What's Changed

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

BlockScout v6.2.1-beta

29 Feb 08:27
Compare
Choose a tag to compare

⚠️ if migration is from 6.1.0 or less: background migrations will require more computational resources on the application and DB level because additional migrators are running. It is suggested to increase allocated resources before starting the update. Once the status of migration in migration_status table turns into completed, resources can be returned to the initial range as it was before the update.

Fixes

  • #9502 - Add batch_size and concurrency envs for tt token type migration
  • #9493 - Fix API response for unknown blob hashes
  • #9484 - Fix read contract error
  • #9426 - Fix tabs counter cache bug

Chore

Dependencies version bumps
  • #9478 - Bump floki from 0.35.3 to 0.35.4
  • #9477 - Bump hammer from 6.2.0 to 6.2.1
  • #9476 - Bump eslint from 8.56.0 to 8.57.0 in /apps/block_scout_web/assets
  • #9475 - Bump @amplitude/analytics-browser from 2.4.1 to 2.5.1 in /apps/block_scout_web/assets
  • #9474 - Bump sass from 1.71.0 to 1.71.1 in /apps/block_scout_web/assets
  • #9492 - Bump es5-ext from 0.10.62 to 0.10.64 in /apps/block_scout_web/assets

What's Changed

Full Changelog: v6.2.0-beta...v6.2.1-beta

BlockScout v6.2.0-beta

28 Feb 18:33
Compare
Choose a tag to compare

EIP-4844 (Data availability) support is added in this release: blobs data is indexed from the consensus layer and can be explorable in the explorer. It is enabled automatically with CHAIN_TYPE=ethereum set in compile and run time.

Polygon ZkEVM bridge operations (transactions/withdrawals) support is added.

In 6.2.0 we continue DB schema enhancements for the sake of improving the performance of the queries. The current release contains denormalization of token_transfers table: block_consensus and token_type fields are added along with background migration to backfill existing data (See the last chapter in 6.0.0 release notes to check the status of background migration). In addition, the performance of the coin balance fetching is improved by exporting it to the asynchronous part of the block import.

More minimal proxy pattern support is added.

It is possible now to link license during verification of the smart-contract.

Fetching of internal transactions from FEVM's (Filecoin EVM) trace_block method is added. And filecoin-related changes are now supported in the master branch of the repo.

⚠️ start_block/end_block filters in API v1 are not supported anymore. Please, use startblock/endblock instead.

⚙️ the release contains 2 foreground migrations for all:

  • extending smart_contracts table with the new column license_type.
  • extending token_transfers table with the new column block_consensus.

And tables creations and extending blocks table for EIP-4844 support (CHAIN_TYPE=ethereum).
Those migrations shouldn't take much time: several minutes at most.

⚠️ background migrations will require more computational resources on the application and DB level because additional migrators are running. It is suggested to increase allocated resources before starting the update. Once the status of migration in migration_status table turns into completed, resources can be returned to the initial range as it was before the update.

💡New environment variables
Variable Required Description Default
INDEXER_DISABLE_TOKEN_INSTANCE_ERC_1155_SANITIZE_FETCHER If true, erc-1155-sanitize token instance fetcher doesn't run. Implemented in #9226. false
INDEXER_DISABLE_TOKEN_INSTANCE_ERC_721_SANITIZE_FETCHER If true, erc-721-sanitize token instance fetcher doesn't run. Implemented in #9226. false
INDEXER_TOKEN_INSTANCE_ERC_1155_SANITIZE_CONCURRENCY Concurrency for erc-1155-sanitize token instance fetcher. Implemented in #9226. 2
INDEXER_TOKEN_INSTANCE_ERC_721_SANITIZE_CONCURRENCY Concurrency for erc-721-sanitize token instance fetcher. Implemented in #9226. 2
INDEXER_TOKEN_INSTANCE_ERC_1155_SANITIZE_BATCH_SIZE Batch size for erc-1155-sanitize token instance fetcher. Implemented in #9226. 10
INDEXER_TOKEN_INSTANCE_ERC_721_SANITIZE_BATCH_SIZE Batch size for erc-721-sanitize token instance fetcher. Implemented in #9226. 10
INDEXER_EMPTY_BLOCKS_SANITIZER_INTERVAL Interval for empty block sanitizer. Implemented in #8658
INDEXER_TOKEN_INSTANCE_USE_BASE_URI_RETRY If true, and request to tokenURI(tokenId) failed with VM execution error, Blockscout will make request to baseURI and try to request metadata from baseURI + tokenId false
EIP_1559_BASE_FEE_MAX_CHANGE_DENOMINATOR EIP-1559 base fee max change denominator. Implemented in #9202 8

Ethereum Management

Variable Required Description Default
INDEXER_BEACON_RPC_URL The Beacon Chain RPC endpoint used to fetch blob sidecars. Implemented in #9168. http://localhost:5052
INDEXER_DISABLE_BEACON_BLOB_FETCHER If true the fetcher of Beacon data blobs won't be started, new transaction and block fields still will be extracted. Implemented in #9168. false
INDEXER_BEACON_BLOB_FETCHER_SLOT_DURATION Slot duration in the Beacon Chain in seconds. Implemented in #9168. ...
Read more

BlockScout v6.1.0-beta

05 Feb 18:21
Compare
Choose a tag to compare

Release 6.1.0 is charged with new features and integrations. Here are some of them:

  • Full support of Account abstraction (EIP-4337): decoding operation calldata API v2 endpoint, search by operation hash are implemented as well as User operations indexer microservice API endpoints are proxied to Blockscout API v2 endpoints.
  • An additional option to fetch in internal transactions per block through debug_traceBlockByNumber for Geth JSON RPC variant is implemented.
  • An ability to submit smart-contract audit reports has been implemented.
  • new API v2 endpoints have been created as proxy for Noves.fi API endpoints.
  • API v1 is extended with various new endpoints.
  • Fetching of native token image from CoinGecko and return it through API v2 stats endpoint is implemented.
  • An ability to configure bridged tokens fetcher for AMB and Omni bridges moved to master branch.

⚠️ For the sake of increasing DB queries performance there are 2 index creations with concurrently option are added to this release. Downtime is not expected. However, this affects the time of the release installation.

💡New environment variables
Variable Required Description Default
ETHEREUM_JSONRPC_GETH_TRACE_BY_BLOCK Enable tracing by block for geth variant. Implemented in #9072 false
CONTRACT_PROXY_IMPLEMENTATION_TTL_VIA_AVG_BLOCK_TIME If false, proxy contract implementation will be re-fetched immediately once someone opend proxy page bypassing average block time calculation. Implemented in #9155. true
CONTRACT_AUDIT_REPORTS_AIRTABLE_URL URL of AirTable to store audit reports from users. Implemented in #9120 (empty)
CONTRACT_AUDIT_REPORTS_AIRTABLE_API_KEY Access token for CONTRACT_AUDIT_REPORTS_AIRTABLE_URL. Implemented in #9120 (empty)
MARKET_HISTORY_FETCH_INTERVAL Interval to update data for the last day in Market History table. Time format. Introduced in #9197. 1h
NOVES_FI_BASE_API_URL Noves.fi API base URL. Implemented in #9056. https://blockscout.noves.fi
NOVES_FI_CHAIN_NAME Noves.fi API chain name. Implemented in #9056. (empty)
NOVES_FI_API_TOKEN Noves.fi API API token for usage of Noves.fi API. Implemented in #9056. API. (empty)
BRIDGED_TOKENS_ENABLED Variable to enabled bridged tokens functionality. Introduced in #9169 (empty)
BRIDGED_TOKENS_ETH_OMNI_BRIDGE_MEDIATOR OMNI bridge mediator for ETH tokens. Introduced in #9169 (empty)
BRIDGED_TOKENS_BSC_OMNI_BRIDGE_MEDIATOR OMNI bridge mediator for BSC tokens. Introduced in #9169 (empty)
BRIDGED_TOKENS_POA_OMNI_BRIDGE_MEDIATOR OMNI bridge mediator for POA tokens. Introduced in #9169 (empty)
BRIDGED_TOKENS_AMB_BRIDGE_MEDIATORS AMB bridge mediator. Introduced in #9169 (empty)
BRIDGED_TOKENS_FOREIGN_JSON_RPC Ethereum mainnet JSON RPC. Introduced in #9169 (empty)
MICROSERVICE_ACCOUNT_ABSTRACTION_ENABLED If true, integration with Blockscout Account Abstraction service is enabled. Implemented in #9145 (empty)
MICROSERVICE_ACCOUNT_ABSTRACTION_URL URL of Blockscout ENS service. Implemented in #9145 (empty)
INDEXER_SHIBARIUM_L1_RPC The RPC endpoint for L1 used to fetch deposit or withdrawal events. Implemented in #8929. (empty)
INDEXER_SHIBARIUM_L1_START_BLOCK The number of start block on L1 to index L1 events. If the table of bridge operations is not empty, the process will continue indexing from the last indexed L1 event. If empty or not defined, the L1 events are not handled. Implemented in #8929. (empty)
INDEXER_SHIBARIUM_L1_DEPOSIT_MANAGER_CONTRACT The address of DepositManagerProxy contract on L1 used to fetch BONE token deposits. Required for L1 events indexing. Implemented in #8929. (empty)
INDEXER_SHIBARIUM_L1_ETHER_PREDICATE_CONTRACT The address of EtherPredicateProxy contract on L1 used to fetch ETH deposits and withdrawals. Required for L1 events indexing. Implemented in #8929. (empty)
INDEXER_SHIBARIUM_L1_ERC20_PREDICATE_CONTRACT The address of ERC20PredicateProxy contract on L1 used to fetch ERC20 token deposits and withdrawals. Required for L1 events indexing. Implemented in #8929. (empty)
INDEXER_SHIBARIUM_L1_ERC721_PREDICATE_CONTRACT The address of ERC721PredicateProxy contract on L1 used to fetch ERC721 token deposits and withdrawals. Optional for L1 events indexing. Implemented in #8929. (empty)
INDEXER_SHIBARIUM_L1_ERC1155_PREDICATE_CONTRACT The address of ERC1155PredicateProxy contract on L1 used to fetch ERC1155 token deposits and withdrawals. Optional for L1 events indexing. Implemented in #8929. (empty)
INDEXER_SHIBARIUM_L1_WITHDRAW_MANAGER_CONTRACT The address of WithdrawManagerProxy contract on L1 used to fetch BONE token withdrawals. Required for L1 events indexing. Implemented in #8929. (empty)
INDEXER_SHIBARIUM_L2_START_BLOCK The number of start block on L2 to index L2 events. If...
Read more

BlockScout v6.0.0-beta

08 Jan 16:54
ce735c1
Compare
Choose a tag to compare

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.

Check the status of background migration

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
DENORMALIZATION_MIGRATION_BATCH_SIZE Number of transactions to denormalize (add block timestamp and consensus) in the batch. 500
DENORMALIZATION_MIGRATION_CONCURRENCY Number of parallel denormalization transaction batches processing. 10

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

  • Arbitrum allow tx receipt gasUsedForL1 field by @vbaranov in #9061
  • Bump redux from 5.0.0 to 5.0.1 in /apps/block_scout_web/assets by @dependabot in #9059
  • Bump benchee from 1.2.0 to 1.3.0 by @dependabot in #9057
  • Bump @amplitude/analytics-browser from 2.3.7 to 2.3.8 in /apps/block_scout_web/assets by @dependabot in #9060
  • Fix bens integration by @sevenzing in #9062
  • Bump @babel/preset-env from 7.23.6 to 7.23.7 in /apps/block_scout_web/assets by @dependabot in #9084
  • Bump @babel/core from 7.23.6 to 7.23.7 in /apps/block_scout_web/assets by @dependabot in #9083
  • Bump core-js from 3.34.0 to 3.35.0 in /apps/block_scout_web/assets by @dependabot in #9086
  • Bump sweetalert2 from 11.10.1 to 11.10.2 in /apps/block_scout_web/assets by @dependabot in #9081
  • Bump moment from 2.29.4 to 2.30.1 in /apps/block_scout_web/assets by @dependabot in #9085
  • Bump postcss-loader from 7.3.3 to 7.3.4 in /apps/block_scout_web/assets by @dependabot in ht...
Read more

BlockScout v5.4.0-beta 🎄

25 Dec 09:49
Compare
Choose a tag to compare

Introducing integration with Blockscout ENS service (BENS). The list of env variable for enabling integration with BENS. Basic compatibility with EIP-4844 chains has been added (full support will be included into the upcoming releases).

Compatible with frontend v1.20.0.

New environment variables

Variable Required Description Default
MICROSERVICE_BENS_ENABLED If true, integration with Blockscout ENS service is enabled. Implemented in #8972 (empty)
MICROSERVICE_BENS_URL URL of Blockscout ENS service. Implemented in #8972 (empty)
DATABASE_QUEUE_TARGET Management of DB queue target. Implemented in #8991. 50ms
INDEXER_TOKEN_INSTANCE_LEGACY_SANITIZE_CONCURRENCY Concurrency for legacy sanitize token instance fetcher doesn't run. Appeared in #8386 2
TRACE_BLOCK_RANGES Block ranges for traceable blocks. Example: TRACE_BLOCK_RANGES="1..3,123..500,30..50,500..latest". Implemented in #8960 (empty)

Features 🎉

  • #9018 - Add SmartContractRealtimeEventHandler
  • #8997 - Isolate throttable error count by request method
  • #8975 - Add EIP-4844 compatibility (not full support yet)
  • #8972 - BENS integration
  • #8960 - TRACE_BLOCK_RANGES env var
  • #8957 - Add Tx Interpreter Service integration

Fixes 🛠️

  • #9039 - Fix tx input decoding in tx summary microservice request
  • #9035 - Handle Postgrex errors on NFT import
  • #9015 - Optimize NFT owner preload
  • #9013 - Speed up Indexer.Fetcher.TokenInstance.LegacySanitize
  • #8969 - Support legacy paging options for address transaction endpoint
  • #8965 - Set poll: false for internal transactions fetcher
  • #8955 - Remove daily balances updating from BlockReward fetcher
  • #8846 - Handle nil gas_price at address view

Chore 🧹

  • #9014 - Decrease amount of NFT in address collection: 15 -> 9
  • #8994 - Refactor transactions event preloads
  • #8991 - Manage DB queue target via runtime env var
Dependencies version bumps
  • #8986 - Bump chart.js from 4.4.0 to 4.4.1 in /apps/block_scout_web/assets
  • #8982 - Bump ex_doc from 0.30.9 to 0.31.0
  • #8987 - Bump @babel/preset-env from 7.23.5 to 7.23.6 in /apps/block_scout_web/assets
  • #8984 - Bump ecto_sql from 3.11.0 to 3.11.1
  • #8988 - Bump core-js from 3.33.3 to 3.34.0 in /apps/block_scout_web/assets
  • #8980 - Bump exvcr from 0.14.4 to 0.15.0
  • #8985 - Bump @babel/core from 7.23.5 to 7.23.6 in /apps/block_scout_web/assets
  • #9020 - Bump eslint-plugin-import from 2.29.0 to 2.29.1 in /apps/block_scout_web/assets
  • #9021 - Bump eslint from 8.55.0 to 8.56.0 in /apps/block_scout_web/assets
  • #9019 - Bump @amplitude/analytics-browser from 2.3.6 to 2.3.7 in /apps/block_scout_web/assets

What's Changed

Read more

BlockScout v5.3.3-beta

11 Dec 14:26
Compare
Choose a tag to compare

Features 🎉

  • #8966 - Add ACCOUNT_WATCHLIST_NOTIFICATIONS_LIMIT_FOR_30_DAYS
  • #8908 - Solidityscan report API endpoint
  • #8900 - Add Compound proxy contract pattern
  • #8611 - Implement sorting of smart contracts, address transactions

Fixes 🛠️

  • #8959 - Skip failed instances in Token Instance Owner migrator
  • #8924 - Delete invalid current token balances in OnDemand fetcher
  • #8922 - Allow call type to be in lowercase
  • #8917 - Proxy detection hotfix in API v2
  • #8915 - smart-contract: delete embeds_many relation on replace
  • #8906 - Fix abi encoded string argument
  • #8898 - Enhance method decoding by candidates from DB
  • #8882 - Change order of proxy contracts patterns detection: existing popular EIPs to the top of the list
  • #8707 - Fix native coin exchange rate with EXCHANGE_RATES_COINGECKO_COIN_ID

Chore 🧹

  • #8956 - Refine docker-compose config structure
  • #8911 - Set client_connection_check_interval for main Postgres DB in docker-compose setup
Dependencies version bumps
  • #8863 - Bump core-js from 3.33.2 to 3.33.3 in /apps/block_scout_web/assets
  • #8864 - Bump @amplitude/analytics-browser from 2.3.3 to 2.3.5 in /apps/block_scout_web/assets
  • #8860 - Bump ecto_sql from 3.10.2 to 3.11.0
  • #8896 - Bump httpoison from 2.2.0 to 2.2.1
  • #8867 - Bump mixpanel-browser from 2.47.0 to 2.48.1 in /apps/block_scout_web/assets
  • #8865 - Bump eslint from 8.53.0 to 8.54.0 in /apps/block_scout_web/assets
  • #8866 - Bump sweetalert2 from 11.9.0 to 11.10.1 in /apps/block_scout_web/assets
  • #8897 - Bump prometheus from 4.10.0 to 4.11.0
  • #8859 - Bump absinthe from 1.7.5 to 1.7.6
  • #8858 - Bump ex_json_schema from 0.10.1 to 0.10.2
  • #8943 - Bump postgrex from 0.17.3 to 0.17.4
  • #8939 - Bump @babel/core from 7.23.3 to 7.23.5 in /apps/block_scout_web/assets
  • #8936 - Bump eslint from 8.54.0 to 8.55.0 in /apps/block_scout_web/assets
  • #8940 - Bump photoswipe from 5.4.2 to 5.4.3 in /apps/block_scout_web/assets
  • #8938 - Bump @babel/preset-env from 7.23.3 to 7.23.5 in /apps/block_scout_web/assets
  • #8935 - Bump @amplitude/analytics-browser from 2.3.5 to 2.3.6 in /apps/block_scout_web/assets
  • #8937 - Bump redux from 4.2.1 to 5.0.0 in /apps/block_scout_web/assets
  • #8942 - Bump gettext from 0.23.1 to 0.24.0
  • #8934 - Bump @fortawesome/fontawesome-free from 6.4.2 to 6.5.1 in /apps/block_scout_web/assets
  • #8933 - Bump postcss from 8.4.31 to 8.4.32 in /apps/block_scout_web/assets

What's Changed

  • Bump core-js from 3.33.2 to 3.33.3 in /apps/block_scout_web/assets by @dependabot in #8863
  • Bump @amplitude/analytics-browser from 2.3.3 to 2.3.5 in /apps/block_scout_web/assets by @dependabot in #8864
  • Bump ecto_sql from 3.10.2 to 3.11.0 by @dependabot in #8860
  • Bump httpoison from 2.2.0 to 2.2.1 by @dependabot in #8896
  • Bump mixpanel-browser from 2.47.0 to 2.48.1 in /apps/block_scout_web/assets by @dependabot in #8867
  • Bump eslint from 8.53.0 to 8.54.0 in /apps/block_scout_web/assets by @dependabot in #8865
  • Bump sweetalert2 from 11.9.0 to 11.10.1 in /apps/block_scout_web/assets by @dependabot in #8866
  • Bump prometheus from 4.10.0 to 4.11.0 by @dependabot in #8897
  • Bump absinthe from 1.7.5 to 1.7.6 by @dependabot in #8859
  • Bump ex_json_schema from 0.10.1 to 0.10.2 by @dependabot in #8858
  • smart-contract: delete embeds_many relation on replace by @vbaranov in #8915
  • Proxy detection hotfix in API v2 by @vbaranov in #8917
  • Delete invalid current token balances in OnDemand fetcher by @Qwerty5Uiop in #8924
  • Set client_connection_check_interval for main Postgres DB in docker-compose setup by @vbaranov in #8911
  • Change order of proxy contracts patterns detection: existing popular EIPs to the top of the list by @vbaranov in #8882
  • Add Compound proxy contract pattern by @vbaranov in #8900
  • Fix abi encoded string argument by @vbaranov in #8906
  • Bump postgrex from 0.17.3 to 0.17.4 by @dependabot in #8943
  • Bump @babel/core from 7.23.3 to 7.23.5 in /apps/block_scout_web/assets by @dependabot in #8939
  • Bump eslint from 8.54.0 to 8.55.0 in /apps/block_scout_web/assets by @dependabot in #8936
  • Implement sorting of smart contracts, address transactions by @sl1depengwyn in #8611
  • Bump photoswipe from 5.4.2 to 5.4.3 in /apps/block_scout_web/assets by @dependabot in #8940
  • Bump @babel/preset-env from 7.23.3 to 7.23.5 in /apps/block_scout_web/assets by @dependabot in #8938
  • Bump @amplitude/analytics-browser from 2.3.5 to 2.3.6 in /apps/block_scout_web/assets by @dependabot in #8935
  • Bump ueberauth from 0.10.5 to 0.10.6 by @dependabot in #8941
  • Bump redux from 4.2.1 to 5.0.0 in /apps/block_scout_web/assets by @dependabot in #8937
  • Bump gettext from 0.23.1 to 0.24.0 by @dependabot in #8942
  • Bump @fortawesome/fontawesome-free from 6.4.2 to 6.5.1 in /apps/block_scout_web/assets by @dependabot in #8934
  • Bump postcss from 8.4.31 to 8.4.32 in /apps/block_scout_web/assets by @dependabot in #8933
  • Fix native coin exchange rate with EXCHANGE_RATES_COINGECKO_COIN_ID by @sl1depengwyn in #8707
  • Allow call type to be in lowercase by @Qwerty5Uiop in #8922
  • Solidityscan report API endpoint by @vbaranov in #8908
  • Enhance method decoding by candidates from DB by @vbaranov in #8898
  • Refine docker-compose config structure by @vbaranov in #8956
  • Add ACCOUNT_WATCHLIST_NOTIFICATIONS_LIMIT_FOR_30_DAYS by @nikitosing in #8966
  • Skip failed instances by @nikitosing in #8959

Full Changelog: v5.3.2-beta...v5.3.3-beta