Releases: blockscout/blockscout
BlockScout v6.6.0-beta
💡New environment variables
Variable | Required | Description | Default | Version | Need recompile |
---|---|---|---|---|---|
DISABLE_API |
If true , endpoint is not started. Set this if you want to use an indexer-only setup. Implemented in #10032 |
false |
v6.6.0+ | ||
INDEXER_TOKEN_INSTANCE_RETRY_MAX_REFETCH_INTERVAL |
Maximum interval between attempts to fetch token instance metadata. Time format. Implemented in #10027. | 168h |
v6.6.0+ | ||
INDEXER_TOKEN_INSTANCE_RETRY_EXPONENTIAL_TIMEOUT_BASE |
Base to calculate exponential timeout. Implemented in #10027. | 2 |
v6.6.0+ | ||
INDEXER_TOKEN_INSTANCE_RETRY_EXPONENTIAL_TIMEOUT_COEFF |
Coefficient to calculate exponential timeout. Implemented in #10027. | 100 |
v6.6.0+ | ||
INDEXER_TOKEN_INSTANCE_REALTIME_RETRY_ENABLED |
If true , realtime token instance fetcher will retry once on 404 and 500 error. Implemented in #10036. |
false |
v6.6.0+ | ||
INDEXER_TOKEN_INSTANCE_REALTIME_RETRY_TIMEOUT |
Timeout for retry set by INDEXER_TOKEN_INSTANCE_REALTIME_RETRY_ENABLED . Time format. Implemented in #10036. |
5s |
v6.6.0+ | ||
TEST_DATABASE_URL |
Variable to define the endpoint of the Postgres Database that is used during testing. Implemented in #9662. | (empty) | v6.6.0+ | ||
TEST_DATABASE_READ_ONLY_API_URL |
Variable to define the endpoint of the Postgres Database read-only replica that is used during testing. If it is provided, most of the read queries from API v2 and UI would go through this endpoint. Implemented in #9662. | (empty) | v6.6.0+ | ||
MUD_INDEXER_ENABLED |
If true , integration with MUD is enabled. Implemented in #9869 |
(empty) | v6.6.0+ | ||
MUD_DATABASE_URL |
MUD indexer DB connection URL. | value from DATABASE_URL |
v6.6.0+ | ||
MUD_POOL_SIZE |
MUD indexer DB pool_size |
50 | v6.6.0+ |
Deprecated ENV Variables
Variable | Required | Description | Default | Version | Need recompile | Deprecated in Version |
---|---|---|---|---|---|---|
INDEXER_TOKEN_INSTANCE_RETRY_REFETCH_INTERVAL |
Interval between attempts to fetch token instance metadata. Time format. Implemented in #7286. | 24h |
v5.1.4+ | v6.6.0 | ||
INDEXER_INTERNAL_TRANSACTIONS_INDEXING_FINISHED_THRESHOLD |
In the case when the 1st tx in the chain already has internal transactions, If the number of blocks in pending_block_operations is less than the value in this env var, Blockscout will consider, that indexing of internal transactions finished, otherwise, it will consider, that indexing is still taking place and the indexing banner will appear at the top. Implemented in #7576. | 1000 | v5.2.0+ | v6.6.0 |
⛔ Deprecated environment variables
Variable | Required | Description | Default |
---|---|---|---|
INDEXER_TOKEN_INSTANCE_RETRY_REFETCH_INTERVAL |
Interval between attempts to fetch token instance metadata. Time format. Implemented in #7286. | 24h |
|
INDEXER_INTERNAL_TRANSACTIONS_INDEXING_FINISHED_THRESHOLD |
In the case when the 1st tx in the chain already has internal transactions, If the number of blocks in pending_block_operations is less than the value in this env var, Blockscout will consider, that indexing of internal transactions finished, otherwise, it will consider, that indexing is still taking place and the indexing banner will appear at the top. Implemented in #7576. | 1000 |
⚙️ the release contains several foreground migrations:
- altering of
token_instances
table by adding new fieldsrefetch_after
andretries_count
.⚠️ note: this change might block indexing of token instances for some minutes. - adding new tables
proxy_implementations
andmissing_balance_of_tokens
. - migration to fill
proxy_implementations
fromsmart_contracts
table. - altering
smart_contracts
table with adding new fieldis_blueprint
and deletingimplementation_...
fields.
🚀 Features
- Implement fetch_first_trace for Geth (#10087)
- Add optional retry of NFT metadata fetch in Indexer.Fetcher.Tok… (#10036)
- Blueprint contracts support (#10058)
- Clone with immutable arguments proxy pattern (#10039)
- Improve retry NFT fetcher (#10027)
- MUD API support (#9869)
- Diamond proxy (EIP-2535) support (#10034)
- Add user ops indexer to docker c...
BlockScout v6.5.0-beta
💡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 insmart_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 tonil
intransaction_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...
BlockScout v6.4.0-beta
💡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 |
true
.
🚀 Features
- Secondary coin price in
api/v2/stats
(#9777) - Add /api/v2/blocks/{hash_or_num...
BlockScout v6.3.0-beta
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 valuesoptimism
/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
andsmart_contracts
tables. - new table
massive_blocks
. - extending
market_history
table with new columnsecondary_coin
and transform single-column index bydate
to multi-column includingsecondary_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... |
BlockScout v6.2.2-beta
migration_status
table turns into completed
, resources can be returned to the initial range as it was before the update.
What's Changed
- Add env vars for NFT sanitize migration by @Qwerty5Uiop in #9505
Full Changelog: v6.2.1-beta...v6.2.2-beta
BlockScout v6.2.1-beta
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
- Bump floki from 0.35.3 to 0.35.4 by @dependabot in #9478
- Bump eslint from 8.56.0 to 8.57.0 in /apps/block_scout_web/assets by @dependabot in #9476
- Bump hammer from 6.2.0 to 6.2.1 by @dependabot in #9477
- Bump @amplitude/analytics-browser from 2.4.1 to 2.5.1 in /apps/block_scout_web/assets by @dependabot in #9475
- Add batch_size and concurrency envs for tt token type migration by @Qwerty5Uiop in #9502
- Bump sass from 1.71.0 to 1.71.1 in /apps/block_scout_web/assets by @dependabot in #9474
- Bump es5-ext from 0.10.62 to 0.10.64 in /apps/block_scout_web/assets by @dependabot in #9492
- Fix not found page for unknown blobs by @k1rill-fedoseev in #9493
- Fix tabs counter cache bug by @nikitosing in #9426
- Fix no function clause matching in Integer.parse/2 by @nikitosing in #9484
Full Changelog: v6.2.0-beta...v6.2.1-beta
BlockScout v6.2.0-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:
- extending
smart_contracts
table with the new columnlicense_type
. - extending
token_transfers
table with the new columnblock_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.
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. ... |
BlockScout v6.1.0-beta
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.
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... |
BlockScout v6.0.0-beta
This release contains bulk DB migrations for the sake of improvement of Blockscout DB schema such as:
- Denormalization of table
transactions
: addingblock_consensus
,block_timestamp
. This allows eliminating join withblocks
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
andaddress_token_balances
: filling emptytoken_type
s to be able to eliminate join withtokens
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 makelogs
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
block
srefetch_needed
column to improve init query performance forBlocksTransactionsMismatch
fetcher.
ℹ️ 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.
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 🎉
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...
BlockScout v5.4.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.
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
- Bump chart.js from 4.4.0 to 4.4.1 in /apps/block_scout_web/assets by @dependabot in #8986
- Bump ex_doc from 0.30.9 to 0.31.0 by @dependabot in #8982
- Bump @babel/preset-env from 7.23.5 to 7.23.6 in /apps/block_scout_web/assets by @dependabot in #8987
- Bump ecto_sql from 3.11.0 to 3.11.1 by @dependabot in #8984
- Bump core-js from 3.33.3 to 3.34.0 in /apps/block_scout_web/assets by @dependabot in #8988
- Bump exvcr from 0.14.4 to 0.15.0 by @dependabot in #8980
- Bump @babel/core from 7.23.5 to 7.23.6 in /apps/block_scout_web/assets by @dependabot in #8985
- Manage DB queue target via runtime env var by @vbaranov in #8991
- Remove daily balances updating from BlockReward fetcher by @Qwerty5Uiop in #8955
- Decrease amount of NFT in address collection: 15 -> 9 by @nikitosing in #9014
- Tx interpreter endpoint by @nikitosing in #8957
- Speed up Indexer.Fetcher.TokenInstance.LegacySanitize by @nikitosing in #9013
- Handle nil gas_price at address view by @vbaranov in #8846
- Refactor transactions event preloads by @Qwerty5Uiop in #8994
- Bump eslint-plugin-import from 2.29.0 to 2.29.1 in /apps/block_scout_web/assets by @dependabot in #9020
- Bump eslint from 8.55.0 to 8.56.0 in /apps/block_scout_web/assets by @dependabot in #9021
- Bump @amplitude/analytics-browser from 2.3.6 to 2.3.7 in /apps/block_scout_web/assets by @dependabot in #9019
- BENS integration by @nikitosing in #8972
- Isolate throttable error count by request method by @Qwerty5Uiop in #8997
- Support legacy paging options for address transactions endpoint by @sl1depengwyn in #8969
- Add EIP-4844 compatibility (not full support yet) by @sl1depengwyn in #8975
- Set poll: false for internal transactions fetcher by @Qwerty5Uiop in #8965
- Add SmartContractRealtimeEventHandler by @Qwerty5Uiop in #9018
- Fix tx input decoding in tx summary microservice request by @nikitosing in #9039
- Optimize NFT owner preload by @nikitosing in #9015
- Handle Postgrex errors on NFT import by @nikitosing in #9035
- TRACE_BLOCK_RANG...