Skip to content

Commit

Permalink
Merge pull request #98 from perpetual-protocol/fix/satsuma-missing-ev…
Browse files Browse the repository at this point in the history
…ents

We're about to deprecate self-hosted graph node
  • Loading branch information
vinta committed Jun 21, 2023
2 parents 83b2c0b + 50014ff commit 37269cf
Show file tree
Hide file tree
Showing 6 changed files with 5 additions and 121 deletions.
42 changes: 1 addition & 41 deletions .github/workflows/deploy-optimism-goerli.yml
Original file line number Diff line number Diff line change
Expand Up @@ -26,48 +26,8 @@ jobs:
npx graph auth --product hosted-service ${{ secrets.THE_GRAPH_ACCESS_TOKEN }}
npm run deploy-the-graph:optimism-goerli
deploy-self-hosted-cluster:
runs-on: ubuntu-latest
environment: optimism-goerli
steps:
- name: Checkout
uses: actions/checkout@v3

- name: Set up Node.js
uses: actions/setup-node@v3
with:
node-version: "16"

- name: Install
run: npm ci

- name: Configure AWS Credentials - aws eks update-kubeconfig
uses: aws-actions/configure-aws-credentials@v1
with:
aws-access-key-id: "${{ secrets.AWS_SUBGRAPH_DEPLOYER_ACCESS_KEY_ID }}"
aws-secret-access-key: "${{ secrets.AWS_SUBGRAPH_DEPLOYER_SECRET_ACCESS_KEY }}"
aws-region: ap-northeast-1

- name: Setup kubeconfig
env:
AWS_REGION: ap-northeast-1
AWS_EKS_CLUSTER: perp-staging
run: |
aws eks --region $AWS_REGION update-kubeconfig --name $AWS_EKS_CLUSTER
# https://github.com/aws/aws-cli/issues/6920
- name: Fix invalid apiVersion client.authentication.k8s.io/v1alpha1
uses: azure/setup-kubectl@v2.0
with:
version: "v1.23.6"

- name: Deploy to Self-hosted Graph Node
run: |
kubectl port-forward service/graph-node 8020:8020 &
npm run deploy-self-hosted:optimism-goerli
notify:
needs: [deploy-the-graph, deploy-self-hosted-cluster]
needs: [deploy-the-graph]
runs-on: ubuntu-latest
steps:
- name: Send message to Discord
Expand Down
42 changes: 1 addition & 41 deletions .github/workflows/deploy-optimism.yml
Original file line number Diff line number Diff line change
Expand Up @@ -26,46 +26,6 @@ jobs:
npx graph auth --product hosted-service ${{ secrets.THE_GRAPH_ACCESS_TOKEN }}
npm run deploy-the-graph:optimism
deploy-self-hosted:
runs-on: ubuntu-latest
environment: optimism
steps:
- name: Checkout
uses: actions/checkout@v3

- name: Set up Node.js
uses: actions/setup-node@v3
with:
node-version: "16"

- name: Install
run: npm ci

- name: Configure AWS Credentials - aws eks update-kubeconfig
uses: aws-actions/configure-aws-credentials@v1
with:
aws-access-key-id: "${{ secrets.AWS_SUBGRAPH_DEPLOYER_ACCESS_KEY_ID }}"
aws-secret-access-key: "${{ secrets.AWS_SUBGRAPH_DEPLOYER_SECRET_ACCESS_KEY }}"
aws-region: ap-southeast-1

- name: Setup kubeconfig
env:
AWS_REGION: ap-southeast-1
AWS_EKS_CLUSTER: perp-production
run: |
aws eks --region $AWS_REGION update-kubeconfig --name $AWS_EKS_CLUSTER
# https://github.com/aws/aws-cli/issues/6920
- name: Fix invalid apiVersion client.authentication.k8s.io/v1alpha1
uses: azure/setup-kubectl@v2.0
with:
version: "v1.23.6"

- name: Deploy to Self-hosted Graph Node Cluster
run: |
kubectl port-forward service/graph-node-cluster-index 8020:8020 &
npm run deploy-self-hosted:optimism
deploy-satsuma:
runs-on: ubuntu-latest
environment: optimism
Expand All @@ -88,7 +48,7 @@ jobs:
SATSUMA_DEPLOY_KEY: "${{ secrets.SATSUMA_DEPLOY_KEY }}"

notify:
needs: [deploy-the-graph, deploy-self-hosted, deploy-satsuma]
needs: [deploy-the-graph, deploy-satsuma]
runs-on: ubuntu-latest
steps:
- name: Send message to Discord
Expand Down
21 changes: 1 addition & 20 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -21,19 +21,6 @@
- WebSocket: `wss://api.thegraph.com/subgraphs/name/perpetual-protocol/perpetual-v2-optimism-goerli`
- Healthcheck: `https://api.thegraph.com/index-node/graphql`

