Arbitrum L2 Migration Phase(testnet)

Maxim
3 min readMar 27, 2023

What I think is important to note

  1. Setting indexer stack in which you need to specify new RPS_THHN in L2 Arbitrum network and you can run a separate stack, but then you need a separate node or you need to stop the node on L1 and start on it.
  2. Transfer GRT tokens using the official bridge.arbitrum.io bridge from Goerli to Arbitrum Goerli, the transfer is quite fast and is described in great detail in the official MIPs assignment. GRT contract address for Arbitrum Goerli 0x5c946740441C12510a167B447B7dE565C20b9E3C.
  3. Next, the steps for stacking, operator binding, token self-delegation follow, which is also well described in the off-guide from the team
  4. Assigning an operator is easier for me through The Graph Explorer
    — Login with Metamask and select the `Arbitrum Goerli` network
    — Navigate to your settings page (click the profile dropdown at top right and select ⚙️ `Settings`)
    — Navigate to the `Operators` settings (click the `Operators` button)
    — Click `+` to add your operator wallet address
    — Follow the instructions to submit the transaction
  5. Information on how to install and use the indexer agent, service and CLI can be found in the official repository. There are NPM packages available, as well as Docker images. Make sure you use the latest releases for each component (at least 0.20.9) as some fixes and features required for Arbitrum have been added very recently. Existing tooling such as GraphOp’s Launchpad] and StakeSquid’s Docker setup are a great way of instantiating all of these services in a more automated manner. 👀 GraphOps has recently conducted a workshop on Launchpad, and more are on the way. All recordings will be made available here. Also, make sure you join `#kubernetes-launchpad` in The Graph’s Discord Server if you have questions. For general questions on using the Indexer toolkit, including StakeSquid’s Docker, please use either `#mips-testnet` or `#indexer-software`. Thanks to StakeSquid’s, used his Docker build for this.
  6. What to look for when setting up the indexer service and indexer agent: INDEXER_AGENT_ETHEREUM = https://goerli-rollup.arbitrum.io/rpc; INDEXER_AGENT_ETHEREUM_NETWORK = arbitrum-goerli; INDEXER_AGENT_NETWORK_SUBGRAPH_ENDPOINT = https://api.thegraph.com/subgraphs/name/graphprotocol/graph-network-arbitrum-goerli; INDEXER_AGENT_COLLECT_RECEIPTS_ENDPOINT= https://gateway-testnet-arbitrum.network.thegraph.com/collect-receipts; INDEXER_AGENT_EPOCH_SUBGRAPH_ENDPOINT = https://api.thegraph.com/subgraphs/name/juanmardefago/arb-goerli-epoch-block-oracle; INDEXER_SERVICE_ETHEREUM =https://goerli-rollup.arbitrum.io/rpc; INDEXER_SERVICE_ETHEREUM_NETWORK = arbitrum-goerli; INDEXER_SERVICE_NETWORK_SUBGRAPH_ENDPOINT = https://api.thegraph.com/subgraphs/name/graphprotocol/graph-network-arbitrum-goerli; INDEXER_SERVICE_CLIENT_SIGNER_ADDRESS = 0xac01B0b3B2Dc5D8E0D484c02c4d077C15C96a7b4; SERVER_PORT = 5432
  7. Set profile details delegation parameters on the Explorer On The Graph Explorer, click on the arrow next to your address on the top-right and select Settings. From the options on the left, select “Profile details”. Please upload an image and fill in all the values (it could be with dummy values if you prefer), then click Update Profile Details and confirm the transaction. Then on the left, choose “Delegation Parameters”. Set a value for the Indexing Reward Cut between 1 and 99%, and set another value for the Query Fee Cut, also between 1 and 99%. Optionally, choose a cooldown period, that is the minimum time you’d have to wait before updating these values again. Finally, click “Update Delegation Params” and confirm the transaction. This sets the number of indexing rewards and query fees that you keep, as an indexer, while the rest is distributed among your delegators. In mainnet / Arbitrum One, you can use these values to attract Delegators, increasing the amount of GRT you can allocate.
  8. Allocate to a Gnosis subgraph on Arbitrum Goerli:
    Connext NXTP v1 Gnosis Chain
graph indexer rules set QmWq1pmnhEvx25qxpYYj9Yp6E1xMKMVoUjXVQBxUJmreSe decisionBasis always allocationAmount <amount> allocationLifetime 4

--

--