NPM
npm install -g @graphprotocol/indexer-agent@0.14.0
npm install -g @graphprotocol/indexer-cli@0.14.0
npm install -g @graphprotocol/indexer-service@0.14.0
Note: Installing these packages requires Rust and it's package manager cargo
to be installed so that the cost model module can be built. Installing the above packages may require passing --unsafe-perm=true
to the above install commands.
Docker
docker pull ghcr.io/graphprotocol/indexer-agent:v0.14.0
docker pull ghcr.io/graphprotocol/indexer-service:v0.14.0
Changes (Overview)
The main change in this release is the (temporary) replacement of Vector as the base layer of Scalar with allocation-base receipts. We will continue working on the Vector integration and plan to transition to Vector as soon as possible, but we first wanted to unblock our launch partners going live on mainnet.
At a high level this means:
- Scalar receipts will, for now, be created against allocations, not Vector transfers.
- Indexers will (for the moment) not need to run a Vector node.
- Receipts are collected via a
/collect-receipts
endpoint on the gateways. This will convert them into a signed (query fee) voucher that can then be redeemed via a newAllocationExchange
contract.
With this release, the indexer infrastructure changes as follows:
- The Vector node is removed.
- A new
INDEXER_AGENT_COLLECT_RECEIPTS_ENDPOINT
/--collect-receipts-endpoint
configuration option is added to Indexer Agent to configure the endpoint that converts bundles of receipts into query fee vouchers. - A new
INDEXER_SERVICE_CLIENT_SIGNER_ADDRESS
/--client-signer-address
configuration option is added to Indexer Service to configure the signer of the incoming receipts. For now, this limits indexers to being able to serve a single client. As a temporary change, this feels acceptable. Transitioning back to Vector will remove this limitation again.
Changes (Per Component)
Indexer Agent
Added
- Store allocations for which the POI has been checked
- Add subgraph deployment ID to POI disputes
- Add allocation-based receipts and query fee vouchers as an alternative to Vector. This is the default for now. Vector support can still be enabled with
--use-vector
.
Fixed
- Handle 'nonce has already been used' transaction failures
Indexer CLI
Added
- Add subgraph deployment ID to POI disputes
Indexer Common
Added
- Add subgraph deployment ID to POI disputes
- Add async cache from indexer-service
- Add database models for allocation-based receipts and query fee vouchers
Indexer Native
Changed
- Use verify instead of recover for signatures when possible
- Build native module in release mode for better performance
Fixed
- Fix logging native signers usefully
Indexer Service
Added
- Add allocation-based receipts and query fee vouchers as an alternative to Vector. This is the default for now. Vector support can still be enabled with
--use-vector
.