Release notes
-
Allocation lifecycle: new actions
resizeandpresent-poiAdded new actions to support long-lived allocations. Indexers can now present POIs on chain to collect indexing rewards without having to close their allocations (
present-poi). Additionally allocations can be resized while open with theresizecommand. These actions are available both as direct commands and through the action queue:graph indexer actions queue resize ...graph indexer actions queue present-poi ...graph indexer allocations resize ...graph indexer allocations present-poi ...
When using the agent in
AUTOorOVERSIGHTmodes, the reconciliation loop will continue to queue actions usingreallocate. This is necessary because query fees can currently only be collected once an allocation is closed (a limitation ofindexer-service-rs). Once this limitation is removed in a future update, the reconciliation loop will switch to present-poi to reduce gas costs. -
Batched RAV collection
The agent now supports batching multiple RAVs in a single collect transaction. By default the agent will batch collections in bundles of up to 50 RAVs. This behavior can be adjusted by:
- Setting the flag:
--rav-collection-max-batch-size <BATCH_SIZE> - Setting the env var:
INDEXER_AGENT_RAV_COLLECTION_MAX_BATCH_SIZE=<BATCH_SIZE>
- Setting the flag:
-
Limit batch size in action queue transaction bundles
The agent can now limit the number of actions processed per batch to prevent failures when there are many allocations (by going over the max block gas limit). Remaining actions will be processed in subsequent batches. This feature is disabled by default and can be enabled by:
- Setting the flag:
--auto-allocation-max-batch-size <BATCH_SIZE> - Setting the env var:
INDEXER_AGENT_AUTO_ALLOCATION_MAX_BATCH_SIZE=<BATCH_SIZE>
- Setting the flag:
-
Allow providing old mnemonics to collect pending pre-horizon RAVs
Before Graph Horizon RAV collection required signing a message using allocation-specific keys derived from the operator’s mnemonic. After rotating to a new operator wallet, RAVs for old allocations would fail to collect because the new operator's mnemonic cannot derive the correct signing key. This can be circumvented now by providing the old operator mnemonic by:
- Setting the flag:
--legacy-mnemonics "old mnemonic words ..." - Setting the env var:
INDEXER_AGENT_LEGACY_MNEMONICS="old mnemonic words ...”
- Setting the flag:
What's Changed
- docs: add more docs on modes and rules by @tmigone in #1155
- feat: allow providing old mnemonics to collect pending TAPv1 RAVs by @tmigone in #1159
- add --auto-allocation-max-batch-size indexer-agent option by @tmigone in #1177
- feat: batch RAV collection by @tmigone in #1176
- feat(actions): add PRESENT_POI and RESIZE action types for Horizon allocations by @MoonBoi9001 in #1162
New Contributors
- @MoonBoi9001 made their first contribution in #1162
- @nate-staked made their first contribution in #1177
Full Changelog: v0.25.4...v0.25.6