Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

docs/networks: Add network config docs for Sepolia and Arbitrum Sepolia #820

Merged
merged 2 commits into from
Nov 27, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
111 changes: 111 additions & 0 deletions docs/networks/arbitrum-sepolia.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,111 @@
# Testnet Configuration

The Graph Network's testnet is on Arbitrum Sepolia (eip155:421614). Sepolia network information can be found at https://testnet.thegraph.com/explorer?chain=arbitrum-sepolia.

## Latest Releases

| Component | Release |
| --------------- | ------------------------------------------------------------------------------- |
| contracts | [5.3.3](https://github.com/graphprotocol/contracts/releases/tag/v5.3.3) |
| indexer-agent | [0.20.22](https://github.com/graphprotocol/indexer/releases/tag/v0.20.22) |
| indexer-cli | [0.20.22](https://github.com/graphprotocol/indexer/releases/tag/v0.20.22) |
| indexer-service | [0.20.22](https://github.com/graphprotocol/indexer/releases/tag/v0.20.22) |
| graph-node | [v0.33.0](https://github.com/graphprotocol/graph-node/releases/tag/v0.33.0) |

## Network Parameters

| Parameter | Value |
| --------------------------- | ----------------- |
| Epoch length | ~ 2h (554 blocks) |
| Maximum allocation lifetime | ~ 9h (4 epochs) |

## Contracts & accounts

| Name | Address |
| ------------------ | ------------------------------------------------------------------------------------------------------------------------------ |
| Graph Token (GRT ) | [`0xf8c05dCF59E8B28BFD5eed176C562bEbcfc7Ac04`](https://arbiscan.io/address/0xf8c05dCF59E8B28BFD5eed176C562bEbcfc7Ac04) |
fordN marked this conversation as resolved.
Show resolved Hide resolved
| Staking | [`0x865365C425f3A593Ffe698D9c4E6707D14d51e08`](https://arbiscan.io/address/0x865365C425f3A593Ffe698D9c4E6707D14d51e08) |

| Data Edge | [`0x9b9402939133F27c6eba81a321dfBFa1feE6714E`](https://arbiscan.io/address/0x9b9402939133F27c6eba81a321dfBFa1feE6714E) |
| Block Oracle Owner | [`0x76BC183A6d9AC1e4C5ccb27b7D46DDf0d2cc9868`](https://arbiscan.io/address/0x76BC183A6d9AC1e4C5ccb27b7D46DDf0d2cc9868) |

Other network contracts can be found in [graphprotocol/contracts](https://github.com/graphprotocol/contracts/blob/main/addresses.json#L1220-L1425).

## Configuration

The Graph testnet contracts live on Arbitrum Sepolia, but many of the subgraphs used in the
testnet (for now) are Mainnet subgraphs. This means:

- Indexer Agent and Indexer Service must connect to Arbitrum Sepolia
- Graph Node must connect to at least one Mainnet Ethereum node/provider

### Indexer Agent

| Environment Variable | CLI Argument | Value |
| ------------------------------------------- | ------------------------------- | --------------------------------------------------------------------------------- |
| `INDEXER_AGENT_ETHEREUM` | `--ethereum` | An Arbitrum Sepolia node/provider |
| `INDEXER_AGENT_ETHEREUM_NETWORK` | `--ethereum-network` | `arbitrum-sepolia` |
| `INDEXER_AGENT_INDEXER_ADDRESS` | `--indexer-address` | Ethereum address of testnet indexer |
| `INDEXER_AGENT_INDEXER_GEO_COORDINATES` | `--indexer-geo-coordinates` | Geo coordinates of testnet indexer infrastructure |
| `INDEXER_AGENT_MNEMONIC` | `--mnemonic` | Ethereum mnemonic for testnet operator |
| `INDEXER_AGENT_NETWORK_SUBGRAPH_DEPLOYMENT` | `--network-subgraph-deployment` | `QmT8UDGK7zKd2u2NQZwhLYHdA4KM55QsivkE3ouCuX6fEj` |
| `INDEXER_AGENT_NETWORK_SUBGRAPH_ENDPOINT` | `--network-subgraph-endpoint` | `https://api.thegraph.com/subgraphs/name/graphprotocol/graph-network-arbitrum-sepolia` |
| `INDEXER_AGENT_DAI_CONTRACT` | `--dai-contract` | `0x9e7e607afd22906f7da6f1ec8f432d6f244278be` (GDAI) |
| `INDEXER_AGENT_COLLECT_RECEIPTS_ENDPOINT` | `--collect-receipts-endpoint` | `https://gateway-arbitrum.testnet.thegraph.com/collect-receipts` |
| `INDEXER_AGENT_EPOCH_SUBGRAPH_ENDPOINT` | `--epoch-subgraph-endpoint` | `https://api.thegraph.com/subgraphs/name/graphprotocol/arbitrum-sepolia-ebo`|

In order to avoid collecting or claiming query fees below a certain threshold
(e.g. below the cost of the two transactions), the following configuration
option can be used.

| Environment Variable | CLI Argument | Value |
| -------------------------------------------- | --------------------------------- | ----------------------------------------------------------------------------------------- |
| `INDEXER_AGENT_REBATE_CLAIM_THRESHOLD` | `--rebate-claim-threshold` | Minimum rebate (in GRT) received for an allocation to claim (Default: 200) |
| `INDEXER_AGENT_REBATE_CLAIM_BATCH_THRESHOLD` | `--rebate-claim-batch-threshold` | Minimum total rebates (in GRT) before a batched claim is processed (Default: 2000) |
| `INDEXER_AGENT_VOUCHER_EXPIRATION` | `--voucher-expiration` | Time (in seconds) to permanently delete vouchers with too few query fees (Default: 2160) |

### Indexer Service

| Environment Variable | CLI Argument | Value |
| --------------------------------------------- | ------------------------------- | ------------------------------------------------------------------------------- |
| `INDEXER_SERVICE_ETHEREUM` | `--ethereum` | An Arbitrum Sepolia node/provider |
| `INDEXER_SERVICE_ETHEREUM_NETWORK` | `--ethereum-network` | `arbitrum-sepolia` |
| `INDEXER_SERVICE_INDEXER_ADDRESS` | `--indexer-address` | Ethereum address of testnet indexer |
| `INDEXER_SERVICE_MNEMONIC` | `--mnemonic` | Ethereum mnemonic for testnet operator |
| `INDEXER_SERVICE_NETWORK_SUBGRAPH_DEPLOYMENT` | `--network-subgraph-deployment` | `QmT8UDGK7zKd2u2NQZwhLYHdA4KM55QsivkE3ouCuX6fEj` |
| `INDEXER_SERVICE_NETWORK_SUBGRAPH_ENDPOINT` | `--network-subgraph-endpoint` | `https://api.thegraph.com/subgraphs/name/graphprotocol/graph-network-arbitrum-sepolia` |
| `INDEXER_SERVICE_CLIENT_SIGNER_ADDRESS` | `--client-signer-address` | `0xe1EC4339019eC9628438F8755f847e3023e4ff9c` |

### Graph Node

| Environment Variable | CLI Argument | Value |
| -------------------- | ---------------- | ----------------------------------- |
| `ethereum` | `--ethereum-rpc` | `arbitrum-sepolia:...` |
| `ipfs` | `--ipfs` | `https://ipfs.network.thegraph.com` |

## Feature support

> This defines indexing & querying features which are experimental or not fully supported for indexing & query rewards and arbitration ([read more](../feature-support-matrix.md)).

| Subgraph Feature | Aliases | Implemented | Experimental | Query Arbitration | Indexing Arbitration | Indexing Rewards |
|--------------------------|------------------|-------------|--------------|-------------------|----------------------|------------------|
| **Core Features** | | | | | | |
| Full-text Search | | Yes | No | No | Yes | Yes |
| Non-Fatal Errors | | Yes | Yes | Yes | Yes | Yes |
| Grafting | | Yes | Yes | Yes | Yes | Yes |
| **Data Source Types** | | | | | | |
| eip155:* | * | Yes | No | No | No | No |
| eip155:1 | mainnet | Yes | No | Yes | Yes | Yes |
| eip155:100 | gnosis | Yes | No | Yes | Yes | Yes |
| near:* | * | Yes | Yes | No | No | No |
| cosmos:* | * | Yes | Yes | No | No | No |
| arweave:* | * | Yes | Yes | No | No | No |
| eip155:42161 | arbitrum-one | Yes | Yes | Yes | Yes | Yes |
| eip155:42220 | celo | Yes | Yes | Yes | Yes | Yes |
| eip155:43114 | avalanche | Yes | Yes | Yes | Yes | Yes |
| **Data Source Features** | | | | | | |
| ipfs.cat in mappings | | Yes | Yes | No | No | No |
| ENS | | Yes | Yes | No | No | No |
| File data sources: IPFS | | Yes | Yes | No | Yes | Yes |
| eip155:11155111 | sepolia | Yes | Yes | No | Yes | Yes |
| eip155:421614 | arbitrum-sepolia | Yes | Yes | No | Yes | Yes |
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
networkIdentifier: 'arbitrum-sepolia'
indexerOptions:
address: '?'
mnemonic: '?'
url: '?'
geoCoordinates: [118.2923, 36.5785]
defaultAllocationAmount: 1000
allocationManagementMode: 'oversight'
restakeRewards: true
poiDisputeMonitoring: true
poiDisputableEpochs: 3
voucherRedemptionThreshold: 100
voucherRedemptionBatchThreshold: 250
rebateClaimThreshold: 100
rebateClaimBatchThreshold: 250
gateway:
url: 'https://gateway-testnet-arbitrum.network.thegraph.com'
subgraphs:
maxBlockDistance: 60
freshnessSleepMilliseconds: 10000
networkSubgraph:
url: 'https://api.thegraph.com/subgraphs/name/graphprotocol/graph-network-arbitrum-sepolia'
deployment: 'QmT8UDGK7zKd2u2NQZwhLYHdA4KM55QsivkE3ouCuX6fEj'
epochSubgraph:
url: 'https://api.thegraph.com/subgraphs/name/graphprotocol/arbitrum-sepolia-ebo'
deployment: 'QmTpu2mVquoMpr4SWSM77nGkU3tcUS1Bhk1sVHpjDrAUAx'
networkProvider:
url: '?'
transactionMonitoring:
baseFeePerGasMax: 100
gasIncreaseTimeout: 90
gasIncreaseFactor: 1.5
maxTransactionAttempts: 20
dai:
contractAddress: '0x9e7e607afd22906f7da6f1ec8f432d6f244278be'
inject: true
34 changes: 34 additions & 0 deletions docs/networks/config-examples/sepolia-indexer-agent-config.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
networkIdentifier: 'sepolia'
indexerOptions:
address: '?'
mnemonic: '?'
url: '?'
geoCoordinates: [118.2923, 36.5785]
defaultAllocationAmount: 5000
allocationManagementMode: 'oversight'
restakeRewards: true
poiDisputeMonitoring: true
poiDisputableEpochs: 3
voucherRedemptionThreshold: 100
voucherRedemptionBatchThreshold: 250
rebateClaimThreshold: 100
rebateClaimBatchThreshold: 250
gateway:
url: 'https://gateway.testnet.thegraph.com'
subgraphs:
networkSubgraph:
url: 'https://api.thegraph.com/subgraphs/name/graphprotocol/graph-network-sepolia'
deployment: 'QmdwyUJ2GNAkSxLc3dRgFULf5fN1mZWYeQLjXsdowQcfTg'
epochSubgraph:
url: 'https://api.thegraph.com/subgraphs/name/graphprotocol/sepolia-epoch-block-oracle'
deployment: 'QmUXAKvt84bYpkctHgXqWBjq1YY7DaTCKfmxEh8w9Xxb5X'
networkProvider:
url: '?'
transactionMonitoring:
baseFeePerGasMax: 100
gasIncreaseTimeout: 90
gasIncreaseFactor: 1.5
maxTransactionAttempts: 20
dai:
contractAddress: '0x9e7e607afd22906f7da6f1ec8f432d6f244278be'
inject: true
Loading
Loading