### Self-hosted Graph Node

- Optimism
- Playground: https://thegraph-api.perp.fi/subgraphs/name/perpetual-protocol/perpetual-v2-optimism/graphql
- HTTP: `https://thegraph-api.perp.fi/subgraphs/name/perpetual-protocol/perpetual-v2-optimism`
- WebSocket: `wss://thegraph-ws.perp.fi/subgraphs/name/perpetual-protocol/perpetual-v2-optimism`
- Healthcheck: `https://thegraph-hc.perp.fi/graphql`
- Optimism Goerli
- Playground: https://subgraph-api.perp.fi/subgraphs/name/perpetual-protocol/perpetual-v2-optimism-goerli/graphql
- HTTP: `https://subgraph-api.perp.fi/subgraphs/name/perpetual-protocol/perpetual-v2-optimism-goerli`
- WebSocket: `wss://subgraph-ws.perp.fi/subgraphs/name/perpetual-protocol/perpetual-v2-optimism-goerli`
- Healthcheck: `https://subgraph-hc.perp.fi/graphql`

### Satsuma

- Optimism
Expand Down Expand Up @@ -66,20 +53,14 @@ npx graph auth --product hosted-service <THE_GRAPH_ACCESS_TOKEN>
# create a subgraph in the graph dashboard first (need GitHub admin permission)
npm run deploy-the-graph:optimism

# deploy to Self-hosted Graph Node
kubectl port-forward service/graph-node-cluster-index 8020:8020
npx graph create perpetual-protocol/perpetual-v2-optimism --node http://127.0.0.1:8020
npm run deploy-self-hosted:optimism

