Blockchain explorer for Ethereum based network and a tool for inspecting and analyzing EVM based blockchains.
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:
pending_block_operations
, token_transfers
and smart_contracts
tables.massive_blocks
.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.
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 |
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) |
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 |
BENS.item_to_address_hash_strings/1
MAX_SAFE_INTEGER
frontend bugsmart_contract_creation_tx_bytecode/1
0x
prefix for blockNumber
, logIndex
, transactionIndex
and remove transactionLogIndex
in eth_getLogs
response.hex.pm
mirrors0x
prefix in eth_getLogs
response by @fedor-ivn in https://github.com/blockscout/blockscout/pull/9514
Full Changelog: https://github.com/blockscout/blockscout/compare/v6.2.2-beta...v6.3.0-beta
⚠️ 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.
Full Changelog: https://github.com/blockscout/blockscout/compare/v6.2.1-beta...v6.2.2-beta
⚠️ 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.
Full Changelog: https://github.com/blockscout/blockscout/compare/v6.2.0-beta...v6.2.1-beta
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:
smart_contracts
table with the new column license_type
.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.
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 |
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. | 12 | |
INDEXER_BEACON_BLOB_FETCHER_REFERENCE_SLOT |
Any past finalized Beacon Chain slot number. Used as reference for blob inclusion slot calculations. Implemented in #9168. | 8000000 | |
INDEXER_BEACON_BLOB_FETCHER_REFERENCE_TIMESTAMP |
UTC timestamp of the Beacon Chain slot specified in INDEXER_BEACON_BLOB_FETCHER_REFERENCE_SLOT . Used as reference for blob inclusion slot calculations. Implemented in #9168. |
1702824023 | |
INDEXER_BEACON_BLOB_FETCHER_START_BLOCK |
Beacon Chain blob fetcher start block. On start-up, indexer will only look for missed blobs beyond this block number. It's recommended to set this block to the first block after the Dencun hardfork. Implemented in #9168. | 19200000 | |
INDEXER_BEACON_BLOB_FETCHER_END_BLOCK |
Beacon Chain blob fetcher end block. On start-up, indexer will only look for missed blobs before this block number. If set to 0 , then all recent till latest will be traversed. Implemented in #9168. |
0 |
Variable | Required | Description | Default |
---|---|---|---|
INDEXER_POLYGON_ZKEVM_L1_RPC |
The RPC endpoint for L1 used to fetch Deposit or Withdrawal bridge events. Implemented in #9098. | ||
INDEXER_POLYGON_ZKEVM_L1_BRIDGE_START_BLOCK |
The number of a start block on L1 to index L1 bridge 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 #9098. | ||
INDEXER_POLYGON_ZKEVM_L1_BRIDGE_CONTRACT |
The address of PolygonZkEVMBridge contract on L1 used to fetch L1 bridge events. Required for L1 bridge events indexing. Implemented in #9098. | ||
INDEXER_POLYGON_ZKEVM_L1_BRIDGE_NATIVE_SYMBOL |
The symbol of the native coin on L1 to display it in the table of the bridge Deposits and Withdrawals on UI. Implemented in #9098. | ETH | |
INDEXER_POLYGON_ZKEVM_L1_BRIDGE_NATIVE_DECIMALS |
The number of decimals to correctly display an amount of native coins for some Deposit or Withdrawal bridge operations on UI. Implemented in #9098. | 18 | |
INDEXER_POLYGON_ZKEVM_L2_BRIDGE_START_BLOCK |
The number of a start block on L2 to index L2 bridge events. If the table of bridge operations is not empty, the process will continue indexing from the last indexed L2 event. If empty or not defined, the L2 events are not handled. Implemented in #9098. | ||
INDEXER_POLYGON_ZKEVM_L2_BRIDGE_CONTRACT |
The address of PolygonZkEVMBridge contract on L2 used to fetch L2 bridge events. Required for L2 bridge events indexing. Implemented in #9098. |
Variable | Required | Description | Default |
---|---|---|---|
INDEXER_ZKEVM_BATCHES_ENABLED |
Enables Polygon zkEVM batches fetcher. Implemented in #7584. | false |
|
INDEXER_ZKEVM_BATCHES_CHUNK_SIZE |
The number of Polygon zkEVM batches in one chunk when reading them from RPC. Implemented in #7584. | 20 | |
INDEXER_ZKEVM_BATCHES_RECHECK_INTERVAL |
The latest batch rechecking interval, seconds. Implemented in #7584. | 60 |
license_type
to smart contractsdebug_traceBlockByNumber
to method_to_url
debug_traceBlockByNumber
to method_to_url
by @sl1depengwyn in https://github.com/blockscout/blockscout/pull/9440
Full Changelog: https://github.com/blockscout/blockscout/compare/v6.1.0-beta...v6.2.0-beta
Release 6.1.0 is charged with new features and integrations. Here are some of them:
debug_traceBlockByNumber
for Geth JSON RPC variant is implemented.⚠️ 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.
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 the table of bridge operations is not empty, the process will continue indexing from the last indexed L2 event. If empty or not defined, the L2 events are not handled. Implemented in #8929. | (empty) | |
INDEXER_SHIBARIUM_L2_CHILD_CHAIN_CONTRACT |
The address of ChildChain contract on L2 used to fetch BONE token deposits. Required for L2 events indexing. Implemented in #8929. | (empty) | |
INDEXER_SHIBARIUM_L2_WETH_CONTRACT |
The address of WETH contract on L2 used to fetch ETH deposits and withdrawals. Required for L2 events indexing. Implemented in #8929. | (empty) | |
INDEXER_SHIBARIUM_L2_BONE_WITHDRAW_CONTRACT |
The address of a contract which emits Withdraw event on L2. Used to fetch BONE token withdrawals. Required for L2 events indexing. Implemented in #8929. |
(empty) |
/api/v2/utils/decode-calldata
/api/v2/smart-contracts/:address_hash/audit-reports
MARKET_HISTORY_FETCH_INTERVAL
env51dfe7f
to 4836ba3
by @dependabot in https://github.com/blockscout/blockscout/pull/8861
MARKET_HISTORY_FETCH_INTERVAL
env by @sl1depengwyn in https://github.com/blockscout/blockscout/pull/9197
Full Changelog: https://github.com/blockscout/blockscout/compare/v6.0.0-beta...v6.1.0-beta
This release contains bulk DB migrations for the sake of improvement of Blockscout DB schema such as:
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.address_current_token_balances
and address_token_balances
: filling empty token_type
s to be able to eliminate join with tokens
table in some requests where token transfers take place.bytea
. This should make logs
table lighter up to 21%.type
column in event logs since it is not used.block
s 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
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 |
Full Changelog: https://github.com/blockscout/blockscout/compare/v5.4.0-beta...v6.0.0-beta
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.
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) |
Indexer.Fetcher.TokenInstance.LegacySanitize
Full Changelog: https://github.com/blockscout/blockscout/compare/v5.3.3-beta...v5.4.0-beta
ACCOUNT_WATCHLIST_NOTIFICATIONS_LIMIT_FOR_30_DAYS
EXCHANGE_RATES_COINGECKO_COIN_ID
EXCHANGE_RATES_COINGECKO_COIN_ID
by @sl1depengwyn in https://github.com/blockscout/blockscout/pull/8707
Full Changelog: https://github.com/blockscout/blockscout/compare/v5.3.2-beta...v5.3.3-beta
⚠️ This release enables API v2 changes for display of every NFT instance on the owner's address (before, it was the count only). Thus, maintainer of the instance MUST check, if the query in Blockscout DB returns 0 rows:
SELECT COUNT(*) FROM token_instances ti INNER JOIN tokens t ON ti.token_contract_address_hash = t.contract_address_hash WHERE ti.owner_address_hash IS NULL AND t.type='ERC-721';
If it returns 0, you're fine to apply this update without extra steps. Otherwise, you MUST set:
TOKEN_INSTANCE_OWNER_MIGRATION_ENABLED=true
in order to continue with token instance DB migration. Once, this query returns 0, you can unset TOKEN_INSTANCE_OWNER_MIGRATION_ENABLED
.
eth_bytecode_db_lookup_started
and smart_contract_was_not_verified
/api/v2/addresses/{address_hash}
/api/v2/import/smart-contracts/{address_hash}
TOKEN_INSTANCE_OWNER_MIGRATION_ENABLED
envFull Changelog: https://github.com/blockscout/blockscout/compare/v5.3.1-beta...v5.3.2-beta
New chain types polygon_zkevm
and suave
have been added.
/api/v2/import/token-info
stability_fee
for CHAIN_TYPE=stabilityis_verified
for /addresses
and /smart-contracts
wrapped
field to requestRecord
for SuaveVariable | Required | Description | Default | Version |
---|---|---|---|---|
ETHEREUM_JSONRPC_ARCHIVE_BALANCES_WINDOW |
Max block number gap from latest for which balances requests can be processed when ETHEREUM_JSONRPC_DISABLE_ARCHIVE_BALANCES env var is set to true . Implemented in #8673 |
200 | v5.3.1+ | |
INDEXER_ZKEVM_BATCHES_ENABLED |
Enables Polygon zkEVM batches fetcher. Implemented in #7584. | false |
v5.3.1+ | |
INDEXER_ZKEVM_BATCHES_CHUNK_SIZE |
The number of Polygon zkEVM batches in one chunk when reading them from RPC. Implemented in #7584. | 20 | v5.3.1+ | |
INDEXER_ZKEVM_BATCHES_RECHECK_INTERVAL |
The latest batch rechecking interval, seconds. Implemented in #7584. | 60 | v5.3.1+ | |
ACCOUNT_PRIVATE_TAGS_LIMIT |
Limit for address & transaction tags. Implemented in #8528. | 2000 | v5.3.1+ | |
ACCOUNT_WATCHLIST_ADDRESSES_LIMIT |
Limit for watch list addresses. Implemented in #8528. | 15 | v5.3.1+ |
wrapped
field to requestRecord
for Suave by @varasev in https://github.com/blockscout/blockscout/pull/8715
Full Changelog: https://github.com/blockscout/blockscout/compare/v5.3.0-beta...v5.3.1-beta