# GraphOps Update September 2023

**URL:** <https://forum.thegraph.com/t/graphops-update-september-2023/4479>\
**Category:** Core Team Updates\
**Tags:** graphops\
**Created:** [September 4, 2023, 12:51pm UTC](https://forum.thegraph.com/t/graphops-update-september-2023/4479 "2023-09-04T12:51:36Z")\
**Posts on this page:** 1\
**Page:** 1

<div class="post-metadata">

**Author:** ![chris](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.thegraph.com/chris/32/657_2.png) [@chris](https://forum.thegraph.com/u/chris)\
**Post date:** [September 4, 2023, 12:51pm UTC](https://forum.thegraph.com/t/graphops-update-september-2023/4479/1 "2023-09-04T12:51:37Z")

</div>

## 🧑‍🚀 Executive Summary

[GraphOps](https://graphops.xyz) is excited to share the latest updates in our development efforts. We have released version `0.1.5` of [Subgraph Radio](https://github.com/graphops/subgraph-radio), which adds persistence, rate limiting and API support for upgrade intent messages. We also released `0.0.2` of [Graphcast CLI](https://github.com/graphops/graphcast-cli), improving the UX of sending upgrade intent messages for Subgraph Developers. For [Graphcast SDK](https://github.com/graphops/graphcast-sdk), we have introduced helpers for fetching peer and message counts, fixed support for Polygon subgraph deployments, and released version `0.4.2`. For Launchpad, we made a variety of releases to [Launchpad Charts](https://github.com/graphops/launchpad-charts) and [Launchpad Namespaces](https://github.com/graphops/launchpad-namespaces), tracking dependency updates. We also recorded a [Launchpad Quick Start workshop](https://www.youtube.com/watch?v=qC5KbhD3urc) and ran sessions of Launchpad Office Hours with the community. Our collaboration with Semiotic on the [Indexer Service rewrite](https://github.com/graphops/indexer-service-rs) is progressing, with a partial implementation of the paid query flow, as well as many other improvements. We’ve also extended entity field coverage for our [Graph Network Substreams](https://github.com/graphops/graph-network-substreams) implementation. Finally, [Indexer Office Hours](https://www.youtube.com/channel/UCQ7G_cCufIVUdUUUf-jdoVA) continues to be a hotbed of Indexer discussion and activity, and we are grateful to Indexers for showing up each week and giving their views. Thank you!

Happy September everyone ✨

## 🎉 Looking Back (what was delivered)

### Subgraph Radio ([Documentation](https://docs.graphops.xyz/graphcast/radios/subgraph-radio), [Docker Image](https://github.com/graphops/poi-radio/pkgs/container/subgraph-radio), [Radio Crate](https://crates.io/crates/subgraph-radio), [Radio Source](https://github.com/graphops/subgraph-radio))

- Added peer and messages received counts as Prometheus metrics to Subgraph Radio
- Added persistence and GraphQL API endpoint for `UpgradeIntent` messages to Subgraph Radio
- Added rate limits for subgraph upgrade presyncing, with the defaults allowing a given subgraph deployment to be upgraded once per day
- Added new `indexing-status` command to Graphcast CLI, which allows a Subgraph Developer to easily query the sync progress of their new deployment after sending an `UpgradeIntent` message
- Improved Grafana dashboard user experience by allowing user to configure datasource when importing
- One-shot CLI has been renamed to [Graphcast CLI](https://github.com/graphops/graphcast-cli) for clarity and consistency
- Versions `0.1.4` and `0.1.5` of Subgraph Radio have been released
- Released version `0.0.2` of Graphcast CLI

> **Subgraph Radio Development Activity**
>
> - [Subgraph Radio](https://github.com/graphops/subgraph-radio) pull requests merged:
> - [PR #47](https://github.com/graphops/subgraph-radio/pull/47): Removed unnecessary use of new and build for upgradeIntent
> - [PR #49](https://github.com/graphops/subgraph-radio/pull/49): Introduced peer count and received message metrics
> - [PR #50](https://github.com/graphops/subgraph-radio/pull/50): Improved Grafana dashboard user experience by removing active overrides and updating the dashboard design
> - [PR #51](https://github.com/graphops/subgraph-radio/pull/51): Moved message processing to use timeouts for better efficiency
> - [PR #52](https://github.com/graphops/subgraph-radio/pull/52): Implemented persistence and cleanup of upgrade intent messages, introduced ratelimiting, and improved the API
> - [PR #54](https://github.com/graphops/subgraph-radio/pull/54), [PR #57](https://github.com/graphops/subgraph-radio/pull/57): Released versions 0.1.4 and 0.1.5
> - [PR #55](https://github.com/graphops/subgraph-radio/pull/55): Added local attestation without matching with remote
> 
> - [Graphcast CLI](https://github.com/graphops/graphcast-cli) pull requests merged:
> - [PR #2](https://github.com/graphops/graphcast-cli/pull/2): Updated Labels workflow
> - [PR #5](https://github.com/graphops/graphcast-cli/pull/5): Rescoped CLI for sending UpgradeIntentMessage
> - [PR #6](https://github.com/graphops/graphcast-cli/pull/6): Used the latest SDK with query fix
> - [PR #9](https://github.com/graphops/graphcast-cli/pull/9): Renamed `one-shot-cli` to `graphcast-cli`
> - [PR #10](https://github.com/graphops/graphcast-cli/pull/10): Added `upgrade-presync` subcommand
> - [PR #11](https://github.com/graphops/graphcast-cli/pull/11): Added status reqwest timeout and documentation updates
> - [PR #12](https://github.com/graphops/graphcast-cli/pull/12): Released version 0.0.2

### Graphcast SDK ([Documentation](https://docs.graphops.xyz/graphcast/intro), [SDK Crate](https://crates.io/crates/graphcast-sdk), [SDK Source](https://github.com/graphops/graphcast-sdk))

- Introduced helpers for fetching peer and message counts
- Fixed support for Polygon subgraph deployments
- Released version `0.4.2` of the SDK
- Various code improvements and bug fixes

> **Graphcast SDK Development Activity**
>
> - [Graphcast SDK](https://github.com/graphops/graphcast-sdk) pull requests merged:
> - [PR #270](https://github.com/graphops/graphcast-sdk/pull/270): Replaced Polygon with Matic
> - [PR #271](https://github.com/graphops/graphcast-sdk/pull/271): Resolved for latest deployment hash instead of a vec
> - [PR #272](https://github.com/graphops/graphcast-sdk/pull/272): Moved message channel and re-exported Waku message type
> - [PR #273](https://github.com/graphops/graphcast-sdk/pull/273): Introduced helper functions for peer node data
> - [PR #274](https://github.com/graphops/graphcast-sdk/pull/274): Fixed graph account owned current version hash query
> - [PR #276](https://github.com/graphops/graphcast-sdk/pull/276): Fixed discv5 toggle
> - [PR #278](https://github.com/graphops/graphcast-sdk/pull/278): Released version 0.4.2

### Launchpad ([Documentation](https://docs.graphops.xyz/launchpad/intro), [Starter](https://github.com/graphops/launchpad-starter), [Charts](https://github.com/graphops/launchpad-charts), [Namespaces](https://github.com/graphops/launchpad-namespaces))

- Published a [workshop video](https://www.youtube.com/watch?v=qC5KbhD3urc) running through the [Launchpad Quickstart](https://docs.graphops.xyz/launchpad/quick-start)
- We ran two Launchpad Office Hours sessions with the Indexer community, discussing updates to Launchpad, as well as Indexer requirements for the stack, and how to get started with Kubernetes
- We added [more documentation](https://github.com/graphops/docs/pull/73), covering different ways of using Launchpad (with starter, with helmfile, without helmfile) as well as our policy for Supported Namespaces
- Proxyd deployments are now configured to track node consensus and intelligently route requests by default
- Fixed Grafana dashboards that are provisioned in the `monitoring` namespace
- Various releases of Charts and Namespaces to track latest dependency versions
- Updated Launchpad Starter linux dependency script

> **Launchpad Development Activity**
>
> - [Launchpad Starter](https://github.com/graphops/launchpad-starter) pull requests merged:
> - [PR #32](https://github.com/graphops/launchpad-starter/pull/32): Added the option to bypass CRD issues with the --skip-diff-on-install flag
> - [PR #33](https://github.com/graphops/launchpad-starter/pull/33): Modified the apply command to only skip on install with the --skip-on-install flag
> - [PR #34](https://github.com/graphops/launchpad-starter/pull/34): Updated launchpad Linux dependencies task, added apt update, and fixed consistency issues and k9s version compatibility
> 
> - [Launchpad Charts](https://github.com/graphops/launchpad-charts) pull requests merged:
> - [PR #109](https://github.com/graphops/launchpad-charts/pull/109): Updated graph dependencies, datasource, and package versions
> - [PR #111](https://github.com/graphops/launchpad-charts/pull/111): Removed overwriting of default paths for k0s and updated README for the chart
> - [PR #112](https://github.com/graphops/launchpad-charts/pull/112): Updated chart version for new tag
> - [PR #113](https://github.com/graphops/launchpad-charts/pull/113): Updated proxyd to version 4 and made it consensus-aware
> - [PR #114](https://github.com/graphops/launchpad-charts/pull/114): Added generic-app chart
> - [PR #117](https://github.com/graphops/launchpad-charts/pull/117): Updated nimbus dependencies
> - [PR #118](https://github.com/graphops/launchpad-charts/pull/118): Fixed issues with release triggers and set releases as drafts
> - [PR #119](https://github.com/graphops/launchpad-charts/pull/119): Released nimbus 0.4.1
> - [PR #120](https://github.com/graphops/launchpad-charts/pull/120): Fixed missing jobs key in workflow
> - [PR #121](https://github.com/graphops/launchpad-charts/pull/121): Released graph-network-indexer 0.2.1
> - [PR #122](https://github.com/graphops/launchpad-charts/pull/122): Released graph-node 0.2.1
> 
> - [Launchpad Namespaces](https://github.com/graphops/launchpad-namespaces) pull requests merged:
> - [PR #71](https://github.com/graphops/launchpad-namespaces/pull/71), [PR #73](https://github.com/graphops/launchpad-namespaces/pull/73): Updated graph dependencies
> - [PR #76](https://github.com/graphops/launchpad-namespaces/pull/76): Updated monitoring dependencies
> - [PR #77](https://github.com/graphops/launchpad-namespaces/pull/77): Added base layer label to sealed-secrets
> - [PR #78](https://github.com/graphops/launchpad-namespaces/pull/78): Updated ethereum dependencies
> - [PR #79](https://github.com/graphops/launchpad-namespaces/pull/79): Updated openebs-rawfile-localpv chart
> - [PR #80](https://github.com/graphops/launchpad-namespaces/pull/80): Adjusted proxyd service endpoint values
> - [PR #82](https://github.com/graphops/launchpad-namespaces/pull/82): Updated helm dependencies for datasource package
> - [PR #84](https://github.com/graphops/launchpad-namespaces/pull/84): Added missing arguments to erigon
> - [PR #86](https://github.com/graphops/launchpad-namespaces/pull/86): Updated securityContext and default rules

### Indexer Components ([Indexer Service Rewrite](https://github.com/graphops/indexer-service-rs))

- Introduced network query with GraphQL and variables support
- Improved efficiency by moving graph-node instance to main
- Various code organization and performance improvements

> **Indexer Components Development Activity**
>
> - [Indexer Service RS](https://github.com/graphops/indexer-service-rs) pull requests merged:
> - [PR #24](https://github.com/graphops/indexer-service-rs/pull/24): Implemented partial paid query flow
> - [PR #27](https://github.com/graphops/indexer-service-rs/pull/27): Introduced network query with GraphQL and variables support
> - [PR #28](https://github.com/graphops/indexer-service-rs/pull/28): Moved graph-node instance to main to improve efficiency
> - [PR #30](https://github.com/graphops/indexer-service-rs/pull/30): Fixed trailing `/` in subgraphs\_base\_url, resolved issue with graph-node response JSON escaping
> - [PR #31](https://github.com/graphops/indexer-service-rs/pull/31): Cleaned modules and moved generic type to improve code organization
> - [PR #32](https://github.com/graphops/indexer-service-rs/pull/32): Introduced server logging middleware
> - [PR #33](https://github.com/graphops/indexer-service-rs/pull/33): Added slow and network rate limiter features
> - [PR #34](https://github.com/graphops/indexer-service-rs/pull/34): Moved SubgraphDeploymentID tests to types.rs
> - [PR #35](https://github.com/graphops/indexer-service-rs/pull/35): Refactored clap deserialize indexer\_address into Address and introduced custom deserialize for SubgraphDeploymentID
> - [PR #36](https://github.com/graphops/indexer-service-rs/pull/36): Improved Rust cache, used official cargo-llvm-cov install action in CI
> - [PR #37](https://github.com/graphops/indexer-service-rs/pull/37): Split network subgraphs query to NetworkSubgraph for better code structure
> - [PR #38](https://github.com/graphops/indexer-service-rs/pull/38): Added attestation signers to allocation monitor
> - [PR #39](https://github.com/graphops/indexer-service-rs/pull/39): Recorded query metrics
> - [PR #42](https://github.com/graphops/indexer-service-rs/pull/42): Refactored `AttestationSigners`, splitting it off

### Network Operations ([Graph Network Subgraph](https://github.com/graphprotocol/graph-network-subgraph), [Graph Network Substreams](https://github.com/graphops/graph-network-substreams))

- Added new field coverage to `Allocation` and `Epoch` entities, including indexing rewards, query fees, creator and `activeForIndexer` fields

> **Network Operations Development Activity**
>
> - [Graph Network Substreams](https://github.com/graphops/graph-network-substreams) pull requests merged:
> - [PR #55](https://github.com/graphops/graph-network-substreams/pull/55), [PR #56](https://github.com/graphops/graph-network-substreams/pull/56), [PR #57](https://github.com/graphops/graph-network-substreams/pull/57): Added various features to the allocation and epoch entities, including indexing rewards, query fees, creator and activeForIndexer fields, and version updates.

### Ecosystem Relations

- [Recordings](https://www.youtube.com/channel/UCQ7G_cCufIVUdUUUf-jdoVA) and [agendas](https://graphops.notion.site/Indexer-Office-Hours-952e0b50a65144768aab922e2c9d102a) for Indexer Office Hours are available. Follow updates on Twitter [@TheGraphIOH](https://twitter.com/TheGraphIOH).

## 🚀 Looking Ahead (upcoming priorities)

- Graphcast
  - Release comprehensive workshop video covering running Subgraph Radio as an Indexer
  - Improve documentation for Subgraph Developers using Upgrade Presync functionality
  - Handle system signals better for more graceful shutdown
  - Continue work on `graphcast-web`, a library for interacting with Graphcast Network from the web browser
  - Debug observed failures in Listener Radio

- Launchpad
  - Continue to track, test and release dependency updates
  - Improve our documentation, particularly for provisioning a Kubernetes cluster

- Indexer Components
  - Continue with Indexer Service rewrite and Scalar TAP integration

- Network Operations
  - Implement Indexer Management and Cost Model Servers

- Ecosystem Relations
  - Please join the community for Indexer Office Hours on Tuesday every week at 6pm UTC in the [Graph Protocol Discord](https://thegraph.com/discord)
  - Please join the community for Launchpad Office Hours on Wednesday every second week at 5pm UTC in the [Graph Protocol Discord](https://thegraph.com/discord)
