Skip to content

v3.12.0

Choose a tag to compare

@DZakh DZakh released this 16 Sep 09:21
· 7 commits to main since this release
6f7763d

What's Changed

Run Chains In Separate Processes

envio start --chain <CHAIN_ID> lets multiple processes index different chains of the indexer in parallel:

envio local db-migrate up

ENVIO_INDEXER_PORT=8080 envio start --chain 1
ENVIO_INDEXER_PORT=8081 envio start --chain 137 --chain 5042

Create the database once with envio local db-migrate up before any process starts, assign each configured chain to exactly one process, and give each its own port. Every process works fully independently of the others.

Requires a schema whose entities are all per-chain, and can't be combined with --restart, which would wipe the chains other processes are driving.

The mode requires all entities to be in per-chain mode, without @crossChain ones.

By @DZakh in #1637, #1625

Track Progress Block Time

New envio_progress_block_time_seconds metric, also exposed as _meta.progressBlockTime, reports the unix timestamp of the block each chain has processed up to. Head lag was previously measured only against the data source's claimed height, so a source that was itself behind reported zero lag while serving stale data. now() - progress_block_time tells you how far behind chain time the indexer really is.

Populated on a best-effort basis during realtime sync. Chains that reach their endBlock freeze the value, so exclude them from alerts.

By @DZakh in #1644

Solana

  • accountKeys now includes addresses resolved through Address Lookup Tables. Previously only static keys were exposed, so handlers doing account analysis silently saw a fraction of a versioned transaction, sometimes not even the indexed program itself.
  • The metaplex and block handler templates are replaced by usdc-transfers, indexing SPL Token transfers on mainnet.

By @JasoonS in #1640, by @DZakh in #1635, #1633

Other Changes

  • Changed processed events calculation to prevent over-counting when the same log is processed by multiple handlers by @DZakh in #1636
  • Increased the follower chain alignment margin from 10% to 20%, so followers stay buffered through slow anchor chain responses by @DZakh in #1632
  • The API token is masked in the interactive envio init prompt by @DZakh in #1639
  • New envio_source_response_blocks_total and envio_source_response_empty_total metrics by @DZakh in #1634
  • Add Arc mainnet support to chain configuration by @DZakh in #1645
  • Internal: TUI now derives its state from metrics instead of IndexerState by @DZakh in #1638
  • Internal: ClickHouse batches are staged into a Rust-owned columnar arena, cutting main-thread staging CPU by 27-75% and peak memory by ~13% by @DZakh in #1643

Full Changelog: v3.11.0...v3.12.0