This release contains introduction of CHAIN_TYPE env variable. Based on the value in it, different logic of fetchers, API, views, DB schema extensions are applied to the explorer. Currently supported values are:
ethereum- default valuepolygon_edge- chains based on Polygon Edge nodesrsk- for Rootstock (rskj node)
More values will be supported in the new releases.
Blockscout allows to display TVL of the chain now thanks to the integration with DefiLlama API.
This update also contains changing of DB schema and filling of the data for future feature of disaplying NFT tokens instances on the owner addresses.
Now you can connect Blockscout to your own IPFS gateway endpoint via IPFS_GATEWAY_URL for fetching token instances metadata.
As usual, the release contains many improvements and fixes on the indexer side and API.
The full list of the changes
Features π
- #8512 - Add caching and improve
/tabs-countersperformance - #8472 - Integrate
/api/v2/bytecodes/sources:search-allofeth_bytecode_db - #8589 - DefiLlama TVL source
- #8583 - Add stats widget for rootstock
- #8542 - Add tracing for rootstock
- #8561, #8564 - Get historical market cap data from CoinGecko
- #8543 - Fix polygon tracer
- #8386 - Add
owner_address_hashto thetoken_instances - #8530 - Add
block_typeto search results - #8180 - Deposits and Withdrawals for Polygon Edge
- #7996 - Add CoinBalance fetcher init query limit
- #8658 - Remove block consensus on import fail
- #8575 - Filter token transfers on coin balances updates
Fixes π οΈ
- #8661 - arm64-compatible docker image
- #8649 - Set max 30sec JSON RPC poll frequency for realtime fetcher when WS is disabled
- #8614 - Disable market history cataloger fetcher when exchange rates are disabled
- #8613 - Refactor parsing of FIRST_BLOCK, LAST_BLOCK, TRACE_FIRST_BLOCK, TRACE_LAST_BLOCK env variables
- #8572 - Refactor docker-compose config
- #8552 - Add CHAIN_TYPE build arg to Dockerfile
- #8550 - Sanitize paging params
- #8515 - Fix
:error.types/0 is undefinedwarning - #7959 - Fix empty batch transfers handling
- #8513 - Don't override transaction status
- #8620 - Fix the display of icons
- #8594 - Fix TokenBalance fetcher retry logic
- #8544 - Fix
nil"structLogs"
Chore π§Ή
- #8584 - Store chain together with cookie hash in Redis
- #8579, #8590 - IPFS gateway URL runtime env variable
- #8573 - Update Nginx to proxy all frontend paths
- #8290 - Update Chromedriver version
- #8536, #8537, #8540, #8557 - New issue template
- #8529 - Move PolygonEdge-related migration to the corresponding ecto repository
- #8504 - Deploy new UI through Makefile
- #8501 - Conceal secondary ports in docker compose setup
Dependencies version bumps
- [#8508](https://github.com//pull/8508) - https://github.com//pull/8508 - [#8509](https://github.com//pull/8509) - https://github.com//pull/8509 - [#8511](https://github.com//pull/8511) - https://github.com//pull/8511 - [#8532](https://github.com//pull/8532) - https://github.com//pull/8532 - [#8533](https://github.com//pull/8533) - https://github.com//pull/8533 - [#8531](https://github.com//pull/8531) - https://github.com//pull/8531 - [#8534](https://github.com//pull/8534) - https://github.com//pull/8534 - [#8546](https://github.com//pull/8546) - https://github.com//pull/8546 - [#8553](https://github.com//pull/8553) - https://github.com//pull/8553 - [#8554](https://github.com//pull/8554) - https://github.com//pull/8554 - [#8547](https://github.com//pull/8547) - https://github.com//pull/8547 - [#8567](https://github.com//pull/8567) - https://github.com//pull/8567 - [#8566](https://github.com//pull/8566) - https://github.com//pull/8566 - [#7575](https://github.com//pull/7575) - https://github.com//pull/7575 - [#8569](https://github.com//pull/8569) - https://github.com//pull/8569 - [#8570](https://github.com//pull/8570) - https://github.com//pull/8570 - [#8581](https://github.com//pull/8581) - https://github.com//pull/8581 - [#8607](https://github.com//pull/8607) - https://github.com//pull/8607 - [#8606](https://github.com//pull/8606) - https://github.com//pull/8606 - [#8605](https://github.com//pull/8605) - https://github.com//pull/8605 - [#8608](https://github.com//pull/8608) - https://github.com//pull/8608 - [#8510](https://github.com//pull/8510) - https://github.com//pull/8510 - [#8637](https://github.com//pull/8637) - https://github.com//pull/8637 - [#8639](https://github.com//pull/8639) - https://github.com//pull/8639 - [#8643](https://github.com//pull/8643) - https://github.com//pull/8643 - [#8641](https://github.com//pull/8641) - https://github.com//pull/8641 - [#8646](https://github.com//pull/8646) - https://github.com//pull/8646 - [#8636](https://github.com//pull/8636) - https://github.com//pull/8636 - [#8645](https://github.com//pull/8645) - https://github.com//pull/8645 - [#8638](https://github.com//pull/8638) - https://github.com//pull/8638 - [#8640](https://github.com//pull/8640) - https://github.com//pull/8640The full list of new env variables
| Variable | Required | Description | Default | Version | Need recompile |
|---|---|---|---|---|---|
CHAIN_TYPE
| Specifies the model of data, enables fetchers, specific to the chain. Available values are ethereum, polygon_edge and rsk.
| ethereum
| v5.3.0+ | β | |
TOKEN_INSTANCE_OWNER_MIGRATION_CONCURRENCY
| Concurrency of new fields backfiller implemented in #8386 | 5 | v5.3.0+ | ||
TOKEN_INSTANCE_OWNER_MIGRATION_BATCH_SIZE
| Batch size of new fields backfiller implemented in #8386 | 50 | v5.3.0+ | ||
ADDRESSES_TABS_COUNTERS_TTL
| TTL for cached tabs counters (works only for counters which are < 51, if counter >= 51, then ttl == :infinity). Implemented in #8512 | 10m
| v5.3.0+ | ||
IPFS_GATEWAY_URL
| IPFS gateway url for fetching token instances metadata from IPFS including token instance icon. | https://ipfs.io/ipfs | v5.3.0+ | ||
INDEXER_COIN_BALANCES_FETCHER_INIT_QUERY_LIMIT
| Limit for coin balance fetcher init queries. Implemented in #7996. | 2000 | v5.3.0+ | ||
INDEXER_DISABLE_TOKEN_INSTANCE_LEGACY_SANITIZE_FETCHER
| If true, legacy sanitize token instance fetcher doesn't run. Appeared in #8386
| false
| v5.3.0+ | ||
INDEXER_TOKEN_INSTANCE_LEGACY_SANITIZE_CONCURRENCY
| Concurrency for legacy sanitize token instance fetcher doesn't run. Appeared in #8386
| 10 | v5.3.0+ | ||
INDEXER_TOKEN_INSTANCE_LEGACY_SANITIZE_BATCH_SIZE
| Batch size for legacy sanitize token instance fetcher doesn't run. Appeared in #8386
| 10 | v5.3.0+ | ||
INDEXER_EMPTY_BLOCKS_SANITIZER_INTERVAL
| Interval for empty block sanitizer. Implemented in #8658 | 5m
| v5.3.0+ | ||
INDEXER_POLYGON_EDGE_L1_RPC
| The RPC endpoint for L1 used to fetch deposit or withdrawal events. Implemented in #8180. | (empty) | v5.3.0+ | ||
INDEXER_POLYGON_EDGE_L1_EXIT_HELPER_CONTRACT
| The address of ExitHelper contract on L1 (root chain) used to fetch withdrawal exits. Required for withdrawal events indexing. Implemented in #8180. | (empty) | v5.3.0+ | ||
INDEXER_POLYGON_EDGE_L1_WITHDRAWALS_START_BLOCK
| The number of start block on L1 (root chain) to index withdrawal exits. If the table of withdrawal exits is not empty, the process will continue indexing from the last indexed message. If empty or not defined, the withdrawal exits are not indexed. Implemented in #8180. | (empty) | v5.3.0+ | ||
INDEXER_POLYGON_EDGE_L1_STATE_SENDER_CONTRACT
| The address of StateSender contract on L1 (root chain) used to fetch deposits. Required for deposit events indexing. Implemented in #8180. | (empty) | v5.3.0+ | ||
INDEXER_POLYGON_EDGE_L1_DEPOSITS_START_BLOCK
| The number of start block on L1 (root chain) to index deposits. If the table of deposits is not empty, the process will continue indexing from the last indexed message. If empty or not defined, the deposits are not indexed. Implemented in #8180. | (empty) | v5.3.0+ | ||
INDEXER_POLYGON_EDGE_L2_STATE_SENDER_CONTRACT
| The address of L2StateSender contract on L2 (child chain) used to fetch withdrawals. Required for withdrawal events indexing. Implemented in #8180. | (empty) | v5.3.0+ | ||
INDEXER_POLYGON_EDGE_L2_WITHDRAWALS_START_BLOCK
| The number of start block on L2 (child chain) to index withdrawals. If the table of withdrawals is not empty, the process will fill gaps and then continue indexing from the last indexed message. If empty or not defined, the withdrawals are not indexed. Implemented in #8180. | (empty) | v5.3.0+ | ||
INDEXER_POLYGON_EDGE_L2_STATE_RECEIVER_CONTRACT
| The address of StateReceiver contract on L2 (child chain) used to fetch deposit executes. Required for deposit events indexing. Implemented in #8180. | (empty) | v5.3.0+ | ||
INDEXER_POLYGON_EDGE_L2_DEPOSITS_START_BLOCK
| The number of start block on L2 (child chain) to index deposit executes. If the table of deposit executes is not empty, the process will fill gaps and then continue indexing from the last indexed message. If empty or not defined, the deposit executes are not indexed. Implemented in #8180. | (empty) | v5.3.0+ | ||
INDEXER_POLYGON_EDGE_ETH_GET_LOGS_RANGE_SIZE
| Block range size for eth_getLogs request in Polygon Edge indexer modules. Implemented in #8180. | (empty) | v5.3.0+ | ||
ROOTSTOCK_REMASC_ADDRESS
| The address hash of remasc address on Rootstock chain. Implemented in #8542 | v5.3.0+ | |||
ROOTSTOCK_BRIDGE_ADDRESS
| The address hash of bridge address on Rootstock chain. Implemented in #8542 | v5.3.0+ | |||
EXCHANGE_RATES_TVL_SOURCE
| This environment variable is used to set source for TVL fetching. Available value is defillama.
| (empty) | v5.3.0+ | ||
EXCHANGE_RATES_DEFILLAMA_COIN_ID
| DefiLlama coin id. | (empty) | v5.3.0+ | ||
MICROSERVICE_ETH_BYTECODE_DB_MAX_LOOKUPS_CONCURRENCY
| Maximum amount of concurrent requests for fetching smart contract's sources in Eth Bytecode DB. Implemented in #8472 | 10 | v5.3.0+ |
What's Changed
- Conceal secondary ports in docker compose setup by @vbaranov in #8501
- Deploy new UI through Makefile by @vbaranov in #8504
- Bump sass from 1.67.0 to 1.68.0 in /apps/block_scout_web/assets by @dependabot in #8508
- Bump autoprefixer from 10.4.15 to 10.4.16 in /apps/block_scout_web/assets by @dependabot in #8509
- Deposits and Withdrawals for Polygon Edge by @varasev in #8180
- Bump mox from 1.0.2 to 1.1.0 by @dependabot in #8511
- Don't override transaction status by @Qwerty5Uiop in #8513
- Add CoinBalance fetcher init query limit by @Qwerty5Uiop in #7996
- Move PolygonEdge-related migration to the corresponding ecto repository by @vbaranov in #8529
- Fix empty TransferBatch event handling by @atapin in #7959
- Bump eslint from 8.49.0 to 8.50.0 in /apps/block_scout_web/assets by @dependabot in #8532
- Bump sweetalert2 from 11.7.28 to 11.7.29 in /apps/block_scout_web/assets by @dependabot in #8533
- Bump ex_cldr_units from 3.16.2 to 3.16.3 by @dependabot in #8531
- Bump @babel/core from 7.22.20 to 7.23.0 in /apps/block_scout_web/assets by @dependabot in #8534
- Handle ':error.types/0 is undefined' error by @nikitosing in #8515
- New issue template by @vbaranov in #8536
- Fix issue template by @vbaranov in #8537
- Disable blank issues creation by @vbaranov in #8540
- Bump sweetalert2 from 11.7.29 to 11.7.31 in /apps/block_scout_web/assets by @dependabot in #8546
- Add block_type to search results by @nikitosing in #8530
- Add owner_address_hash and other fields to token_instances; Move toke⦠by @nikitosing in #8386
- Add CHAIN_TYPE build arg to Dockerfile by @vbaranov in #8552
- Bump @amplitude/analytics-browser from 2.3.1 to 2.3.2 in /apps/block_scout_web/assets by @dependabot in #8553
- Apply new issue template to the footer by @vbaranov in #8557
- Bump get-func-name from 2.0.0 to 2.0.2 in /apps/block_scout_web/assets by @dependabot in #8554
- Bump briefly from
678a376to51dfe7fby @dependabot in #8547 - Get historical market cap data from CoinGecko by @vbaranov in #8561
- Coin id definition fix by @vbaranov in #8564
- Bump photoswipe from 5.4.1 to 5.4.2 in /apps/block_scout_web/assets by @dependabot in #8567
- Bump postcss from 8.4.30 to 8.4.31 in /apps/block_scout_web/assets by @dependabot in #8566
- Update Chromedriver version by @vbaranov in #8290
- Bump css-loader from 5.2.7 to 6.8.1 in /apps/block_scout_web/assets by @dependabot in #7575
- Bump web3 from 1.10.0 to 1.10.2 in /apps/block_scout_web/assets by @dependabot in #8569
- Bump core-js from 3.32.2 to 3.33.0 in /apps/block_scout_web/assets by @dependabot in #8570
- Sanitize paging params by @vbaranov in #8550
- Refactor docker-compose config by @vbaranov in #8572
- Update Nginx to proxy all frontend paths by @vbaranov in #8573
- Fix
nil"structLogs"by @sl1depengwyn in #8544 - IPFS gateway URL runtime env variable by @vbaranov in #8579
- Bump credo from 1.7.0 to 1.7.1 by @dependabot in #8581
- Update README.md by @ulyanas in #8577
- Store chain together with cookie hash in Redis by @vbaranov in #8584
- Public IPFS gateway URL for frontend by @vbaranov in #8590
- Bump sass from 1.68.0 to 1.69.0 in /apps/block_scout_web/assets by @dependabot in #8607
- Bump highlight.js from 11.8.0 to 11.9.0 in /apps/block_scout_web/assets by @dependabot in #8606
- Bump eslint from 8.50.0 to 8.51.0 in /apps/block_scout_web/assets by @dependabot in #8605
- Bump sweetalert2 from 11.7.31 to 11.7.32 in /apps/block_scout_web/assets by @dependabot in #8608
- Bump hackney from 1.18.1 to 1.19.1 by @dependabot in #8510
- Integrate /api/v2/bytecodes/sources:search-all of eth_bytecode_db by @nikitosing in #8472
- Disable market history cataloger fetcher when exchange rates are disabled by @vbaranov in #8614
- Fix css-loader by @pustovalov in #8620
- Bump @babel/preset-env from 7.22.20 to 7.23.2 in /apps/block_scout_web/assets by @dependabot in #8637
- Bump sass from 1.69.0 to 1.69.3 in /apps/block_scout_web/assets by @dependabot in #8639
- Bump floki from 0.34.3 to 0.35.0 by @dependabot in #8643
- Bump ex_cldr from 2.37.2 to 2.37.4 by @dependabot in #8641
- Bump @babel/traverse from 7.23.0 to 7.23.2 in /apps/block_scout_web/assets by @dependabot in #8646
- Bump @babel/core from 7.23.0 to 7.23.2 in /apps/block_scout_web/assets by @dependabot in #8636
- Bump ex_doc from 0.30.6 to 0.30.7 by @dependabot in #8645
- Bump webpack from 5.88.2 to 5.89.0 in /apps/block_scout_web/assets by @dependabot in #8638
- Bump hackney from 1.19.1 to 1.20.1 by @dependabot in #8640
- Add tracing for rootstock by @sl1depengwyn in #8542
- DefiLlama TVL source by @vbaranov in #8589
- Fix typos by @GoodDaisy in #8628
- Fix polygon tracer by @sl1depengwyn in #8543
- Set max 30sec JSON RPC poll frequency for realtime fetcher when WS is disabled by @vbaranov in #8649
- arm64-compatible docker image by @vbaranov in #8661
- Add stats widget for rootstock by @sl1depengwyn in #8583
- Add caching and improve
/tabs-countersperformance by @nikitosing in #8512 - Refactor parsing of FIRST_BLOCK, LAST_BLOCK, TRACE_FIRST_BLOCK, TRACE_LAST_BLOCK env variables by @vbaranov in #8613
- Fix TokenBalance fetcher retry logic by @Qwerty5Uiop in #8594
- Remove block consensus on import fail by @Qwerty5Uiop in #8658
- Filter token transfers on coin balances updates by @Qwerty5Uiop in #8575
New Contributors
- @GoodDaisy made their first contribution in #8628
Full Changelog: v5.2.3-beta...v5.3.0-beta