# deploy to Satsuma
npm run codegen-satsuma:optimism
npx graph deploy perpetual-v2-optimism --version-label $(git rev-parse --short HEAD) --node https://app.satsuma.xyz/api/subgraphs/deploy --ipfs https://api.thegraph.com/ipfs/ --deploy-key <SATSUMA_DEPLOY_KEY>
```

### Post Deploy

Wait until all three subgraphs are synced, then click "Promote to Live" button on the newly deployed version to
enable it on Satsuma dashboard. Otherwise, clients might get different results from Satsuma, The Graph, and self-hosted.
Wait until all three subgraphs are synced, then click "Promote to Live" button on the newly deployed version to enable it on Satsuma dashboard. Otherwise, clients might get different results from The Graph and Satsuma.

---

Expand Down
6 changes: 0 additions & 6 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,6 @@
"generate-manifest:optimism-kovan-dev2": "npm run prepare:optimism-kovan-dev2 && mustache configs/optimismKovanDev2.json subgraph.template.yaml > subgraph.yaml",
"generate-manifest:optimism-goerli": "npm run prepare:optimism-goerli && mustache configs/optimismGoerli.json subgraph.template.yaml > subgraph.yaml",
"generate-manifest:optimism": "npm run prepare:optimism && mustache configs/optimism.json subgraph.template.yaml > subgraph.yaml",
"generate-manifest-self-hosted:optimism": "npm run prepare:optimism && jq --raw-output 'if (.graft.baseForSelfHosted) then (.graft.base = .graft.baseForSelfHosted) else del(.graft) end' configs/optimism.json | mustache - subgraph.template.yaml > subgraph.yaml",
"generate-manifest-satsuma:optimism": "npm run prepare:optimism && jq --raw-output 'if (.graft.baseForSatsuma) then (.graft.base = .graft.baseForSatsuma) else del(.graft) end' configs/optimism.json | mustache - subgraph.template.yaml > subgraph.yaml",
"generate-constants:optimism-kovan-dev1": "npm run prepare:optimism-kovan-dev1 && mustache configs/optimismKovanDev1.json src/constants/index.ts.template > src/constants/index.ts",
"generate-constants:optimism-kovan-dev2": "npm run prepare:optimism-kovan-dev2 && mustache configs/optimismKovanDev2.json src/constants/index.ts.template > src/constants/index.ts",
Expand All @@ -26,16 +25,11 @@
"codegen:optimism-kovan-dev2": "npm run generate-manifest:optimism-kovan-dev2 && npm run generate-constants:optimism-kovan-dev2 && graph codegen",
"codegen:optimism-goerli": "npm run generate-manifest:optimism-goerli && npm run generate-constants:optimism-goerli && graph codegen",
"codegen:optimism": "npm run generate-manifest:optimism && npm run generate-constants:optimism && graph codegen",
"codegen-self-hosted:optimism": "npm run generate-manifest-self-hosted:optimism && npm run generate-constants:optimism && graph codegen",
"codegen-satsuma:optimism": "npm run generate-manifest-satsuma:optimism && npm run generate-constants:optimism && graph codegen",
"deploy-the-graph:optimism-kovan-dev1": "npm run codegen:optimism-kovan-dev1 && graph deploy --product hosted-service perpetual-protocol/perpetual-v2-optimism-kovan-dev1",
"deploy-the-graph:optimism-kovan-dev2": "npm run codegen:optimism-kovan-dev2 && graph deploy --product hosted-service perpetual-protocol/perpetual-v2-optimism-kovan-dev2",
"deploy-the-graph:optimism-goerli": "npm run codegen:optimism-goerli && graph deploy --product hosted-service perpetual-protocol/perpetual-v2-optimism-goerli",
"deploy-the-graph:optimism": "npm run codegen:optimism && graph deploy --product hosted-service perpetual-protocol/perpetual-v2-optimism",
"deploy-self-hosted:optimism-kovan-dev1": "npm run codegen:optimism-kovan-dev1 && graph deploy --version-label $(git rev-parse --short HEAD) --node http://127.0.0.1:8020 --ipfs https://api.thegraph.com/ipfs/ perpetual-protocol/perpetual-v2-optimism-kovan-dev1",
"deploy-self-hosted:optimism-kovan-dev2": "npm run codegen:optimism-kovan-dev2 && graph deploy --version-label $(git rev-parse --short HEAD) --node http://127.0.0.1:8020 --ipfs https://api.thegraph.com/ipfs/ perpetual-protocol/perpetual-v2-optimism-kovan-dev2",
"deploy-self-hosted:optimism-goerli": "npm run codegen:optimism-goerli && graph deploy --version-label $(git rev-parse --short HEAD) --node http://127.0.0.1:8020 --ipfs https://api.thegraph.com/ipfs/ perpetual-protocol/perpetual-v2-optimism-goerli",
"deploy-self-hosted:optimism": "npm run codegen:optimism && graph deploy --version-label $(git rev-parse --short HEAD) --node http://127.0.0.1:8020 --ipfs https://api.thegraph.com/ipfs/ perpetual-protocol/perpetual-v2-optimism",
"deploy-satsuma:optimism": "npm run codegen-satsuma:optimism && graph deploy --version-label $(git rev-parse --short HEAD) --node https://app.satsuma.xyz/api/subgraphs/deploy --ipfs https://ipfs.satsuma.xyz --deploy-key $SATSUMA_DEPLOY_KEY perpetual-v2-optimism",
"health-check": "ts-node ./scripts/healthCheck.ts",
"list-subgraph-ids": "ts-node ./scripts/listSubgraphIds.ts"
Expand Down
12 changes: 1 addition & 11 deletions scripts/listSubgraphIds.ts
Original file line number Diff line number Diff line change
Expand Up @@ -12,23 +12,13 @@ class Main {
name: "perpetual-protocol/perpetual-v2-optimism",
endpoint: "https://api.thegraph.com/index-node/graphql",
},
{
label: "self-hosted",
name: "perpetual-protocol/perpetual-v2-optimism",
endpoint: "https://thegraph-hc.perp.fi/graphql",
},
],
goerli: [
{
label: "official",
name: "perpetual-protocol/perpetual-v2-optimism-goerli",
endpoint: "https://api.thegraph.com/index-node/graphql",
},
{
label: "self-hosted",
name: "perpetual-protocol/perpetual-v2-optimism-goerli",
endpoint: "https://subgraph-hc.perp.fi/graphql",
},
],
}

Expand All @@ -55,7 +45,7 @@ class Main {

private createQuery(queryName: string, subgraphName: string) {
return `{
${queryName}(subgraphName: "${subgraphName}")
${queryName}(subgraphName: "${subgraphName}")
{ subgraph }
}`
}
Expand Down
3 changes: 1 addition & 2 deletions scripts/updateConfigs.ts
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@ async function main(): Promise<void> {
...MetadataOptimismPeriphery,
...{ version: DependenciesOptimismPeriphery["@perp/curie-periphery-contract"] },
},
// NOTE: subgraph id exists in The Graph might not exist in self-hosted graph node or Satsuma,
// NOTE: subgraph id exists in The Graph might not exist in Satsuma,
// so we might need to set different graft.base
// disable graft if you need to do a full re-index
// To fetch the subgraph IDs:
Expand All @@ -50,7 +50,6 @@ async function main(): Promise<void> {
// -> find "Deployment ID"
// graft: {
// base: "QmW6xjaqSA37ZxsQ9WLp5fqReHpgXrridcWrk4DcpMqGa2",
// baseForSelfHosted: "QmW6xjaqSA37ZxsQ9WLp5fqReHpgXrridcWrk4DcpMqGa2",
// baseForSatsuma: "QmW6xjaqSA37ZxsQ9WLp5fqReHpgXrridcWrk4DcpMqGa2",
// // The block number to restore and start re-syncing from.
// block: 53189383,
Expand Down

0 comments on commit 37269cf

Please sign in to comment.