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.
#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
endBlockfreeze the value, so exclude them from alerts.
#1644
Solana
accountKeysnow 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
metaplexand block handler templates are replaced byusdc-transfers, indexing SPL Token transfers on mainnet.
#1640, #1635, #1633
Other Changes
- Changed processed events calculation to prevent over-counting when the same log is processed by multiple handlers #1636
- Increased the follower chain alignment margin from 10% to 20%, so followers stay buffered through slow anchor chain responses #1632
- The API token is masked in the interactive
envio initprompt #1639 - New
envio_source_response_blocks_totalandenvio_source_response_empty_totalmetrics #1634 - Add Arc mainnet support to chain configuration #1645
- Internal: TUI now derives its state from metrics instead of
IndexerState#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% #1643