From b7af0c5915aec0dfb1917d32ce750cb5d694943b Mon Sep 17 00:00:00 2001 From: betterclever Date: Wed, 29 Mar 2023 21:11:44 +0530 Subject: [PATCH 01/13] mainnet alt config --- .gitignore | 2 +- docker/firecosmos.dockerfile | 14 + .../config-graph/config-graph-node.toml | 19 ++ graph-node-alternate/config-graph/config.toml | 6 + .../config-graph/firehose-merger.yml | 9 + .../config-graph/firehose-node.json | 14 + .../config-graph/firehose-reader.yml | 15 ++ .../config-graph/firehose-relayer.yml | 13 + .../config-graph/firehose.yml | 15 ++ graph-node-alternate/dummy-configmap.yaml | 33 +++ graph-node-alternate/firehose-firehose.yaml | 86 ++++++ graph-node-alternate/firehose-merger.yaml | 80 ++++++ graph-node-alternate/firehose-node.yaml | 252 ++++++++++++++++++ graph-node-alternate/firehose-reader.yaml | 222 +++++++++++++++ graph-node-alternate/firehose-relayer.yaml | 84 ++++++ graph-node-alternate/graph-node.yaml | 180 +++++++++++++ graph-node-alternate/hasura.yaml | 57 ++++ graph-node-alternate/ipfs-node.yaml | 60 +++++ .../ipfs-persistent-volume.yaml | 11 + graph-node-alternate/kustomization.yaml | 25 ++ .../scripts/init-firehose-node.sh | 126 +++++++++ graph-node/firehose-node.yaml | 23 ++ networks/mainnet/configmap.yaml | 4 +- networks/mainnet/kustomization.yaml | 2 +- 24 files changed, 1348 insertions(+), 4 deletions(-) create mode 100644 docker/firecosmos.dockerfile create mode 100644 graph-node-alternate/config-graph/config-graph-node.toml create mode 100644 graph-node-alternate/config-graph/config.toml create mode 100644 graph-node-alternate/config-graph/firehose-merger.yml create mode 100644 graph-node-alternate/config-graph/firehose-node.json create mode 100644 graph-node-alternate/config-graph/firehose-reader.yml create mode 100644 graph-node-alternate/config-graph/firehose-relayer.yml create mode 100644 graph-node-alternate/config-graph/firehose.yml create mode 100644 graph-node-alternate/dummy-configmap.yaml create mode 100644 graph-node-alternate/firehose-firehose.yaml create mode 100644 graph-node-alternate/firehose-merger.yaml create mode 100644 graph-node-alternate/firehose-node.yaml create mode 100644 graph-node-alternate/firehose-reader.yaml create mode 100644 graph-node-alternate/firehose-relayer.yaml create mode 100644 graph-node-alternate/graph-node.yaml create mode 100644 graph-node-alternate/hasura.yaml create mode 100644 graph-node-alternate/ipfs-node.yaml create mode 100644 graph-node-alternate/ipfs-persistent-volume.yaml create mode 100644 graph-node-alternate/kustomization.yaml create mode 100644 graph-node-alternate/scripts/init-firehose-node.sh diff --git a/.gitignore b/.gitignore index b291a07..8990dbd 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,3 @@ graph-node-alternate/ networks/testing-alt -.idea/ \ No newline at end of file +.idea/ diff --git a/docker/firecosmos.dockerfile b/docker/firecosmos.dockerfile new file mode 100644 index 0000000..1c17689 --- /dev/null +++ b/docker/firecosmos.dockerfile @@ -0,0 +1,14 @@ +FROM alpine AS release + +RUN apk add wget +RUN apk add bash +RUN wget https://github.com/graphprotocol/firehose-cosmos/releases/download/v0.6.0/firecosmos_linux_amd64 -O firecosmos + +# make executable +RUN chmod +x firecosmos + +# move firecosmos to bin +RUN mv firecosmos /usr/local/bin + +# set as cmd +# CMD ["firecosmos"] \ No newline at end of file diff --git a/graph-node-alternate/config-graph/config-graph-node.toml b/graph-node-alternate/config-graph/config-graph-node.toml new file mode 100644 index 0000000..88d694d --- /dev/null +++ b/graph-node-alternate/config-graph/config-graph-node.toml @@ -0,0 +1,19 @@ +[deployment] +[[deployment.rule]] +shard = "primary" +indexers = [ "index_node_cosmos_1" ] + +[store] +[store.primary] +connection = "postgresql://POSTGRES_USER:POSTGRES_PASSWORD@POSTGRES_HOST:POSTGRES_PORT/POSTGRES_DB" +pool_size = 10 + +[chains] +ingestor = "block_ingestor_node" + +[chains.persistence] +shard = "primary" +protocol = "cosmos" +provider = [ + { label = "persistence", details = { type = "firehose", url = "http://FIREHOSE_HOST:FIREHOSE_PORT" }}, +] \ No newline at end of file diff --git a/graph-node-alternate/config-graph/config.toml b/graph-node-alternate/config-graph/config.toml new file mode 100644 index 0000000..5c0582a --- /dev/null +++ b/graph-node-alternate/config-graph/config.toml @@ -0,0 +1,6 @@ +####################################################### +### Extractor Configuration Options ### +####################################################### +[extractor] +enabled = true +output_file = "stdout" \ No newline at end of file diff --git a/graph-node-alternate/config-graph/firehose-merger.yml b/graph-node-alternate/config-graph/firehose-merger.yml new file mode 100644 index 0000000..a77d925 --- /dev/null +++ b/graph-node-alternate/config-graph/firehose-merger.yml @@ -0,0 +1,9 @@ +start: + args: + - merger + flags: + # Common flags + common-first-streamable-block: 0 + common-live-blocks-addr: 'http://firehose-reader-0.alt-setup-testing.pod.cluster.local:9000' + common-one-block-store-url: 's3://sgp1.digitaloceanspaces.com/dexter-zone/one-blocks?region=us-east-1' + common-merged-blocks-store-url: 's3://sgp1.digitaloceanspaces.com/dexter-zone/merged-blocks?region=us-east-1' \ No newline at end of file diff --git a/graph-node-alternate/config-graph/firehose-node.json b/graph-node-alternate/config-graph/firehose-node.json new file mode 100644 index 0000000..f5a7431 --- /dev/null +++ b/graph-node-alternate/config-graph/firehose-node.json @@ -0,0 +1,14 @@ +{ + "firehose_nodes": [ + { + "name": "firehose-node-1", + "type": "local", + "address": "persistence1y3x3uaqnnlhulway8g5dvm4erpd5r4f0d29hn5", + "pubkey": { + "@type": "/cosmos.crypto.secp256k1.PubKey", + "key": "Agn5q1U2vLjdAhg4dcKuUKm3ZwdmrrFmVnlnqsqkXoIA" + }, + "mnemonic": "tag apart multiply food bleak isolate describe stand guide field session design cable combine excess shrug abuse pause course ketchup umbrella program labor ripple" + } + ] +} diff --git a/graph-node-alternate/config-graph/firehose-reader.yml b/graph-node-alternate/config-graph/firehose-reader.yml new file mode 100644 index 0000000..dbf450a --- /dev/null +++ b/graph-node-alternate/config-graph/firehose-reader.yml @@ -0,0 +1,15 @@ +start: + args: + - reader + flags: + # Common flags + common-first-streamable-block: 0 + + # reader specific flags + reader-mode: node + reader-node-path: /usr/bin/persistenceCore + reader-node-args: start --x-crisis-skip-assert-invariants --home /persistencecore + reader-node-logs-filter: "module=(p2p|pex|consensus|x/bank|x/wasm)" + + common-one-block-store-url: 's3://sgp1.digitaloceanspaces.com/dexter-zone/one-blocks?region=us-east-1' + common-merged-blocks-store-url: 's3://sgp1.digitaloceanspaces.com/dexter-zone/merged-blocks?region=us-east-1' \ No newline at end of file diff --git a/graph-node-alternate/config-graph/firehose-relayer.yml b/graph-node-alternate/config-graph/firehose-relayer.yml new file mode 100644 index 0000000..d4efaab --- /dev/null +++ b/graph-node-alternate/config-graph/firehose-relayer.yml @@ -0,0 +1,13 @@ +start: + args: + - relayer + flags: + # Common flags + common-first-streamable-block: 0 + + # relayer specific flags + relayer-source: + - firehose-reader-0.alt-setup-testing.pod.cluster.local:9000 + - firehose-reader-1.alt-setup-testing.pod.cluster.local:9000 + - firehose-reader-2.alt-setup-testing.pod.cluster.local:9000 + diff --git a/graph-node-alternate/config-graph/firehose.yml b/graph-node-alternate/config-graph/firehose.yml new file mode 100644 index 0000000..336896a --- /dev/null +++ b/graph-node-alternate/config-graph/firehose.yml @@ -0,0 +1,15 @@ +start: + args: + - reader + - merger + - relayer + - firehose + flags: + # Common flags + common-first-streamable-block: 0 + + # reader specific flags + reader-mode: node + reader-node-path: /usr/bin/persistenceCore + reader-node-args: start --x-crisis-skip-assert-invariants --home /persistencecore + reader-node-logs-filter: "module=(p2p|pex|consensus|x/bank|x/wasm)" \ No newline at end of file diff --git a/graph-node-alternate/dummy-configmap.yaml b/graph-node-alternate/dummy-configmap.yaml new file mode 100644 index 0000000..2adb0a9 --- /dev/null +++ b/graph-node-alternate/dummy-configmap.yaml @@ -0,0 +1,33 @@ +# Dummy values. The actual values are set in the respective environment's configmap. + +apiVersion: v1 +kind: ConfigMap +metadata: + name: persistencecore +data: + chain.id: persistencecore + +--- +apiVersion: v1 +kind: ConfigMap +metadata: + name: firehose-node-config +data: + sync_node.resolution_method: DYNAMIC + sync_node.host: '' + sync_node.exposer_port: '' + sync_node.port_p2p: '' + sync_node.genesis_json_fetch_url: '' + snapshot_restore_url: '' + seeds: '' +--- + +apiVersion: v1 +kind: ConfigMap +metadata: + name: graph-node-config +data: + firehose_node.host: 'firehose-node.testnet.svc.cluster.local' + firehose_node.port: '9030' + ipfs.host: 'ipfs.testnet.svc.cluster.local' + ipfs.port: '5001' \ No newline at end of file diff --git a/graph-node-alternate/firehose-firehose.yaml b/graph-node-alternate/firehose-firehose.yaml new file mode 100644 index 0000000..845c3d8 --- /dev/null +++ b/graph-node-alternate/firehose-firehose.yaml @@ -0,0 +1,86 @@ +--- +apiVersion: v1 +kind: Service +metadata: + name: persistencecore-firehose + labels: + app.kubernetes.io/name: persistencecore-firehose +spec: + clusterIP: None + ports: + - name: firehose + port: 9030 + protocol: TCP + targetPort: 9030 + selector: + app.kubernetes.io/name: persistencecore-firehose + +--- +apiVersion: apps/v1 +kind: Deployment +metadata: + name: persistencecore-firehose +spec: + replicas: 1 + revisionHistoryLimit: 3 + selector: + matchLabels: + app.kubernetes.io/instance: persistencecore + app.kubernetes.io/name: persistencecore-firehose + template: + metadata: + annotations: + quality: release + role: api-gateway + sla: high + tier: gateway + labels: + app.kubernetes.io/instance: persistencecore + app.kubernetes.io/type: persistencecore-firehose + app.kubernetes.io/name: persistencecore-firehose + app.kubernetes.io/version: '0.1' + spec: + terminationGracePeriodSeconds: 10 + containers: + - name: firehose-node + image: betterpersist/firecosmos:0.6.0 + imagePullPolicy: Always + env: + - name: FIRST_STREAMBLE_BLOCK + valueFrom: + configMapKeyRef: + key: first_streamable_block + name: firehose-node-config + - name: AWS_ACCESS_KEY_ID + valueFrom: + secretKeyRef: + key: aws_access_key_id + name: firehose-node-aws-credentials + - name: AWS_SECRET_ACCESS_KEY + valueFrom: + secretKeyRef: + key: aws_secret_access_key + name: firehose-node-aws-credentials + command: + - bash + - "-c" + - | + exec firecosmos start firehose \ + --common-live-blocks-addr persistencecore-firehose-relayer.mainnet.svc.cluster.local:9010 \ + --common-first-streamable-block $FIRST_STREAMBLE_BLOCK \ + --common-one-block-store-url s3://sgp1.digitaloceanspaces.com/dexter-zone/one-blocks?region=us-east-1 \ + --common-merged-blocks-store-url s3://sgp1.digitaloceanspaces.com/dexter-zone/merged-blocks?region=us-east-1 + resources: + limits: + cpu: "1" + memory: "1G" + requests: + cpu: "1" + memory: "1G" + volumes: + - name: config-graph + configMap: + name: config-graph + - name: scripts-graph + configMap: + name: scripts-graph \ No newline at end of file diff --git a/graph-node-alternate/firehose-merger.yaml b/graph-node-alternate/firehose-merger.yaml new file mode 100644 index 0000000..58c12d7 --- /dev/null +++ b/graph-node-alternate/firehose-merger.yaml @@ -0,0 +1,80 @@ +--- +apiVersion: v1 +kind: Service +metadata: + name: persistencecore-firehose-merger + labels: + app.kubernetes.io/name: persistencecore-firehose-merger +spec: + clusterIP: None + selector: + app.kubernetes.io/name: persistencecore-firehose-merger +--- +apiVersion: apps/v1 +kind: Deployment +metadata: + name: persistencecore-firehose-merger +spec: + replicas: 1 + revisionHistoryLimit: 3 + selector: + matchLabels: + app.kubernetes.io/instance: persistencecore + app.kubernetes.io/name: persistencecore-firehose-merger + template: + metadata: + annotations: + quality: release + role: api-gateway + sla: high + tier: gateway + labels: + app.kubernetes.io/instance: persistencecore + app.kubernetes.io/type: persistencecore-firehose-merger + app.kubernetes.io/name: persistencecore-firehose-merger + app.kubernetes.io/version: '0.1' + spec: + terminationGracePeriodSeconds: 10 + containers: + - name: firehose-merger-node + image: betterpersist/firecosmos:0.6.0 + imagePullPolicy: Always + env: + - name: FIRST_STREAMBLE_BLOCK + valueFrom: + configMapKeyRef: + key: first_streamable_block + name: firehose-node-config + - name: AWS_ACCESS_KEY_ID + valueFrom: + secretKeyRef: + key: aws_access_key_id + name: firehose-node-aws-credentials + - name: AWS_SECRET_ACCESS_KEY + valueFrom: + secretKeyRef: + key: aws_secret_access_key + name: firehose-node-aws-credentials + command: + - bash + - "-c" + - | + exec firecosmos start merger \ + --common-live-blocks-addr persistencecore-firehose-reader.mainnet.svc.cluster.local:9010 \ + --common-one-block-store-url s3://sgp1.digitaloceanspaces.com/dexter-zone/one-blocks?region=us-east-1 \ + --common-merged-blocks-store-url s3://sgp1.digitaloceanspaces.com/dexter-zone/merged-blocks?region=us-east-1 \ + --common-first-streamable-block $FIRST_STREAMBLE_BLOCK + resources: + limits: + cpu: "1" + memory: "1G" + requests: + cpu: "1" + memory: "1G" + volumes: + - name: config-graph + configMap: + name: config-graph + - name: scripts-graph + configMap: + name: scripts-graph \ No newline at end of file diff --git a/graph-node-alternate/firehose-node.yaml b/graph-node-alternate/firehose-node.yaml new file mode 100644 index 0000000..314a8ad --- /dev/null +++ b/graph-node-alternate/firehose-node.yaml @@ -0,0 +1,252 @@ +--- +apiVersion: v1 +kind: Service +metadata: + name: persistencecore-firehose-node + labels: + app.kubernetes.io/name: persistencecore-firehose-node +spec: + clusterIP: None + ports: + - name: p2p + port: 26656 + protocol: TCP + targetPort: 26656 + - name: rpc + port: 26657 + protocol: TCP + targetPort: 26657 + - name: http + port: 8081 + protocol: TCP + targetPort: 8081 + - name: firehose + port: 9030 + protocol: TCP + targetPort: 9030 + selector: + app.kubernetes.io/name: persistencecore-firehose-node +--- +apiVersion: apps/v1 +kind: StatefulSet +metadata: + name: persistencecore-firehose-node +spec: + serviceName: persistencecore-firehose-node + replicas: 1 + revisionHistoryLimit: 3 + selector: + matchLabels: + app.kubernetes.io/instance: persistencecore + app.kubernetes.io/name: persistencecore-firehose-node + template: + metadata: + annotations: + quality: release + role: api-gateway + sla: high + tier: gateway + labels: + app.kubernetes.io/instance: persistencecore + app.kubernetes.io/type: persistencecore-firehose-node + app.kubernetes.io/name: persistencecore-firehose-node + app.kubernetes.io/version: '0.1' + spec: + terminationGracePeriodSeconds: 10 + initContainers: + - name: wait-for-genesis + image: docker.io/persistenceone/persistencecore:v7.0.0-fh + imagePullPolicy: Always + env: + - name: GENESIS_NODE_DATA_RESOLUTION_METHOD + valueFrom: + configMapKeyRef: + key: sync_node.resolution_method + name: firehose-node-config + - name: GENESIS_HOST + valueFrom: + configMapKeyRef: + key: sync_node.host + name: firehose-node-config + - name: GENESIS_PORT + valueFrom: + configMapKeyRef: + key: sync_node.exposer_port + name: firehose-node-config + command: + - bash + - "-c" + - | + # Do the following if the resolution method is dynamic else skip (we assume that in static configuration peer node is already up) + if [ "$GENESIS_NODE_DATA_RESOLUTION_METHOD" = "DYNAMIC" ]; then + while [ $(curl -sw '%{http_code}' http://$GENESIS_HOST:$GENESIS_PORT/node_id -o /dev/null) -ne 200 ]; do + echo "Genesis validator does not seem to be ready. Waiting for it to start..." + sleep 10; + done + fi + echo "Ready to start" + exit 0 + - name: init-firehose-node + image: docker.io/persistenceone/persistencecore:v7.0.0-fh + imagePullPolicy: Always + env: + - name: CHAIN_ID + valueFrom: + configMapKeyRef: + key: chain.id + name: persistencecore + - name: HOME_DIR + value: /persistencecore + - name: GENESIS_HOST + valueFrom: + configMapKeyRef: + key: sync_node.host + name: firehose-node-config + # We support 2 types of resolution methods: (dynamic, static), if the resolution method is dynamic then we fetch the node id + # on the fly from the exposer app exposed service on the specified port, otherwise it is required that the node id is + # specified exactly as an environment variable + - name: GENESIS_NODE_DATA_RESOLUTION_METHOD + valueFrom: + configMapKeyRef: + key: sync_node.resolution_method + name: firehose-node-config + - name: GENESIS_EXPOSER_PORT + valueFrom: + configMapKeyRef: + key: sync_node.exposer_port + name: firehose-node-config + # This URL is used to fetch the genesis json if the NODE_DATA_RESOLUTION_METHOD is static + - name: GENESIS_JSON_FETCH_URL + valueFrom: + configMapKeyRef: + key: sync_node.genesis_json_fetch_url + name: firehose-node-config + - name: GENESIS_PORT_P2P + valueFrom: + configMapKeyRef: + key: sync_node.port_p2p + name: firehose-node-config + - name: STATE_RESTORE_SNAPSHOT_URL + valueFrom: + configMapKeyRef: + key: snapshot_restore_url + name: firehose-node-config + - name: SEEDS + valueFrom: + configMapKeyRef: + key: seeds + name: firehose-node-config + - name: FIRST_STREAMBLE_BLOCK + valueFrom: + configMapKeyRef: + key: first_streamable_block + name: firehose-node-config + - name: FORCE_INIT + valueFrom: + configMapKeyRef: + key: force_init + name: firehose-node-config + command: + - bash + - "-c" + - | + bash /scripts/init-firehose-node.sh + + echo "Installing firecosmos if not already installed" + + # Install firecosmos if not already installed + if [ ! -f /persistencecore/bin/firecosmos ]; then + wget https://github.com/figment-networks/firehose-cosmos/releases/download/v0.6.0/firecosmos_linux_amd64 -O firecosmos + chmod +x firecosmos + mkdir -p /persistencecore/bin + mv firecosmos /persistencecore/bin/firecosmos + fi + resources: + limits: + cpu: "1" + memory: "1G" + requests: + cpu: "1" + memory: "1G" + volumeMounts: + - mountPath: /persistencecore + name: node-pv-storage + - mountPath: /config-graph + name: config-graph + - mountPath: /scripts + name: scripts-graph + containers: + - name: firehose-node + image: docker.io/persistenceone/persistencecore:v7.0.0-fh + imagePullPolicy: Always + env: + - name: CHAIN_ID + valueFrom: + configMapKeyRef: + key: chain.id + name: persistencecore + - name: HOME_DIR + value: /persistencecore + - name: AWS_ACCESS_KEY_ID + valueFrom: + secretKeyRef: + key: aws_access_key_id + name: firehose-node-aws-credentials + - name: AWS_SECRET_ACCESS_KEY + valueFrom: + secretKeyRef: + key: aws_secret_access_key + name: firehose-node-aws-credentials + # command: + # - /persistencecore/bin/firecosmos + # args: + # - start + # - --config + # - /persistencecore/config/firehose.yml + # - --data-dir + # - /fh-data + # command: + # - persistenceCore + # args: + # - start + # - --home + # - /persistencecore + command: + - bash + - "-c" + - | + sleep infinity + exec /persistencecore/bin/firecosmos start --config /persistencecore/config/firehose.yml --data-dir /fh-data + resources: + limits: + cpu: "4" + memory: "7G" + requests: + cpu: "3" + memory: "6G" + volumeMounts: + - mountPath: /persistencecore + name: node-pv-storage + - mountPath: /config-graph + name: config-graph + - mountPath: /fh-data + name: firehose-pv-storage + volumes: + - name: firehose-pv-storage + persistentVolumeClaim: + claimName: firehose-pv-claim + - name: config-graph + configMap: + name: config-graph + - name: scripts-graph + configMap: + name: scripts-graph + volumeClaimTemplates: + - metadata: + name: node-pv-storage + spec: + storageClassName: do-block-storage + accessModes: [ "ReadWriteOnce" ] + resources: + requests: + storage: 70Gi diff --git a/graph-node-alternate/firehose-reader.yaml b/graph-node-alternate/firehose-reader.yaml new file mode 100644 index 0000000..b606e89 --- /dev/null +++ b/graph-node-alternate/firehose-reader.yaml @@ -0,0 +1,222 @@ +--- +apiVersion: v1 +kind: Service +metadata: + name: persistencecore-firehose-reader + labels: + app.kubernetes.io/name: persistencecore-firehose-reader +spec: + clusterIP: None + ports: + - name: firehose-reader + port: 9000 + protocol: TCP + targetPort: 9000 + selector: + app.kubernetes.io/name: persistencecore-firehose-reader +--- +apiVersion: apps/v1 +kind: StatefulSet +metadata: + name: persistencecore-firehose-reader +spec: + serviceName: persistencecore-firehose-reader + replicas: 1 + revisionHistoryLimit: 3 + selector: + matchLabels: + app.kubernetes.io/instance: persistencecore + app.kubernetes.io/name: persistencecore-firehose-reader + template: + metadata: + annotations: + quality: release + role: api-gateway + sla: high + tier: gateway + labels: + app.kubernetes.io/instance: persistencecore + app.kubernetes.io/type: persistencecore-firehose-reader + app.kubernetes.io/name: persistencecore-firehose-reader + app.kubernetes.io/version: '0.1' + spec: + terminationGracePeriodSeconds: 10 + initContainers: + - name: wait-for-genesis + image: docker.io/persistenceone/persistencecore:v7.0.0-fh + imagePullPolicy: Always + env: + - name: GENESIS_NODE_DATA_RESOLUTION_METHOD + valueFrom: + configMapKeyRef: + key: sync_node.resolution_method + name: firehose-node-config + - name: GENESIS_HOST + valueFrom: + configMapKeyRef: + key: sync_node.host + name: firehose-node-config + - name: GENESIS_PORT + valueFrom: + configMapKeyRef: + key: sync_node.exposer_port + name: firehose-node-config + command: + - bash + - "-c" + - | + # Do the following if the resolution method is dynamic else skip (we assume that in static configuration peer node is already up) + if [ "$GENESIS_NODE_DATA_RESOLUTION_METHOD" = "DYNAMIC" ]; then + while [ $(curl -sw '%{http_code}' http://$GENESIS_HOST:$GENESIS_PORT/node_id -o /dev/null) -ne 200 ]; do + echo "Genesis validator does not seem to be ready. Waiting for it to start..." + sleep 10; + done + fi + echo "Ready to start" + exit 0 + - name: init-firehose-node + image: docker.io/persistenceone/persistencecore:v7.0.0-fh + imagePullPolicy: Always + env: + - name: CHAIN_ID + valueFrom: + configMapKeyRef: + key: chain.id + name: persistencecore + - name: HOME_DIR + value: /persistencecore + - name: GENESIS_HOST + valueFrom: + configMapKeyRef: + key: sync_node.host + name: firehose-node-config + # We support 2 types of resolution methods: (dynamic, static), if the resolution method is dynamic then we fetch the node id + # on the fly from the exposer app exposed service on the specified port, otherwise it is required that the node id is + # specified exactly as an environment variable + - name: GENESIS_NODE_DATA_RESOLUTION_METHOD + valueFrom: + configMapKeyRef: + key: sync_node.resolution_method + name: firehose-node-config + - name: GENESIS_EXPOSER_PORT + valueFrom: + configMapKeyRef: + key: sync_node.exposer_port + name: firehose-node-config + # This URL is used to fetch the genesis json if the NODE_DATA_RESOLUTION_METHOD is static + - name: GENESIS_JSON_FETCH_URL + valueFrom: + configMapKeyRef: + key: sync_node.genesis_json_fetch_url + name: firehose-node-config + - name: GENESIS_PORT_P2P + valueFrom: + configMapKeyRef: + key: sync_node.port_p2p + name: firehose-node-config + - name: STATE_RESTORE_SNAPSHOT_URL + valueFrom: + configMapKeyRef: + key: snapshot_restore_url + name: firehose-node-config + - name: SEEDS + valueFrom: + configMapKeyRef: + key: seeds + name: firehose-node-config + - name: FIRST_STREAMBLE_BLOCK + valueFrom: + configMapKeyRef: + key: first_streamable_block + name: firehose-node-config + - name: FORCE_INIT + valueFrom: + configMapKeyRef: + key: force_init + name: firehose-node-config + command: + - bash + - "-c" + - | + bash /scripts/init-firehose-node.sh + + echo "Installing firecosmos if not already installed" + + # Install firecosmos if not already installed + if [ ! -f /persistencecore/bin/firecosmos ]; then + wget https://github.com/figment-networks/firehose-cosmos/releases/download/v0.6.0/firecosmos_linux_amd64 -O firecosmos + chmod +x firecosmos + mkdir -p /persistencecore/bin + mv firecosmos /persistencecore/bin/firecosmos + fi + resources: + limits: + cpu: "1" + memory: "1G" + requests: + cpu: "1" + memory: "1G" + volumeMounts: + - mountPath: /persistencecore + name: node-pv-storage + - mountPath: /config-graph + name: config-graph + - mountPath: /scripts + name: scripts-graph + containers: + - name: firehose-node + image: docker.io/persistenceone/persistencecore:v7.0.0-fh + imagePullPolicy: Always + env: + - name: CHAIN_ID + valueFrom: + configMapKeyRef: + key: chain.id + name: persistencecore + - name: HOME_DIR + value: /persistencecore + - name: AWS_ACCESS_KEY_ID + valueFrom: + secretKeyRef: + key: aws_access_key_id + name: firehose-node-aws-credentials + - name: AWS_SECRET_ACCESS_KEY + valueFrom: + secretKeyRef: + key: aws_secret_access_key + name: firehose-node-aws-credentials + command: + - bash + - "-c" + - | + exec /persistencecore/bin/firecosmos start \ + --config /persistencecore/config/firehose.yml \ + --data-dir /fh-data + resources: + limits: + cpu: "2" + memory: "6G" + requests: + cpu: "2" + memory: "6G" + volumeMounts: + - mountPath: /persistencecore + name: node-pv-storage + - mountPath: /config-graph + name: config-graph + volumes: + - name: config-graph + configMap: + name: config-graph + - name: scripts-graph + configMap: + name: scripts-graph + volumeClaimTemplates: + - metadata: + name: node-pv-storage + spec: + storageClassName: do-block-storage + accessModes: [ "ReadWriteOnce" ] + resources: + requests: + storage: 20Gi diff --git a/graph-node-alternate/firehose-relayer.yaml b/graph-node-alternate/firehose-relayer.yaml new file mode 100644 index 0000000..44f2865 --- /dev/null +++ b/graph-node-alternate/firehose-relayer.yaml @@ -0,0 +1,84 @@ +--- +apiVersion: v1 +kind: Service +metadata: + name: persistencecore-firehose-relayer + labels: + app.kubernetes.io/name: persistencecore-firehose-relayer +spec: + clusterIP: None + ports: + - name: firehose-relayer + port: 9010 + protocol: TCP + targetPort: 9010 + selector: + app.kubernetes.io/name: persistencecore-firehose-relayer + +--- +apiVersion: apps/v1 +kind: Deployment +metadata: + name: persistencecore-firehose-relayer +spec: + replicas: 1 + revisionHistoryLimit: 3 + selector: + matchLabels: + app.kubernetes.io/instance: persistencecore + app.kubernetes.io/name: persistencecore-firehose-relayer + template: + metadata: + annotations: + quality: release + role: api-gateway + sla: high + tier: gateway + labels: + app.kubernetes.io/instance: persistencecore + app.kubernetes.io/type: persistencecore-firehose-relayer + app.kubernetes.io/name: persistencecore-firehose-relayer + app.kubernetes.io/version: '0.1' + spec: + terminationGracePeriodSeconds: 10 + containers: + - name: firehose-relayer-node + image: betterpersist/firecosmos:0.6.0 + imagePullPolicy: Always + env: + - name: FIRST_STREAMBLE_BLOCK + valueFrom: + configMapKeyRef: + key: first_streamable_block + name: firehose-node-config + - name: AWS_ACCESS_KEY_ID + valueFrom: + secretKeyRef: + key: aws_access_key_id + name: firehose-node-aws-credentials + - name: AWS_SECRET_ACCESS_KEY + valueFrom: + secretKeyRef: + key: aws_secret_access_key + name: firehose-node-aws-credentials + command: + - bash + - "-c" + - | + exec firecosmos start relayer \ + --relayer-source persistencecore-firehose-reader.mainnet.svc.cluster.local:9000 \ + --common-first-streamable-block $FIRST_STREAMBLE_BLOCK + resources: + limits: + cpu: "1" + memory: "1G" + requests: + cpu: "1" + memory: "1G" + volumes: + - name: config-graph + configMap: + name: config-graph + - name: scripts-graph + configMap: + name: scripts-graph \ No newline at end of file diff --git a/graph-node-alternate/graph-node.yaml b/graph-node-alternate/graph-node.yaml new file mode 100644 index 0000000..83de427 --- /dev/null +++ b/graph-node-alternate/graph-node.yaml @@ -0,0 +1,180 @@ +--- +apiVersion: v1 +kind: Service +metadata: + name: persistencecore-graph-node + labels: + app.kubernetes.io/name: persistencecore-graph-node +spec: + clusterIP: None + ports: + - name: http + port: 8000 + protocol: TCP + targetPort: 8000 + - name: websocket + port: 8001 + protocol: TCP + targetPort: 8001 + - name: admin + port: 8020 + protocol: TCP + targetPort: 8020 + selector: + app.kubernetes.io/name: persistencecore-graph-node +--- +apiVersion: apps/v1 +kind: Deployment +metadata: + name: persistencecore-graph-node +spec: + replicas: 1 + revisionHistoryLimit: 3 + selector: + matchLabels: + app.kubernetes.io/instance: persistencecore + app.kubernetes.io/name: persistencecore-graph-node + template: + metadata: + annotations: + quality: release + role: api-gateway + sla: high + tier: gateway + labels: + app.kubernetes.io/instance: persistencecore + app.kubernetes.io/type: persistencecore-graph-node + app.kubernetes.io/name: persistencecore-graph-node + app.kubernetes.io/version: "0.1" + spec: + initContainers: + - name: wait-for-firehose-node + image: networld/grpcurl + imagePullPolicy: Always + env: + - name: FIREHOSE_HOST + valueFrom: + configMapKeyRef: + name: graph-node-config + key: firehose_node.host + - name: FIREHOSE_PORT + valueFrom: + configMapKeyRef: + name: graph-node-config + key: firehose_node.port + command: + - sh + - "-c" + - | + apk update + apk add jq + + x=1; while [ $x -le 10 ]; do + echo "Attempt number: $x" + FIREHOSE_STATUS=$(./grpcurl -plaintext $FIREHOSE_HOST:$FIREHOSE_PORT grpc.health.v1.Health.Check | jq .status) + if [ $FIREHOSE_STATUS == '"SERVING"' ] + then + echo "Ready to start" + exit 0 + fi + echo "Firehose node does not seem to be ready. Status: $FIREHOSE_STATUS Waiting for it to start. Sleeping for 15 seconds." + sleep 15 + x=$(( $x + 1 )) + done + + echo "Retry limit exceeded. Current status: $(./grpcurl -plaintext $FIREHOSE_HOST:$FIREHOSE_PORT grpc.health.v1.Health.Check | jq .status)" + exit 1 + + containers: + - name: graph-node + image: graphprotocol/graph-node:v0.29.0 + imagePullPolicy: Always + env: + - name: FIREHOSE_HOST + valueFrom: + configMapKeyRef: + name: graph-node-config + key: firehose_node.host + - name: FIREHOSE_PORT + valueFrom: + configMapKeyRef: + name: graph-node-config + key: firehose_node.port + - name: IPFS_HOST + valueFrom: + configMapKeyRef: + name: graph-node-config + key: ipfs.host + - name: IPFS_PORT + valueFrom: + configMapKeyRef: + name: graph-node-config + key: ipfs.port + - name: POSTGRES_HOST + valueFrom: + secretKeyRef: + name: postgres-secret + key: POSTGRES_HOST + - name: POSTGRES_PORT + valueFrom: + secretKeyRef: + name: postgres-secret + key: POSTGRES_PORT + - name: POSTGRES_USER + valueFrom: + secretKeyRef: + name: postgres-secret + key: POSTGRES_USER + - name: POSTGRES_PASSWORD + valueFrom: + secretKeyRef: + name: postgres-secret + key: POSTGRES_PASSWORD + - name: POSTGRES_DB + valueFrom: + secretKeyRef: + name: postgres-secret + key: POSTGRES_DB + command: + - bash + - "-c" + - | + + cp config-graph/config-graph-node.toml config.toml + sed -i "s/POSTGRES_USER/$POSTGRES_USER/g" config.toml + sed -i "s/POSTGRES_PASSWORD/$POSTGRES_PASSWORD/g" config.toml + sed -i "s/POSTGRES_HOST/$POSTGRES_HOST/g" config.toml + sed -i "s/POSTGRES_PORT/$POSTGRES_PORT/g" config.toml + sed -i "s/POSTGRES_DB/$POSTGRES_DB/g" config.toml + sed -i "s/FIREHOSE_HOST/$FIREHOSE_HOST/g" config.toml + sed -i "s/FIREHOSE_PORT/$FIREHOSE_PORT/g" config.toml + + # Print config before starting node + cat config.toml + + # maybe dns needs some time to resolve? + # sleep 10 + + # echo "Sleeping for infinity" + # sleep infinity + + # Start graph node + graph-node --config config.toml \ + --ipfs "$IPFS_HOST:$IPFS_PORT" \ + --node-id index_node_cosmos_1 + resources: + limits: + cpu: "2" + memory: "2G" + requests: + cpu: "1" + memory: "1G" + volumeMounts: + - mountPath: config-graph + name: config-graph + volumes: + - name: config-graph + configMap: + name: config-graph +--- + diff --git a/graph-node-alternate/hasura.yaml b/graph-node-alternate/hasura.yaml new file mode 100644 index 0000000..9e98e66 --- /dev/null +++ b/graph-node-alternate/hasura.yaml @@ -0,0 +1,57 @@ +apiVersion: v1 +kind: Service +metadata: + name: persistencecore-hasura + labels: + app.kubernetes.io/name: persistencecore-hasura +spec: + ports: + - name: http + protocol: TCP + port: 8080 + targetPort: 8080 + selector: + app.kubernetes.io/name: persistencecore-hasura + +--- +apiVersion: apps/v1 +kind: Deployment +metadata: + name: persistencecore-hasura +spec: + replicas: 1 + selector: + matchLabels: + app.kubernetes.io/name: persistencecore-hasura + template: + metadata: + labels: + app.kubernetes.io/name: persistencecore-hasura + spec: + containers: + - name: hasura + image: hasura/graphql-engine:v2.19.0 + ports: + - containerPort: 8080 + protocol: TCP + resources: + limits: + cpu: "2" + memory: "2G" + requests: + cpu: "1" + memory: "2G" + env: + - name: HASURA_GRAPHQL_DATABASE_URL + valueFrom: + secretKeyRef: + name: postgres-secret + key: POSTGRES_HASURA_URL + - name: HASURA_GRAPHQL_ENABLE_CONSOLE + value: 'true' + - name: HASURA_GRAPHQL_DEV_MODE + value: 'true' + - name: HASURA_GRAPHQL_ADMIN_SECRET + value: dexter$hasuraadmin + - name: HASURA_GRAPHQL_UNAUTHORIZED_ROLE + value: api-user \ No newline at end of file diff --git a/graph-node-alternate/ipfs-node.yaml b/graph-node-alternate/ipfs-node.yaml new file mode 100644 index 0000000..13d171a --- /dev/null +++ b/graph-node-alternate/ipfs-node.yaml @@ -0,0 +1,60 @@ +--- +apiVersion: v1 +kind: Service +metadata: + name: ipfs-node + labels: + app.kubernetes.io/name: ipfs-node +spec: + clusterIP: None + ports: + - name: http + port: 5001 + protocol: TCP + targetPort: 5001 + selector: + app.kubernetes.io/name: ipfs-node +--- +apiVersion: apps/v1 +kind: Deployment +metadata: + name: ipfs-node +spec: + replicas: 1 + revisionHistoryLimit: 3 + selector: + matchLabels: + app.kubernetes.io/instance: persistencecore + app.kubernetes.io/name: ipfs-node + template: + metadata: + annotations: + quality: release + role: api-gateway + sla: high + tier: gateway + labels: + app.kubernetes.io/instance: persistencecore + app.kubernetes.io/type: ipfs-node + app.kubernetes.io/name: ipfs-node + app.kubernetes.io/version: '0.1' + spec: + volumes: + - name: ipfs-pv-storage + persistentVolumeClaim: + claimName: ipfs-pv-claim + containers: + - name: ipfs-node + image: ipfs/go-ipfs:v0.10.0 + imagePullPolicy: Always + resources: + limits: + cpu: "0.5" + memory: "500M" + requests: + cpu: "0.25" + memory: "250M" + volumeMounts: + - mountPath: /data/ipfs + name: ipfs-pv-storage +--- diff --git a/graph-node-alternate/ipfs-persistent-volume.yaml b/graph-node-alternate/ipfs-persistent-volume.yaml new file mode 100644 index 0000000..9c15438 --- /dev/null +++ b/graph-node-alternate/ipfs-persistent-volume.yaml @@ -0,0 +1,11 @@ +apiVersion: v1 +kind: PersistentVolumeClaim +metadata: + name: ipfs-pv-claim +spec: + storageClassName: do-block-storage + accessModes: + - ReadWriteOnce + resources: + requests: + storage: 10Gi \ No newline at end of file diff --git a/graph-node-alternate/kustomization.yaml b/graph-node-alternate/kustomization.yaml new file mode 100644 index 0000000..9c9ce16 --- /dev/null +++ b/graph-node-alternate/kustomization.yaml @@ -0,0 +1,25 @@ +resources: + - firehose-reader.yaml + - firehose-merger.yaml + - firehose-relayer.yaml + - firehose-firehose.yaml + - graph-node.yaml + - ipfs-node.yaml + - hasura.yaml + - ipfs-persistent-volume.yaml + +generatorOptions: + disableNameSuffixHash: true + +configMapGenerator: + - name: config-graph + files: + - config-graph/firehose-node.json + - config-graph/firehose-reader.yml + - config-graph/firehose-relayer.yml + - config-graph/firehose-merger.yml + - config-graph/config.toml + - config-graph/config-graph-node.toml + - name: scripts-graph + files: + - scripts/init-firehose-node.sh \ No newline at end of file diff --git a/graph-node-alternate/scripts/init-firehose-node.sh b/graph-node-alternate/scripts/init-firehose-node.sh new file mode 100644 index 0000000..fb06dd6 --- /dev/null +++ b/graph-node-alternate/scripts/init-firehose-node.sh @@ -0,0 +1,126 @@ +NODE_INDEX=${HOSTNAME##*-} +echo "firehose-node Index: $NODE_INDEX" + + +# print all environment variables +printenv + +# If genesis json exists and force_init is not set, then skip the node initialization +if [ "$FORCE_INIT" = "true" ]; then + echo "Force init is set to true. Initializing node." + rm -rf $HOME_DIR/* +else + echo "Force init is set to false. Skipping node initialization." +fi + + +if test -f $HOME_DIR/config/genesis.json; then + echo "Genesis.json exists. Skipping node initialization." +else + echo "Genesis.json does not exist. Initializing node." + + NODE_NAME=$(jq -r ".firehose_nodes[$NODE_INDEX].name" /config-graph/firehose-node.json) + echo "firehose-node Index: $NODE_INDEX, Key name: $NODE_NAME" + + # Print mnemonic + MNEMONIC=$(jq -r ".firehose_nodes[$NODE_INDEX].mnemonic" /config-graph/firehose-node.json) + echo "Mnemonic: $MNEMONIC" + + jq -r ".firehose_nodes[$NODE_INDEX].mnemonic" /config-graph/firehose-node.json | persistenceCore init $NODE_NAME --chain-id $CHAIN_ID --home $HOME_DIR --recover + echo $MNEMONIC | persistenceCore keys add $NODE_NAME --recover --keyring-backend="test" --home $HOME_DIR + + # if we have GENESIS_NODE_DATA_RESOLUTION_METHOD is dynamic fetch the genesis from the GENESIS_EXPOSER_PORT on the GENESIS_HOST + # else fetch it directly from GENESIS_JSON_FETCH_URL + GENESIS_NODE_ID="" + if [ $GENESIS_NODE_DATA_RESOLUTION_METHOD = "DYNAMIC" ]; then + echo "Config: DYNAMIC. Fetching genesis file from $GENESIS_HOST:$GENESIS_EXPOSER_PORT" + GENESIS_NODE_ID=$(curl -s http://$GENESIS_HOST:$GENESIS_EXPOSER_PORT/node_id) + curl http://$GENESIS_HOST:$GENESIS_EXPOSER_PORT/genesis -o $HOME_DIR/config/genesis.json + else + echo "Config: STATIC. Fetching genesis file from $GENESIS_JSON_FETCH_URL" + curl $GENESIS_JSON_FETCH_URL -o $HOME_DIR/config/genesis.json + fi + + GENESIS_NODE_P2P="$GENESIS_NODE_ID@$GENESIS_HOST:$GENESIS_PORT_P2P" + echo "Node P2P: $GENESIS_NODE_P2P" + + # skip persistent_peers if GENESIS_NODE_DATA_RESOLUTION_METHOD is static + if [ $GENESIS_NODE_DATA_RESOLUTION_METHOD = "DYNAMIC" ]; then + sed -i "s/persistent_peers = \"\"/persistent_peers = \"$GENESIS_NODE_P2P\"/g" $HOME_DIR/config/config.toml + fi + sed -i 's#"tcp://127.0.0.1:26657"#"tcp://0.0.0.0:26657"#g' $HOME_DIR/config/config.toml + sed -i 's/timeout_commit = "5s"/timeout_commit = "1s"/g' $HOME_DIR/config/config.toml + sed -i 's/timeout_propose = "3s"/timeout_propose = "1s"/g' $HOME_DIR/config/config.toml + sed -i 's/index_all_keys = false/index_all_keys = true/g' $HOME_DIR/config/config.toml + + # replace seeds if the variable is not empty + if [ ! -z "$SEEDS" ]; then + sed -i "s/seeds = \"\"/seeds = \"$SEEDS\"/g" $HOME_DIR/config/config.toml + fi + + echo "Printing the whole config.toml file" + + cat << END >> $HOME_DIR/config/config.toml + ####################################################### + ### Extractor Configuration Options ### + ####################################################### + [extractor] + enabled = true + output_file = "stdout" +END + + cat $HOME_DIR/config/config.toml + + + # update the app.toml pruning config to Nothing + # sed -i 's/pruning = "default"/pruning = "nothing"/g' $HOME_DIR/config/app.toml + # update the minimum-gas-prices in app.toml to 100uxprt + sed -i 's/minimum-gas-prices = ""/minimum-gas-prices = "100uxprt"/g' $HOME_DIR/config/app.toml + + echo "Setting up pruning configuration in app.toml" + sed -i 's/pruning = "default"/pruning = "custom"/g' $HOME_DIR/config/app.toml + sed -i 's/pruning-interval = "0"/pruning-interval = "100"/g' $HOME_DIR/config/app.toml + sed -i 's/pruning-keep-recent = "0"/pruning-keep-recent = "10000"/g' $HOME_DIR/config/app.toml + + + # if STATE_RESTORE_SNAPSHOT_URL is not empty url and wasm folder doesn't exist, then download and extract the snapshot + if [ ! -z "$STATE_RESTORE_SNAPSHOT_URL" ]; then + echo "=> Downloading snapshot from $STATE_RESTORE_SNAPSHOT_URL" + FILENAME=$(basename $STATE_RESTORE_SNAPSHOT_URL) + curl $STATE_RESTORE_SNAPSHOT_URL -o $HOME_DIR/$FILENAME + + echo "=> Extracting snapshot" + cp $HOME_DIR/data/priv_validator_state.json $HOME/priv_validator_state_backup.json + + case "$FILENAME" in + *.tar.lz4) + if ! command -v lz4 &> /dev/null; then + apk add --no-cache lz4 + fi + + lz4 -c -d $HOME_DIR/$FILENAME | tar -x -C $HOME_DIR + # delete the $HOME_DIR/wasm/wasm/cache folder + rm -rf $HOME_DIR/wasm/wasm/cache + rm -rf $HOME_DIR/$FILENAME + ;; + + *.tar.gz) + tar -xvf $HOME_DIR/$FILENAME -C $HOME_DIR + rm -rf $HOME_DIR/wasm/wasm/cache + rm -rf $HOME_DIR/$FILENAME + ;; + esac + + mv $HOME_DIR/priv_validator_state_backup.json $HOME/data/priv_validator_state.json + rm $HOME_DIR/priv_validator_state_backup.json + fi + +fi +# copy the firehose.yml file to the HOME_DIR because config-graph is a read-only volume +cp /config-graph/firehose-reader.yml $HOME_DIR/config/firehose.yml + +# if FIRST_STREAMBLE_BLOCK is not empty, then set the first_streamable_block in firehose.yml +if [ ! -z "$FIRST_STREAMBLE_BLOCK" ]; then + echo "Setting common-first-streamable-block to $FIRST_STREAMBLE_BLOCK" + sed -i "s/common-first-streamable-block: 0/common-first-streamable-block: $FIRST_STREAMBLE_BLOCK/g" $HOME_DIR/config/firehose.yml +fi \ No newline at end of file diff --git a/graph-node/firehose-node.yaml b/graph-node/firehose-node.yaml index b45f0a8..7f74557 100644 --- a/graph-node/firehose-node.yaml +++ b/graph-node/firehose-node.yaml @@ -188,6 +188,20 @@ spec: name: persistencecore - name: HOME_DIR value: /persistencecore + # command: + # - /persistencecore/bin/firecosmos + # args: + # - start + # - --config + # - /persistencecore/config/firehose.yml + # - --data-dir + # - /fh-data + # command: + # - persistenceCore + # args: + # - start + # - --home + # - /persistencecore command: - bash - "-c" @@ -220,3 +234,12 @@ spec: - name: scripts-graph configMap: name: scripts-graph + volumeClaimTemplates: + - metadata: + name: node-pv-storage + spec: + storageClassName: do-block-storage + accessModes: [ "ReadWriteOnce" ] + resources: + requests: + storage: 90Gi diff --git a/networks/mainnet/configmap.yaml b/networks/mainnet/configmap.yaml index 2581764..6c83b21 100644 --- a/networks/mainnet/configmap.yaml +++ b/networks/mainnet/configmap.yaml @@ -16,7 +16,7 @@ data: sync_node.exposer_port: '' sync_node.port_p2p: '26656' sync_node.genesis_json_fetch_url: 'https://raw.githubusercontent.com/persistenceOne/networks/master/core-1/final_genesis.json' - snapshot_restore_url: 'https://files.audit.one/persistence/snapshot/data_height_10522614.tar.lz4' + snapshot_restore_url: 'https://dexter-zone.sgp1.digitaloceanspaces.com/persistence-snapshot/persistence_10727804.tar.lz4' # seeds: 'fbf0aa94b512902a249b246ed5763b50df9c0543@seed.core.persistence.one:26656,ade4d8bc8cbe014af6ebdf3cb7b1e9ad36f412c0@seeds.polkachu.com:15456,ebc272824924ea1a27ea3183dd0b9ba713494f83@persistence-mainnet-seed.autostake.com:26896' seeds: 'fbf0aa94b512902a249b246ed5763b50df9c0543@seed.core.persistence.one:26656' # For buffer time to sync the node @@ -29,7 +29,7 @@ kind: ConfigMap metadata: name: graph-node-config data: - firehose_node.host: 'persistencecore-firehose-node.graph-core-1.svc.cluster.local' + firehose_node.host: 'persistencecore-firehose.mainnet.svc.cluster.local' firehose_node.port: '9030' ipfs.host: 'ipfs-node.graph-core-1.svc.cluster.local' ipfs.port: '5001' \ No newline at end of file diff --git a/networks/mainnet/kustomization.yaml b/networks/mainnet/kustomization.yaml index e939d80..d0aecdf 100644 --- a/networks/mainnet/kustomization.yaml +++ b/networks/mainnet/kustomization.yaml @@ -2,5 +2,5 @@ namespace: graph-core-1 resources: - ingress.yaml - - ../../graph-node + - ../../graph-node-alternate - configmap.yaml \ No newline at end of file From 57958fef4aed73cb0eaf8cf65bdb47e709e773fe Mon Sep 17 00:00:00 2001 From: betterclever Date: Tue, 2 May 2023 19:15:20 +0400 Subject: [PATCH 02/13] new multi-pod / single-pod setup --- .../config-graph/config-graph-node.toml | 0 .../{ => base}/config-graph/config.toml | 0 .../config-graph/firehose-node.json | 0 .../config-graph/firehose-reader.yml | 0 .../{ => base}/config-graph/firehose.yml | 0 .../{ => base}/graph-node.yaml | 0 graph-node-alternate/{ => base}/hasura.yaml | 7 +- .../{ => base}/ipfs-node.yaml | 0 .../{ => base}/ipfs-persistent-volume.yaml | 0 .../{ => base}/kustomization.yaml | 12 ++- .../{ => base}/scripts/init-firehose-node.sh | 0 .../config-graph/firehose-merger.yml | 9 --- .../config-graph/firehose-relayer.yml | 13 --- .../multi-pod}/firehose-firehose.yaml | 17 +++- .../multi-pod}/firehose-merger.yaml | 17 +++- .../multi-pod}/firehose-reader.yaml | 25 +++++- .../multi-pod}/firehose-relayer.yaml | 0 .../overlays/multi-pod/kustomization.yaml | 6 ++ .../one-pod/firehose.yaml} | 81 +++++++++---------- .../overlays/one-pod/kustomization.yaml | 3 + networks/devnet/configmap.yaml | 6 +- networks/devnet/kustomization.yaml | 2 +- networks/mainnet/configmap.yaml | 8 +- networks/mainnet/ingress.yaml | 41 +++++++++- 24 files changed, 153 insertions(+), 94 deletions(-) rename graph-node-alternate/{ => base}/config-graph/config-graph-node.toml (100%) rename graph-node-alternate/{ => base}/config-graph/config.toml (100%) rename graph-node-alternate/{ => base}/config-graph/firehose-node.json (100%) rename graph-node-alternate/{ => base}/config-graph/firehose-reader.yml (100%) rename graph-node-alternate/{ => base}/config-graph/firehose.yml (100%) rename graph-node-alternate/{ => base}/graph-node.yaml (100%) rename graph-node-alternate/{ => base}/hasura.yaml (90%) rename graph-node-alternate/{ => base}/ipfs-node.yaml (100%) rename graph-node-alternate/{ => base}/ipfs-persistent-volume.yaml (100%) rename graph-node-alternate/{ => base}/kustomization.yaml (67%) rename graph-node-alternate/{ => base}/scripts/init-firehose-node.sh (100%) delete mode 100644 graph-node-alternate/config-graph/firehose-merger.yml delete mode 100644 graph-node-alternate/config-graph/firehose-relayer.yml rename graph-node-alternate/{ => overlays/multi-pod}/firehose-firehose.yaml (77%) rename graph-node-alternate/{ => overlays/multi-pod}/firehose-merger.yaml (77%) rename graph-node-alternate/{ => overlays/multi-pod}/firehose-reader.yaml (86%) rename graph-node-alternate/{ => overlays/multi-pod}/firehose-relayer.yaml (100%) create mode 100644 graph-node-alternate/overlays/multi-pod/kustomization.yaml rename graph-node-alternate/{firehose-node.yaml => overlays/one-pod/firehose.yaml} (80%) create mode 100644 graph-node-alternate/overlays/one-pod/kustomization.yaml diff --git a/graph-node-alternate/config-graph/config-graph-node.toml b/graph-node-alternate/base/config-graph/config-graph-node.toml similarity index 100% rename from graph-node-alternate/config-graph/config-graph-node.toml rename to graph-node-alternate/base/config-graph/config-graph-node.toml diff --git a/graph-node-alternate/config-graph/config.toml b/graph-node-alternate/base/config-graph/config.toml similarity index 100% rename from graph-node-alternate/config-graph/config.toml rename to graph-node-alternate/base/config-graph/config.toml diff --git a/graph-node-alternate/config-graph/firehose-node.json b/graph-node-alternate/base/config-graph/firehose-node.json similarity index 100% rename from graph-node-alternate/config-graph/firehose-node.json rename to graph-node-alternate/base/config-graph/firehose-node.json diff --git a/graph-node-alternate/config-graph/firehose-reader.yml b/graph-node-alternate/base/config-graph/firehose-reader.yml similarity index 100% rename from graph-node-alternate/config-graph/firehose-reader.yml rename to graph-node-alternate/base/config-graph/firehose-reader.yml diff --git a/graph-node-alternate/config-graph/firehose.yml b/graph-node-alternate/base/config-graph/firehose.yml similarity index 100% rename from graph-node-alternate/config-graph/firehose.yml rename to graph-node-alternate/base/config-graph/firehose.yml diff --git a/graph-node-alternate/graph-node.yaml b/graph-node-alternate/base/graph-node.yaml similarity index 100% rename from graph-node-alternate/graph-node.yaml rename to graph-node-alternate/base/graph-node.yaml diff --git a/graph-node-alternate/hasura.yaml b/graph-node-alternate/base/hasura.yaml similarity index 90% rename from graph-node-alternate/hasura.yaml rename to graph-node-alternate/base/hasura.yaml index 9e98e66..b7f12d3 100644 --- a/graph-node-alternate/hasura.yaml +++ b/graph-node-alternate/base/hasura.yaml @@ -44,7 +44,7 @@ spec: env: - name: HASURA_GRAPHQL_DATABASE_URL valueFrom: - secretKeyRef: + secretKeyRef: name: postgres-secret key: POSTGRES_HASURA_URL - name: HASURA_GRAPHQL_ENABLE_CONSOLE @@ -52,6 +52,9 @@ spec: - name: HASURA_GRAPHQL_DEV_MODE value: 'true' - name: HASURA_GRAPHQL_ADMIN_SECRET - value: dexter$hasuraadmin + valueFrom: + secretKeyRef: + name: postgres-secret + key: HASURA_GRAPHQL_ADMIN_SECRET - name: HASURA_GRAPHQL_UNAUTHORIZED_ROLE value: api-user \ No newline at end of file diff --git a/graph-node-alternate/ipfs-node.yaml b/graph-node-alternate/base/ipfs-node.yaml similarity index 100% rename from graph-node-alternate/ipfs-node.yaml rename to graph-node-alternate/base/ipfs-node.yaml diff --git a/graph-node-alternate/ipfs-persistent-volume.yaml b/graph-node-alternate/base/ipfs-persistent-volume.yaml similarity index 100% rename from graph-node-alternate/ipfs-persistent-volume.yaml rename to graph-node-alternate/base/ipfs-persistent-volume.yaml diff --git a/graph-node-alternate/kustomization.yaml b/graph-node-alternate/base/kustomization.yaml similarity index 67% rename from graph-node-alternate/kustomization.yaml rename to graph-node-alternate/base/kustomization.yaml index 9c9ce16..7f031d0 100644 --- a/graph-node-alternate/kustomization.yaml +++ b/graph-node-alternate/base/kustomization.yaml @@ -1,11 +1,11 @@ resources: - - firehose-reader.yaml - - firehose-merger.yaml - - firehose-relayer.yaml - - firehose-firehose.yaml + # - firehose-reader.yaml + # - firehose-merger.yaml + # - firehose-relayer.yaml + # - firehose-firehose.yaml - graph-node.yaml - ipfs-node.yaml - - hasura.yaml + # - hasura.yaml - ipfs-persistent-volume.yaml generatorOptions: @@ -16,8 +16,6 @@ configMapGenerator: files: - config-graph/firehose-node.json - config-graph/firehose-reader.yml - - config-graph/firehose-relayer.yml - - config-graph/firehose-merger.yml - config-graph/config.toml - config-graph/config-graph-node.toml - name: scripts-graph diff --git a/graph-node-alternate/scripts/init-firehose-node.sh b/graph-node-alternate/base/scripts/init-firehose-node.sh similarity index 100% rename from graph-node-alternate/scripts/init-firehose-node.sh rename to graph-node-alternate/base/scripts/init-firehose-node.sh diff --git a/graph-node-alternate/config-graph/firehose-merger.yml b/graph-node-alternate/config-graph/firehose-merger.yml deleted file mode 100644 index a77d925..0000000 --- a/graph-node-alternate/config-graph/firehose-merger.yml +++ /dev/null @@ -1,9 +0,0 @@ -start: - args: - - merger - flags: - # Common flags - common-first-streamable-block: 0 - common-live-blocks-addr: 'http://firehose-reader-0.alt-setup-testing.pod.cluster.local:9000' - common-one-block-store-url: 's3://sgp1.digitaloceanspaces.com/dexter-zone/one-blocks?region=us-east-1' - common-merged-blocks-store-url: 's3://sgp1.digitaloceanspaces.com/dexter-zone/merged-blocks?region=us-east-1' \ No newline at end of file diff --git a/graph-node-alternate/config-graph/firehose-relayer.yml b/graph-node-alternate/config-graph/firehose-relayer.yml deleted file mode 100644 index d4efaab..0000000 --- a/graph-node-alternate/config-graph/firehose-relayer.yml +++ /dev/null @@ -1,13 +0,0 @@ -start: - args: - - relayer - flags: - # Common flags - common-first-streamable-block: 0 - - # relayer specific flags - relayer-source: - - firehose-reader-0.alt-setup-testing.pod.cluster.local:9000 - - firehose-reader-1.alt-setup-testing.pod.cluster.local:9000 - - firehose-reader-2.alt-setup-testing.pod.cluster.local:9000 - diff --git a/graph-node-alternate/firehose-firehose.yaml b/graph-node-alternate/overlays/multi-pod/firehose-firehose.yaml similarity index 77% rename from graph-node-alternate/firehose-firehose.yaml rename to graph-node-alternate/overlays/multi-pod/firehose-firehose.yaml index 845c3d8..a408c21 100644 --- a/graph-node-alternate/firehose-firehose.yaml +++ b/graph-node-alternate/overlays/multi-pod/firehose-firehose.yaml @@ -61,15 +61,26 @@ spec: secretKeyRef: key: aws_secret_access_key name: firehose-node-aws-credentials + - name: ONE_BLOCK_STORE_URL + valueFrom: + configMapKeyRef: + key: one_block_store_url + name: firehose-node-config + - name: MERGED_BLOCKS_STORE_URL + valueFrom: + configMapKeyRef: + key: merged_blocks_store_url + name: firehose-node-config command: - bash - "-c" - | + export NAMESPACE=$(cat /var/run/secrets/kubernetes.io/serviceaccount/namespace) exec firecosmos start firehose \ - --common-live-blocks-addr persistencecore-firehose-relayer.mainnet.svc.cluster.local:9010 \ + --common-live-blocks-addr persistencecore-firehose-relayer.$NAMESPACE.svc.cluster.local:9010 \ --common-first-streamable-block $FIRST_STREAMBLE_BLOCK \ - --common-one-block-store-url s3://sgp1.digitaloceanspaces.com/dexter-zone/one-blocks?region=us-east-1 \ - --common-merged-blocks-store-url s3://sgp1.digitaloceanspaces.com/dexter-zone/merged-blocks?region=us-east-1 + --common-one-block-store-url $ONE_BLOCKS_STORE_URL \ + --common-merged-blocks-store-url $MERGED_BLOCKS_STORE_URL resources: limits: cpu: "1" diff --git a/graph-node-alternate/firehose-merger.yaml b/graph-node-alternate/overlays/multi-pod/firehose-merger.yaml similarity index 77% rename from graph-node-alternate/firehose-merger.yaml rename to graph-node-alternate/overlays/multi-pod/firehose-merger.yaml index 58c12d7..ac0f9ed 100644 --- a/graph-node-alternate/firehose-merger.yaml +++ b/graph-node-alternate/overlays/multi-pod/firehose-merger.yaml @@ -55,15 +55,26 @@ spec: secretKeyRef: key: aws_secret_access_key name: firehose-node-aws-credentials + - name: ONE_BLOCK_STORE_URL + valueFrom: + configMapKeyRef: + key: one_block_store_url + name: firehose-node-config + - name: MERGED_BLOCKS_STORE_URL + valueFrom: + configMapKeyRef: + key: merged_blocks_store_url + name: firehose-node-config command: - bash - "-c" - | + export NAMESPACE=$(cat /var/run/secrets/kubernetes.io/serviceaccount/namespace) exec firecosmos start merger \ - --common-live-blocks-addr persistencecore-firehose-reader.mainnet.svc.cluster.local:9010 \ - --common-one-block-store-url s3://sgp1.digitaloceanspaces.com/dexter-zone/one-blocks?region=us-east-1 \ - --common-merged-blocks-store-url s3://sgp1.digitaloceanspaces.com/dexter-zone/merged-blocks?region=us-east-1 \ + --common-live-blocks-addr persistencecore-firehose-reader.$NAMESPACE.svc.cluster.local:9010 \ --common-first-streamable-block $FIRST_STREAMBLE_BLOCK + --common-one-block-store-url $ONE_BLOCKS_STORE_URL \ + --common-merged-blocks-store-url $MERGED_BLOCKS_STORE_URL resources: limits: cpu: "1" diff --git a/graph-node-alternate/firehose-reader.yaml b/graph-node-alternate/overlays/multi-pod/firehose-reader.yaml similarity index 86% rename from graph-node-alternate/firehose-reader.yaml rename to graph-node-alternate/overlays/multi-pod/firehose-reader.yaml index b606e89..56be0d7 100644 --- a/graph-node-alternate/firehose-reader.yaml +++ b/graph-node-alternate/overlays/multi-pod/firehose-reader.yaml @@ -185,12 +185,33 @@ spec: secretKeyRef: key: aws_secret_access_key name: firehose-node-aws-credentials + - name: ONE_BLOCK_STORE_URL + valueFrom: + configMapKeyRef: + key: one_block_store_url + name: firehose-node-config + - name: MERGED_BLOCKS_STORE_URL + valueFrom: + configMapKeyRef: + key: merged_blocks_store_url + name: firehose-node-config + - name: FIRST_STREAMBLE_BLOCK + valueFrom: + configMapKeyRef: + key: first_streamable_block + name: firehose-node-config command: - bash - "-c" - | - exec /persistencecore/bin/firecosmos start \ - --config /persistencecore/config/firehose.yml \ + exec /persistencecore/bin/firecosmos start reader \ + --reader-mode node \ + --reader-node-path /usr/bin/persistenceCore \ + --reader-node-args "start --x-crisis-skip-assert-invariants --home /persistencecore" \ + --reader-node-logs-filter "module=(p2p|pex|consensus|x/bank|x/wasm)" \ + --common-first-streamable-block $FIRST_STREAMBLE_BLOCK \ + --common-one-block-store-url "$ONE_BLOCKS_STORE_URL" \ + --common-merged-blocks-store-url "$MERGED_BLOCKS_STORE_URL" \ --data-dir /fh-data resources: limits: diff --git a/graph-node-alternate/firehose-relayer.yaml b/graph-node-alternate/overlays/multi-pod/firehose-relayer.yaml similarity index 100% rename from graph-node-alternate/firehose-relayer.yaml rename to graph-node-alternate/overlays/multi-pod/firehose-relayer.yaml diff --git a/graph-node-alternate/overlays/multi-pod/kustomization.yaml b/graph-node-alternate/overlays/multi-pod/kustomization.yaml new file mode 100644 index 0000000..89fa2b9 --- /dev/null +++ b/graph-node-alternate/overlays/multi-pod/kustomization.yaml @@ -0,0 +1,6 @@ +resources: + - ../base/ + - firehose-reader.yaml + - firehose-merger.yaml + - firehose-relayer.yaml + - firehose-firehose.yaml \ No newline at end of file diff --git a/graph-node-alternate/firehose-node.yaml b/graph-node-alternate/overlays/one-pod/firehose.yaml similarity index 80% rename from graph-node-alternate/firehose-node.yaml rename to graph-node-alternate/overlays/one-pod/firehose.yaml index 314a8ad..9af3984 100644 --- a/graph-node-alternate/firehose-node.yaml +++ b/graph-node-alternate/overlays/one-pod/firehose.yaml @@ -2,43 +2,31 @@ apiVersion: v1 kind: Service metadata: - name: persistencecore-firehose-node + name: persistencecore-firehose labels: - app.kubernetes.io/name: persistencecore-firehose-node + app.kubernetes.io/name: persistencecore-firehose spec: clusterIP: None ports: - - name: p2p - port: 26656 - protocol: TCP - targetPort: 26656 - - name: rpc - port: 26657 - protocol: TCP - targetPort: 26657 - - name: http - port: 8081 - protocol: TCP - targetPort: 8081 - name: firehose port: 9030 protocol: TCP targetPort: 9030 selector: - app.kubernetes.io/name: persistencecore-firehose-node + app.kubernetes.io/name: persistencecore-firehose --- apiVersion: apps/v1 kind: StatefulSet metadata: - name: persistencecore-firehose-node + name: persistencecore-firehose spec: - serviceName: persistencecore-firehose-node + serviceName: persistencecore-firehose replicas: 1 revisionHistoryLimit: 3 selector: matchLabels: app.kubernetes.io/instance: persistencecore - app.kubernetes.io/name: persistencecore-firehose-node + app.kubernetes.io/name: persistencecore-firehose template: metadata: annotations: @@ -48,8 +36,8 @@ spec: tier: gateway labels: app.kubernetes.io/instance: persistencecore - app.kubernetes.io/type: persistencecore-firehose-node - app.kubernetes.io/name: persistencecore-firehose-node + app.kubernetes.io/type: persistencecore-firehose + app.kubernetes.io/name: persistencecore-firehose app.kubernetes.io/version: '0.1' spec: terminationGracePeriodSeconds: 10 @@ -197,44 +185,47 @@ spec: secretKeyRef: key: aws_secret_access_key name: firehose-node-aws-credentials - # command: - # - /persistencecore/bin/firecosmos - # args: - # - start - # - --config - # - /persistencecore/config/firehose.yml - # - --data-dir - # - /fh-data - # command: - # - persistenceCore - # args: - # - start - # - --home - # - /persistencecore + - name: ONE_BLOCK_STORE_URL + valueFrom: + configMapKeyRef: + key: one_block_store_url + name: firehose-node-config + - name: MERGED_BLOCKS_STORE_URL + valueFrom: + configMapKeyRef: + key: merged_blocks_store_url + name: firehose-node-config + - name: FIRST_STREAMBLE_BLOCK + valueFrom: + configMapKeyRef: + key: first_streamable_block + name: firehose-node-config command: - bash - "-c" - | - sleep infinity - exec /persistencecore/bin/firecosmos start --config /persistencecore/config/firehose.yml --data-dir /fh-data + exec /persistencecore/bin/firecosmos start reader merger firehose \ + --reader-mode node \ + --reader-node-path /usr/bin/persistenceCore \ + --reader-node-args "start --x-crisis-skip-assert-invariants --home /persistencecore" \ + --reader-node-logs-filter "module=(p2p|pex|consensus|x/bank|x/wasm)" \ + --common-first-streamable-block $FIRST_STREAMBLE_BLOCK \ + --common-one-block-store-url "$ONE_BLOCK_STORE_URL" \ + --common-merged-blocks-store-url "$MERGED_BLOCKS_STORE_URL" \ + --data-dir /fh-data resources: limits: - cpu: "4" - memory: "7G" + cpu: "2" + memory: "6G" requests: - cpu: "3" + cpu: "2" memory: "6G" volumeMounts: - mountPath: /persistencecore name: node-pv-storage - mountPath: /config-graph name: config-graph - - mountPath: /fh-data - name: firehose-pv-storage volumes: - - name: firehose-pv-storage - persistentVolumeClaim: - claimName: firehose-pv-claim - name: config-graph configMap: name: config-graph @@ -249,4 +240,4 @@ spec: accessModes: [ "ReadWriteOnce" ] resources: requests: - storage: 70Gi + storage: 20Gi diff --git a/graph-node-alternate/overlays/one-pod/kustomization.yaml b/graph-node-alternate/overlays/one-pod/kustomization.yaml new file mode 100644 index 0000000..ec103f6 --- /dev/null +++ b/graph-node-alternate/overlays/one-pod/kustomization.yaml @@ -0,0 +1,3 @@ +resources: + - ../../base/ + - firehose.yaml \ No newline at end of file diff --git a/networks/devnet/configmap.yaml b/networks/devnet/configmap.yaml index 0f46bcd..21934cf 100644 --- a/networks/devnet/configmap.yaml +++ b/networks/devnet/configmap.yaml @@ -19,15 +19,17 @@ data: snapshot_restore_url: '' seeds: '' # For buffer time to sync the node - first_streamable_block: '300' + first_streamable_block: '50' force_init: 'false' + one_block_store_url: 's3://sgp1.digitaloceanspaces.com/dexter-zone/devnet/one-blocks?region=us-east-1' + merged_blocks_store_url: 's3://sgp1.digitaloceanspaces.com/dexter-zone/devnet/merged-blocks?region=us-east-1' --- apiVersion: v1 kind: ConfigMap metadata: name: graph-node-config data: - firehose_node.host: 'persistencecore-firehose-node.devnet.svc.cluster.local' + firehose_node.host: 'persistencecore-firehose.devnet.svc.cluster.local' firehose_node.port: '9030' ipfs.host: 'ipfs-node.devnet.svc.cluster.local' ipfs.port: '5001' \ No newline at end of file diff --git a/networks/devnet/kustomization.yaml b/networks/devnet/kustomization.yaml index d3df580..d348385 100644 --- a/networks/devnet/kustomization.yaml +++ b/networks/devnet/kustomization.yaml @@ -4,4 +4,4 @@ resources: - ../../base/persistencecore - ingress.yaml - configmap.yaml - - ../../graph-node \ No newline at end of file + - ../../graph-node-alternate/overlays/one-pod \ No newline at end of file diff --git a/networks/mainnet/configmap.yaml b/networks/mainnet/configmap.yaml index 6c83b21..3b78473 100644 --- a/networks/mainnet/configmap.yaml +++ b/networks/mainnet/configmap.yaml @@ -16,12 +16,12 @@ data: sync_node.exposer_port: '' sync_node.port_p2p: '26656' sync_node.genesis_json_fetch_url: 'https://raw.githubusercontent.com/persistenceOne/networks/master/core-1/final_genesis.json' - snapshot_restore_url: 'https://dexter-zone.sgp1.digitaloceanspaces.com/persistence-snapshot/persistence_10727804.tar.lz4' - # seeds: 'fbf0aa94b512902a249b246ed5763b50df9c0543@seed.core.persistence.one:26656,ade4d8bc8cbe014af6ebdf3cb7b1e9ad36f412c0@seeds.polkachu.com:15456,ebc272824924ea1a27ea3183dd0b9ba713494f83@persistence-mainnet-seed.autostake.com:26896' - seeds: 'fbf0aa94b512902a249b246ed5763b50df9c0543@seed.core.persistence.one:26656' - # For buffer time to sync the node + snapshot_restore_url: 'https://snapshots.polkachu.com/snapshots/persistence/persistence_11208915.tar.lz4' + seeds: 'fbf0aa94b512902a249b246ed5763b50df9c0543@seed.core.persistence.one:26656,646d0ad08c408f93276f90cd29d4e410e2d60f63@xprt.paranorm.pro:25656' first_streamable_block: '10522616' force_init: 'false' + one_block_store_url: 's3://sgp1.digitaloceanspaces.com/dexter-zone/one-blocks?region=us-east-1' + merged_blocks_store_url: 's3://sgp1.digitaloceanspaces.com/dexter-zone/merged-blocks?region=us-east-1' --- apiVersion: v1 diff --git a/networks/mainnet/ingress.yaml b/networks/mainnet/ingress.yaml index c52070a..22f187a 100644 --- a/networks/mainnet/ingress.yaml +++ b/networks/mainnet/ingress.yaml @@ -4,20 +4,55 @@ metadata: name: ingress-graph-mainnet-persistence annotations: nginx.ingress.kubernetes.io/ssl-redirect: "false" + nginx.ingress.kubernetes.io/enable-cors: "true" + nginx.org/websocket-services: "persistencecore-graph-node" + nginx.ingress.kubernetes.io/rewrite-target: /$2 spec: tls: - secretName: cloudflare-tls hosts: - - graph.mainnet.persistence.one + - graph.core-1.dexter.zone rules: - - host: graph.mainnet.persistence.one + - host: graph.core-1.dexter.zone http: paths: - - path: / + - path: /()(.*) pathType: Prefix backend: service: name: persistencecore-graph-node port: number: 8000 + - path: /ws(/|$)(.*) + pathType: Prefix + backend: + service: + name: persistencecore-graph-node + port: + number: 8001 + ingressClassName: nginx +--- +apiVersion: networking.k8s.io/v1 +kind: Ingress +metadata: + name: ingress-core-mainnet-hasura + annotations: + nginx.ingress.kubernetes.io/ssl-redirect: "false" + nginx.ingress.kubernetes.io/enable-cors: "true" +spec: + tls: + - secretName: cloudflare-tls + hosts: + - api.core-1.dexter.zone + rules: + - host: api.core-1.dexter.zone + http: + paths: + - path: / + pathType: Prefix + backend: + service: + name: persistencecore-hasura + port: + number: 8080 ingressClassName: nginx \ No newline at end of file From 5a04bb2220ff1fbbf30c303e212a9b18c067e222 Mon Sep 17 00:00:00 2001 From: betterclever Date: Fri, 26 May 2023 14:51:29 +0400 Subject: [PATCH 03/13] multi-pod mainnet setup and few fixes --- graph-node-alternate/base/graph-node.yaml | 7 ------ graph-node-alternate/base/kustomization.yaml | 10 +++----- .../overlays/one-pod/firehose.yaml | 23 +++++++++-------- networks/devnet/configmap.yaml | 2 +- networks/devnet/ingress.yaml | 25 +++++++++++++++++++ networks/mainnet/kustomization.yaml | 2 +- networks/testnet/configmap.yaml | 7 +++--- networks/testnet/kustomization.yaml | 4 +-- 8 files changed, 49 insertions(+), 31 deletions(-) diff --git a/graph-node-alternate/base/graph-node.yaml b/graph-node-alternate/base/graph-node.yaml index 83de427..3adde00 100644 --- a/graph-node-alternate/base/graph-node.yaml +++ b/graph-node-alternate/base/graph-node.yaml @@ -152,13 +152,6 @@ spec: # Print config before starting node cat config.toml - # maybe dns needs some time to resolve? - # sleep 10 - - # echo "Sleeping for infinity" - # sleep infinity - - # Start graph node graph-node --config config.toml \ --ipfs "$IPFS_HOST:$IPFS_PORT" \ --node-id index_node_cosmos_1 diff --git a/graph-node-alternate/base/kustomization.yaml b/graph-node-alternate/base/kustomization.yaml index 7f031d0..38cea71 100644 --- a/graph-node-alternate/base/kustomization.yaml +++ b/graph-node-alternate/base/kustomization.yaml @@ -1,12 +1,8 @@ resources: - # - firehose-reader.yaml - # - firehose-merger.yaml - # - firehose-relayer.yaml - # - firehose-firehose.yaml - - graph-node.yaml - - ipfs-node.yaml + # - graph-node.yaml + # - ipfs-node.yaml # - hasura.yaml - - ipfs-persistent-volume.yaml + # - ipfs-persistent-volume.yaml generatorOptions: disableNameSuffixHash: true diff --git a/graph-node-alternate/overlays/one-pod/firehose.yaml b/graph-node-alternate/overlays/one-pod/firehose.yaml index 9af3984..bad5c01 100644 --- a/graph-node-alternate/overlays/one-pod/firehose.yaml +++ b/graph-node-alternate/overlays/one-pod/firehose.yaml @@ -40,10 +40,10 @@ spec: app.kubernetes.io/name: persistencecore-firehose app.kubernetes.io/version: '0.1' spec: - terminationGracePeriodSeconds: 10 + terminationGracePeriodSeconds: 30 initContainers: - name: wait-for-genesis - image: docker.io/persistenceone/persistencecore:v7.0.0-fh + image: docker.io/persistenceone/persistencecore:v8.0.0-rc3-fh imagePullPolicy: Always env: - name: GENESIS_NODE_DATA_RESOLUTION_METHOD @@ -75,7 +75,7 @@ spec: echo "Ready to start" exit 0 - name: init-firehose-node - image: docker.io/persistenceone/persistencecore:v7.0.0-fh + image: docker.io/persistenceone/persistencecore:v8.0.0-rc3-fh imagePullPolicy: Always env: - name: CHAIN_ID @@ -165,7 +165,7 @@ spec: name: scripts-graph containers: - name: firehose-node - image: docker.io/persistenceone/persistencecore:v7.0.0-fh + image: docker.io/persistenceone/persistencecore:v8.0.0-rc3-fh imagePullPolicy: Always env: - name: CHAIN_ID @@ -204,7 +204,10 @@ spec: - bash - "-c" - | - exec /persistencecore/bin/firecosmos start reader merger firehose \ + sleep infinity + # exec /persistencecore/bin/firecosmos start reader merger relayer firehose \ + # exec /persistencecore/bin/firecosmos start reader \ + exec /persistencecore/bin/firecosmos start reader merger relayer firehose \ --reader-mode node \ --reader-node-path /usr/bin/persistenceCore \ --reader-node-args "start --x-crisis-skip-assert-invariants --home /persistencecore" \ @@ -215,11 +218,11 @@ spec: --data-dir /fh-data resources: limits: - cpu: "2" - memory: "6G" + cpu: "3" + memory: "7G" requests: - cpu: "2" - memory: "6G" + cpu: "3" + memory: "7G" volumeMounts: - mountPath: /persistencecore name: node-pv-storage @@ -240,4 +243,4 @@ spec: accessModes: [ "ReadWriteOnce" ] resources: requests: - storage: 20Gi + storage: 30Gi diff --git a/networks/devnet/configmap.yaml b/networks/devnet/configmap.yaml index 21934cf..3ab435a 100644 --- a/networks/devnet/configmap.yaml +++ b/networks/devnet/configmap.yaml @@ -16,7 +16,7 @@ data: sync_node.exposer_port: '8081' sync_node.port_p2p: '26656' sync_node.genesis_json_fetch_url: '' - snapshot_restore_url: '' + snapshot_restore_url: 'https://dexter-zone.sgp1.digitaloceanspaces.com/persistence-snapshot/devnet-backup.tar.lz4' seeds: '' # For buffer time to sync the node first_streamable_block: '50' diff --git a/networks/devnet/ingress.yaml b/networks/devnet/ingress.yaml index 08fe968..1ae4a7a 100644 --- a/networks/devnet/ingress.yaml +++ b/networks/devnet/ingress.yaml @@ -108,4 +108,29 @@ spec: name: persistencecore-graph-node port: number: 8001 + ingressClassName: nginx +--- +apiVersion: networking.k8s.io/v1 +kind: Ingress +metadata: + name: ingress-core-devnet-hasura + annotations: + nginx.ingress.kubernetes.io/ssl-redirect: "false" + nginx.ingress.kubernetes.io/enable-cors: "true" +spec: + tls: + - secretName: cloudflare-tls + hosts: + - api.devnet.core.dexter.zone + rules: + - host: api.devnet.core.dexter.zone + http: + paths: + - path: / + pathType: Prefix + backend: + service: + name: persistencecore-hasura + port: + number: 8080 ingressClassName: nginx \ No newline at end of file diff --git a/networks/mainnet/kustomization.yaml b/networks/mainnet/kustomization.yaml index d0aecdf..c9fae79 100644 --- a/networks/mainnet/kustomization.yaml +++ b/networks/mainnet/kustomization.yaml @@ -2,5 +2,5 @@ namespace: graph-core-1 resources: - ingress.yaml - - ../../graph-node-alternate + - ../../graph-node-alternate/overlays/multi-pod - configmap.yaml \ No newline at end of file diff --git a/networks/testnet/configmap.yaml b/networks/testnet/configmap.yaml index 84086c4..8f02b57 100644 --- a/networks/testnet/configmap.yaml +++ b/networks/testnet/configmap.yaml @@ -16,12 +16,13 @@ data: sync_node.exposer_port: '' sync_node.port_p2p: '26656' sync_node.genesis_json_fetch_url: 'https://raw.githubusercontent.com/persistenceOne/networks/master/test-core-1/final_genesis.json' - snapshot_restore_url: 'https://nevermore.sgp1.digitaloceanspaces.com/persistence%2Fsnapshot%2Ftestnet%2Ftestnet_10750519.tar.lz4' - seeds: 'b4237f8a7ca357d380ad119b76cbceec7e7e8a75@seed.testnet.persistence.one:26656' + snapshot_restore_url: 'https://dexter-zone.sgp1.digitaloceanspaces.com/persistence-snapshot/backup_1094_testnet.tar.lz4' + seeds: 'ade4d8bc8cbe014af6ebdf3cb7b1e9ad36f412c0@testnet-seeds.polkachu.com:15456,b4237f8a7ca357d380ad119b76cbceec7e7e8a75@seed.testnet.persistence.one:26656' # For buffer time to sync the node first_streamable_block: '10750521' force_init: 'false' - + one_block_store_url: 's3://sgp1.digitaloceanspaces.com/dexter-zone/testnet/one-blocks?region=us-east-1' + merged_blocks_store_url: 's3://sgp1.digitaloceanspaces.com/dexter-zone/testnet/merged-blocks?region=us-east-1' --- apiVersion: v1 kind: ConfigMap diff --git a/networks/testnet/kustomization.yaml b/networks/testnet/kustomization.yaml index fe8ddc4..412670d 100644 --- a/networks/testnet/kustomization.yaml +++ b/networks/testnet/kustomization.yaml @@ -2,5 +2,5 @@ namespace: graph-test-core-1 resources: - ingress.yaml - - ../../graph-node - - configmap.yaml \ No newline at end of file + - configmap.yaml + - ../../graph-node-alternate/overlays/one-pod \ No newline at end of file From 89223d9835c48cdb6979c5442c86361d04558038 Mon Sep 17 00:00:00 2001 From: betterclever Date: Wed, 26 Jul 2023 14:16:14 +0200 Subject: [PATCH 04/13] testnet new config and new mainnet api2 --- .DS_Store | Bin 0 -> 8196 bytes base/persistencecore/genesis.yaml | 4 +- base/persistencecore/validator.yaml | 4 +- graph-node-alternate/base/hasura2.yaml | 60 ++++++++++++++++++ graph-node-alternate/base/kustomization.yaml | 9 +-- .../base/scripts/init-firehose-node.sh | 13 ++-- .../overlays/multi-pod/firehose-firehose.yaml | 7 +- .../overlays/multi-pod/firehose-merger.yaml | 6 +- .../overlays/multi-pod/firehose-reader.yaml | 14 ++-- .../overlays/multi-pod/firehose-relayer.yaml | 4 +- .../overlays/multi-pod/kustomization.yaml | 2 +- .../overlays/one-pod/firehose.yaml | 21 +++--- graph-node/firehose-node.yaml | 6 +- networks/mainnet/configmap.yaml | 4 +- networks/mainnet/ingress.yaml | 29 ++++++++- networks/testnet/configmap.yaml | 17 ++--- 16 files changed, 150 insertions(+), 50 deletions(-) create mode 100644 .DS_Store create mode 100644 graph-node-alternate/base/hasura2.yaml diff --git a/.DS_Store b/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..c44c4e01ba546b7b25a13b4fcc65ff4c8f2a6eea GIT binary patch literal 8196 zcmeHMziSjh6nz$lVq-0SZ)UuE?{@dpDTISDj~r`E>eYQ59$W<0|{P#`D}6bK3g1%d*HMFE`I+@gYW-&sQ+ z6bK6ZmkRLvA;!g+cuXDIR|h&<0su=Gwhi}Xz5&J_6OXAwSkR0M1-ekuTYH5j`?HjP9|{}`k+8iAgch^?j<@y8+3zqRQ+yVpOdzBr&6i4 zIyH<%AEpnk*2{0sYkOm?y}K#C4MZtIk+()w+NP$;OPANAP3C>Le)j3w=RKF#$F@7e zym@w&mv%Yt3^k}jb=smP^>l8tJZhKuZ@o*Gmkw-xHHYL-jgkAD^dw0NRhLq2cOOcP} zkuZ;=*p)pn>Cz^hrkhZyF}hc3$BX+w_&*Lj!_MVab{ry4wa1ADj*U!BR>NIV4Zk?Y~KiRRb+A6s(JsGTp zh?gsn@1gS30_TsQD|RT|w!fb(+SV*ieb4ieT)tg;u)Z*BbTmPmAR6{^hGrb@xv5aWZq(s`J@dLl+d7M1d(6G|%<_h2ro3lT00Af&xK-e?$RO zs;pL4K-SmR8QNTH$GEQH;>LcdLmPt5mg7KMjspjO7~(#LE5{@rQ->Hq`|BS9L>)8k WT$iWtI6r+Jhx6YqYUmEV0zUwl{FFxk literal 0 HcmV?d00001 diff --git a/base/persistencecore/genesis.yaml b/base/persistencecore/genesis.yaml index dfe724f..04578dd 100644 --- a/base/persistencecore/genesis.yaml +++ b/base/persistencecore/genesis.yaml @@ -58,7 +58,7 @@ spec: spec: initContainers: - name: init-genesis - image: docker.io/persistenceone/persistencecore:v7.0.0-fh + image: persistenceone/persistencecore:v7.0.3-fh imagePullPolicy: Always env: - name: COINS @@ -152,7 +152,7 @@ spec: name: addresses containers: - name: validator - image: docker.io/persistenceone/persistencecore:v7.0.0-fh + image: persistenceone/persistencecore:v7.0.3-fh imagePullPolicy: Always env: - name: CHAIN_ID diff --git a/base/persistencecore/validator.yaml b/base/persistencecore/validator.yaml index 7948701..7be4210 100644 --- a/base/persistencecore/validator.yaml +++ b/base/persistencecore/validator.yaml @@ -50,7 +50,7 @@ spec: spec: initContainers: - name: wait-for-genesis - image: docker.io/persistenceone/persistencecore:v7.0.0-fh + image: persistenceone/persistencecore:v7.0.3-fh imagePullPolicy: Always env: - name: GENESIS_HOST @@ -68,7 +68,7 @@ spec: echo "Ready to start" exit 0 - name: init-validator - image: docker.io/persistenceone/persistencecore:v7.0.0-fh + image: persistenceone/persistencecore:v7.0.3-fh imagePullPolicy: Always env: - name: CHAIN_ID diff --git a/graph-node-alternate/base/hasura2.yaml b/graph-node-alternate/base/hasura2.yaml new file mode 100644 index 0000000..4edcf2e --- /dev/null +++ b/graph-node-alternate/base/hasura2.yaml @@ -0,0 +1,60 @@ +apiVersion: v1 +kind: Service +metadata: + name: dexter-hasura + labels: + app.kubernetes.io/name: dexter-hasura +spec: + ports: + - name: http + protocol: TCP + port: 8080 + targetPort: 8080 + selector: + app.kubernetes.io/name: dexter-hasura + +--- +apiVersion: apps/v1 +kind: Deployment +metadata: + name: dexter-hasura +spec: + replicas: 1 + selector: + matchLabels: + app.kubernetes.io/name: dexter-hasura + template: + metadata: + labels: + app.kubernetes.io/name: dexter-hasura + spec: + containers: + - name: hasura + image: hasura/graphql-engine:v2.19.0 + ports: + - containerPort: 8080 + protocol: TCP + resources: + limits: + cpu: "2" + memory: "2G" + requests: + cpu: "1" + memory: "2G" + env: + - name: HASURA_GRAPHQL_DATABASE_URL + valueFrom: + secretKeyRef: + name: postgres-secret + key: DEXTER_POSTGRES_HASURA_URL + - name: HASURA_GRAPHQL_ENABLE_CONSOLE + value: 'true' + - name: HASURA_GRAPHQL_DEV_MODE + value: 'true' + - name: HASURA_GRAPHQL_ADMIN_SECRET + valueFrom: + secretKeyRef: + name: postgres-secret + key: HASURA_GRAPHQL_ADMIN_SECRET + - name: HASURA_GRAPHQL_UNAUTHORIZED_ROLE + value: api-user \ No newline at end of file diff --git a/graph-node-alternate/base/kustomization.yaml b/graph-node-alternate/base/kustomization.yaml index 38cea71..e13c3dc 100644 --- a/graph-node-alternate/base/kustomization.yaml +++ b/graph-node-alternate/base/kustomization.yaml @@ -1,8 +1,9 @@ resources: - # - graph-node.yaml - # - ipfs-node.yaml - # - hasura.yaml - # - ipfs-persistent-volume.yaml + - graph-node.yaml + - ipfs-node.yaml + - hasura.yaml + # - hasura2.yaml + - ipfs-persistent-volume.yaml generatorOptions: disableNameSuffixHash: true diff --git a/graph-node-alternate/base/scripts/init-firehose-node.sh b/graph-node-alternate/base/scripts/init-firehose-node.sh index fb06dd6..d9c4762 100644 --- a/graph-node-alternate/base/scripts/init-firehose-node.sh +++ b/graph-node-alternate/base/scripts/init-firehose-node.sh @@ -58,6 +58,11 @@ else sed -i "s/seeds = \"\"/seeds = \"$SEEDS\"/g" $HOME_DIR/config/config.toml fi + # replace persistent_peers if the variable is not empty + if [ ! -z "$PERSISTENT_PEERS" ]; then + sed -i "s/persistent_peers = \"\"/persistent_peers = \"$PERSISTENT_PEERS\"/g" $HOME_DIR/config/config.toml + fi + echo "Printing the whole config.toml file" cat << END >> $HOME_DIR/config/config.toml @@ -119,8 +124,8 @@ fi # copy the firehose.yml file to the HOME_DIR because config-graph is a read-only volume cp /config-graph/firehose-reader.yml $HOME_DIR/config/firehose.yml -# if FIRST_STREAMBLE_BLOCK is not empty, then set the first_streamable_block in firehose.yml -if [ ! -z "$FIRST_STREAMBLE_BLOCK" ]; then - echo "Setting common-first-streamable-block to $FIRST_STREAMBLE_BLOCK" - sed -i "s/common-first-streamable-block: 0/common-first-streamable-block: $FIRST_STREAMBLE_BLOCK/g" $HOME_DIR/config/firehose.yml +# if FIRST_STREAMABLE_BLOCK is not empty, then set the first_streamable_block in firehose.yml +if [ ! -z "$FIRST_STREAMABLE_BLOCK" ]; then + echo "Setting common-first-streamable-block to $FIRST_STREAMABLE_BLOCK" + sed -i "s/common-first-streamable-block: 0/common-first-streamable-block: $FIRST_STREAMABLE_BLOCK/g" $HOME_DIR/config/firehose.yml fi \ No newline at end of file diff --git a/graph-node-alternate/overlays/multi-pod/firehose-firehose.yaml b/graph-node-alternate/overlays/multi-pod/firehose-firehose.yaml index a408c21..6f7bc0e 100644 --- a/graph-node-alternate/overlays/multi-pod/firehose-firehose.yaml +++ b/graph-node-alternate/overlays/multi-pod/firehose-firehose.yaml @@ -46,7 +46,7 @@ spec: image: betterpersist/firecosmos:0.6.0 imagePullPolicy: Always env: - - name: FIRST_STREAMBLE_BLOCK + - name: FIRST_STREAMABLE_BLOCK valueFrom: configMapKeyRef: key: first_streamable_block @@ -76,10 +76,11 @@ spec: - "-c" - | export NAMESPACE=$(cat /var/run/secrets/kubernetes.io/serviceaccount/namespace) + # sleep infinity exec firecosmos start firehose \ --common-live-blocks-addr persistencecore-firehose-relayer.$NAMESPACE.svc.cluster.local:9010 \ - --common-first-streamable-block $FIRST_STREAMBLE_BLOCK \ - --common-one-block-store-url $ONE_BLOCKS_STORE_URL \ + --common-first-streamable-block $FIRST_STREAMABLE_BLOCK \ + --common-one-block-store-url $ONE_BLOCK_STORE_URL \ --common-merged-blocks-store-url $MERGED_BLOCKS_STORE_URL resources: limits: diff --git a/graph-node-alternate/overlays/multi-pod/firehose-merger.yaml b/graph-node-alternate/overlays/multi-pod/firehose-merger.yaml index ac0f9ed..e6c7963 100644 --- a/graph-node-alternate/overlays/multi-pod/firehose-merger.yaml +++ b/graph-node-alternate/overlays/multi-pod/firehose-merger.yaml @@ -40,7 +40,7 @@ spec: image: betterpersist/firecosmos:0.6.0 imagePullPolicy: Always env: - - name: FIRST_STREAMBLE_BLOCK + - name: FIRST_STREAMABLE_BLOCK valueFrom: configMapKeyRef: key: first_streamable_block @@ -72,8 +72,8 @@ spec: export NAMESPACE=$(cat /var/run/secrets/kubernetes.io/serviceaccount/namespace) exec firecosmos start merger \ --common-live-blocks-addr persistencecore-firehose-reader.$NAMESPACE.svc.cluster.local:9010 \ - --common-first-streamable-block $FIRST_STREAMBLE_BLOCK - --common-one-block-store-url $ONE_BLOCKS_STORE_URL \ + --common-first-streamable-block $FIRST_STREAMABLE_BLOCK \ + --common-one-block-store-url $ONE_BLOCK_STORE_URL \ --common-merged-blocks-store-url $MERGED_BLOCKS_STORE_URL resources: limits: diff --git a/graph-node-alternate/overlays/multi-pod/firehose-reader.yaml b/graph-node-alternate/overlays/multi-pod/firehose-reader.yaml index 56be0d7..d98b8cc 100644 --- a/graph-node-alternate/overlays/multi-pod/firehose-reader.yaml +++ b/graph-node-alternate/overlays/multi-pod/firehose-reader.yaml @@ -43,7 +43,7 @@ spec: terminationGracePeriodSeconds: 10 initContainers: - name: wait-for-genesis - image: docker.io/persistenceone/persistencecore:v7.0.0-fh + image: persistenceone/persistencecore:v7.0.3-fh imagePullPolicy: Always env: - name: GENESIS_NODE_DATA_RESOLUTION_METHOD @@ -75,7 +75,7 @@ spec: echo "Ready to start" exit 0 - name: init-firehose-node - image: docker.io/persistenceone/persistencecore:v7.0.0-fh + image: persistenceone/persistencecore:v7.0.3-fh imagePullPolicy: Always env: - name: CHAIN_ID @@ -124,7 +124,7 @@ spec: configMapKeyRef: key: seeds name: firehose-node-config - - name: FIRST_STREAMBLE_BLOCK + - name: FIRST_STREAMABLE_BLOCK valueFrom: configMapKeyRef: key: first_streamable_block @@ -165,7 +165,7 @@ spec: name: scripts-graph containers: - name: firehose-node - image: docker.io/persistenceone/persistencecore:v7.0.0-fh + image: persistenceone/persistencecore:v7.0.3-fh imagePullPolicy: Always env: - name: CHAIN_ID @@ -195,7 +195,7 @@ spec: configMapKeyRef: key: merged_blocks_store_url name: firehose-node-config - - name: FIRST_STREAMBLE_BLOCK + - name: FIRST_STREAMABLE_BLOCK valueFrom: configMapKeyRef: key: first_streamable_block @@ -209,8 +209,8 @@ spec: --reader-node-path /usr/bin/persistenceCore \ --reader-node-args "start --x-crisis-skip-assert-invariants --home /persistencecore" \ --reader-node-logs-filter "module=(p2p|pex|consensus|x/bank|x/wasm)" \ - --common-first-streamable-block $FIRST_STREAMBLE_BLOCK \ - --common-one-block-store-url "$ONE_BLOCKS_STORE_URL" \ + --common-first-streamable-block $FIRST_STREAMABLE_BLOCK \ + --common-one-block-store-url "$ONE_BLOCK_STORE_URL" \ --common-merged-blocks-store-url "$MERGED_BLOCKS_STORE_URL" \ --data-dir /fh-data resources: diff --git a/graph-node-alternate/overlays/multi-pod/firehose-relayer.yaml b/graph-node-alternate/overlays/multi-pod/firehose-relayer.yaml index 44f2865..7d797b2 100644 --- a/graph-node-alternate/overlays/multi-pod/firehose-relayer.yaml +++ b/graph-node-alternate/overlays/multi-pod/firehose-relayer.yaml @@ -46,7 +46,7 @@ spec: image: betterpersist/firecosmos:0.6.0 imagePullPolicy: Always env: - - name: FIRST_STREAMBLE_BLOCK + - name: FIRST_STREAMABLE_BLOCK valueFrom: configMapKeyRef: key: first_streamable_block @@ -67,7 +67,7 @@ spec: - | exec firecosmos start relayer \ --relayer-source persistencecore-firehose-reader.mainnet.svc.cluster.local:9000 \ - --common-first-streamable-block $FIRST_STREAMBLE_BLOCK + --common-first-streamable-block $FIRST_STREAMABLE_BLOCK resources: limits: cpu: "1" diff --git a/graph-node-alternate/overlays/multi-pod/kustomization.yaml b/graph-node-alternate/overlays/multi-pod/kustomization.yaml index 89fa2b9..486a116 100644 --- a/graph-node-alternate/overlays/multi-pod/kustomization.yaml +++ b/graph-node-alternate/overlays/multi-pod/kustomization.yaml @@ -1,5 +1,5 @@ resources: - - ../base/ + - ../../base/ - firehose-reader.yaml - firehose-merger.yaml - firehose-relayer.yaml diff --git a/graph-node-alternate/overlays/one-pod/firehose.yaml b/graph-node-alternate/overlays/one-pod/firehose.yaml index bad5c01..69e8c1a 100644 --- a/graph-node-alternate/overlays/one-pod/firehose.yaml +++ b/graph-node-alternate/overlays/one-pod/firehose.yaml @@ -43,7 +43,7 @@ spec: terminationGracePeriodSeconds: 30 initContainers: - name: wait-for-genesis - image: docker.io/persistenceone/persistencecore:v8.0.0-rc3-fh + image: persistenceone/persistencecore:v7.0.3-fh imagePullPolicy: Always env: - name: GENESIS_NODE_DATA_RESOLUTION_METHOD @@ -75,7 +75,7 @@ spec: echo "Ready to start" exit 0 - name: init-firehose-node - image: docker.io/persistenceone/persistencecore:v8.0.0-rc3-fh + image: persistenceone/persistencecore:v7.0.3-fh imagePullPolicy: Always env: - name: CHAIN_ID @@ -124,7 +124,12 @@ spec: configMapKeyRef: key: seeds name: firehose-node-config - - name: FIRST_STREAMBLE_BLOCK + - name: PERSISTENT_PEERS + valueFrom: + configMapKeyRef: + key: persistent_peers + name: firehose-node-config + - name: FIRST_STREAMABLE_BLOCK valueFrom: configMapKeyRef: key: first_streamable_block @@ -165,7 +170,7 @@ spec: name: scripts-graph containers: - name: firehose-node - image: docker.io/persistenceone/persistencecore:v8.0.0-rc3-fh + image: persistenceone/persistencecore:v7.0.3-fh imagePullPolicy: Always env: - name: CHAIN_ID @@ -195,7 +200,7 @@ spec: configMapKeyRef: key: merged_blocks_store_url name: firehose-node-config - - name: FIRST_STREAMBLE_BLOCK + - name: FIRST_STREAMABLE_BLOCK valueFrom: configMapKeyRef: key: first_streamable_block @@ -204,15 +209,15 @@ spec: - bash - "-c" - | - sleep infinity + # sleep infinity # exec /persistencecore/bin/firecosmos start reader merger relayer firehose \ - # exec /persistencecore/bin/firecosmos start reader \ + # exec /persistencecore/bin/firecosmos start reader merger \ exec /persistencecore/bin/firecosmos start reader merger relayer firehose \ --reader-mode node \ --reader-node-path /usr/bin/persistenceCore \ --reader-node-args "start --x-crisis-skip-assert-invariants --home /persistencecore" \ --reader-node-logs-filter "module=(p2p|pex|consensus|x/bank|x/wasm)" \ - --common-first-streamable-block $FIRST_STREAMBLE_BLOCK \ + --common-first-streamable-block $FIRST_STREAMABLE_BLOCK \ --common-one-block-store-url "$ONE_BLOCK_STORE_URL" \ --common-merged-blocks-store-url "$MERGED_BLOCKS_STORE_URL" \ --data-dir /fh-data diff --git a/graph-node/firehose-node.yaml b/graph-node/firehose-node.yaml index 7f74557..2a96575 100644 --- a/graph-node/firehose-node.yaml +++ b/graph-node/firehose-node.yaml @@ -55,7 +55,7 @@ spec: terminationGracePeriodSeconds: 10 initContainers: - name: wait-for-genesis - image: docker.io/persistenceone/persistencecore:v7.0.0-fh + image: persistenceone/persistencecore:v7.0.3-fh imagePullPolicy: Always env: - name: GENESIS_NODE_DATA_RESOLUTION_METHOD @@ -87,7 +87,7 @@ spec: echo "Ready to start" exit 0 - name: init-firehose-node - image: docker.io/persistenceone/persistencecore:v7.0.0-fh + image: persistenceone/persistencecore:v7.0.3-fh imagePullPolicy: Always env: - name: CHAIN_ID @@ -178,7 +178,7 @@ spec: name: scripts-graph containers: - name: firehose-node - image: docker.io/persistenceone/persistencecore:v7.0.0-fh + image: persistenceone/persistencecore:v7.0.3-fh imagePullPolicy: Always env: - name: CHAIN_ID diff --git a/networks/mainnet/configmap.yaml b/networks/mainnet/configmap.yaml index 3b78473..bf7cfa8 100644 --- a/networks/mainnet/configmap.yaml +++ b/networks/mainnet/configmap.yaml @@ -16,8 +16,8 @@ data: sync_node.exposer_port: '' sync_node.port_p2p: '26656' sync_node.genesis_json_fetch_url: 'https://raw.githubusercontent.com/persistenceOne/networks/master/core-1/final_genesis.json' - snapshot_restore_url: 'https://snapshots.polkachu.com/snapshots/persistence/persistence_11208915.tar.lz4' - seeds: 'fbf0aa94b512902a249b246ed5763b50df9c0543@seed.core.persistence.one:26656,646d0ad08c408f93276f90cd29d4e410e2d60f63@xprt.paranorm.pro:25656' + snapshot_restore_url: 'https://snapshots.autostake.com/core-1/core-1-Jun-30.tar.lz4' + seeds: 'fbf0aa94b512902a249b246ed5763b50df9c0543@seed.core.persistence.one:26656' first_streamable_block: '10522616' force_init: 'false' one_block_store_url: 's3://sgp1.digitaloceanspaces.com/dexter-zone/one-blocks?region=us-east-1' diff --git a/networks/mainnet/ingress.yaml b/networks/mainnet/ingress.yaml index 22f187a..869dd19 100644 --- a/networks/mainnet/ingress.yaml +++ b/networks/mainnet/ingress.yaml @@ -55,4 +55,31 @@ spec: name: persistencecore-hasura port: number: 8080 - ingressClassName: nginx \ No newline at end of file + ingressClassName: nginx + +--- +apiVersion: networking.k8s.io/v1 +kind: Ingress +metadata: + name: ingress-core-mainnet-hasura-new + annotations: + nginx.ingress.kubernetes.io/ssl-redirect: "false" + nginx.ingress.kubernetes.io/enable-cors: "true" +spec: + tls: + - secretName: cloudflare-tls + hosts: + - api2.core-1.dexter.zone + rules: + - host: api2.core-1.dexter.zone + http: + paths: + - path: / + pathType: Prefix + backend: + service: + name: dexter-hasura + port: + number: 8080 + ingressClassName: nginx + diff --git a/networks/testnet/configmap.yaml b/networks/testnet/configmap.yaml index 8f02b57..9433878 100644 --- a/networks/testnet/configmap.yaml +++ b/networks/testnet/configmap.yaml @@ -3,7 +3,7 @@ kind: ConfigMap metadata: name: persistencecore data: - chain.id: test-core-1 + chain.id: test-core-2 --- apiVersion: v1 @@ -15,21 +15,22 @@ data: sync_node.host: '' sync_node.exposer_port: '' sync_node.port_p2p: '26656' - sync_node.genesis_json_fetch_url: 'https://raw.githubusercontent.com/persistenceOne/networks/master/test-core-1/final_genesis.json' - snapshot_restore_url: 'https://dexter-zone.sgp1.digitaloceanspaces.com/persistence-snapshot/backup_1094_testnet.tar.lz4' - seeds: 'ade4d8bc8cbe014af6ebdf3cb7b1e9ad36f412c0@testnet-seeds.polkachu.com:15456,b4237f8a7ca357d380ad119b76cbceec7e7e8a75@seed.testnet.persistence.one:26656' + sync_node.genesis_json_fetch_url: https://raw.githubusercontent.com/persistenceOne/networks/master/test-core-2/genesis.json + snapshot_restore_url: https://files.audit.one/persistence/snapshot/test-core-2/test-core-2-Jun-01.tar.lz4 + seeds: '' + persistent_peers: 'cee6b94965f301e8b5ad905a65fa39c03cd193ce@51.68.152.17:26656,7f971fc5fc2ffedbaf32f3b4021645571461a712@198.244.177.67:26656' # For buffer time to sync the node - first_streamable_block: '10750521' + first_streamable_block: '60000' force_init: 'false' - one_block_store_url: 's3://sgp1.digitaloceanspaces.com/dexter-zone/testnet/one-blocks?region=us-east-1' - merged_blocks_store_url: 's3://sgp1.digitaloceanspaces.com/dexter-zone/testnet/merged-blocks?region=us-east-1' + one_block_store_url: 's3://sgp1.digitaloceanspaces.com/dexter-zone/testnet-2/one-blocks?region=us-east-1' + merged_blocks_store_url: 's3://sgp1.digitaloceanspaces.com/dexter-zone/testnet-2/merged-blocks?region=us-east-1' --- apiVersion: v1 kind: ConfigMap metadata: name: graph-node-config data: - firehose_node.host: 'persistencecore-firehose-node.graph-test-core-1.svc.cluster.local' + firehose_node.host: 'persistencecore-firehose.testnet.svc.cluster.local' firehose_node.port: '9030' ipfs.host: 'ipfs-node.graph-test-core-1.svc.cluster.local' ipfs.port: '5001' \ No newline at end of file From 7135e8c48125259eeda2c904100515fff55d095f Mon Sep 17 00:00:00 2001 From: betterclever Date: Thu, 31 Aug 2023 11:15:39 +0400 Subject: [PATCH 05/13] latest testnet config v8.1.0 --- base/persistencecore/genesis.yaml | 4 ++-- base/persistencecore/validator.yaml | 4 ++-- .../overlays/multi-pod/firehose-reader.yaml | 6 +++--- graph-node-alternate/overlays/one-pod/firehose.yaml | 12 ++++++------ graph-node/firehose-node.yaml | 6 +++--- networks/testnet/configmap.yaml | 6 +++--- 6 files changed, 19 insertions(+), 19 deletions(-) diff --git a/base/persistencecore/genesis.yaml b/base/persistencecore/genesis.yaml index 04578dd..c90ccf6 100644 --- a/base/persistencecore/genesis.yaml +++ b/base/persistencecore/genesis.yaml @@ -58,7 +58,7 @@ spec: spec: initContainers: - name: init-genesis - image: persistenceone/persistencecore:v7.0.3-fh + image: persistenceone/persistencecore:v8.0.0-fh imagePullPolicy: Always env: - name: COINS @@ -152,7 +152,7 @@ spec: name: addresses containers: - name: validator - image: persistenceone/persistencecore:v7.0.3-fh + image: persistenceone/persistencecore:v8.0.0-fh imagePullPolicy: Always env: - name: CHAIN_ID diff --git a/base/persistencecore/validator.yaml b/base/persistencecore/validator.yaml index 7be4210..40e7ac5 100644 --- a/base/persistencecore/validator.yaml +++ b/base/persistencecore/validator.yaml @@ -50,7 +50,7 @@ spec: spec: initContainers: - name: wait-for-genesis - image: persistenceone/persistencecore:v7.0.3-fh + image: persistenceone/persistencecore:v8.0.0-fh imagePullPolicy: Always env: - name: GENESIS_HOST @@ -68,7 +68,7 @@ spec: echo "Ready to start" exit 0 - name: init-validator - image: persistenceone/persistencecore:v7.0.3-fh + image: persistenceone/persistencecore:v8.0.0-fh imagePullPolicy: Always env: - name: CHAIN_ID diff --git a/graph-node-alternate/overlays/multi-pod/firehose-reader.yaml b/graph-node-alternate/overlays/multi-pod/firehose-reader.yaml index d98b8cc..a116114 100644 --- a/graph-node-alternate/overlays/multi-pod/firehose-reader.yaml +++ b/graph-node-alternate/overlays/multi-pod/firehose-reader.yaml @@ -43,7 +43,7 @@ spec: terminationGracePeriodSeconds: 10 initContainers: - name: wait-for-genesis - image: persistenceone/persistencecore:v7.0.3-fh + image: persistenceone/persistencecore:v8.1.0-fh imagePullPolicy: Always env: - name: GENESIS_NODE_DATA_RESOLUTION_METHOD @@ -75,7 +75,7 @@ spec: echo "Ready to start" exit 0 - name: init-firehose-node - image: persistenceone/persistencecore:v7.0.3-fh + image: persistenceone/persistencecore:v8.1.0-fh imagePullPolicy: Always env: - name: CHAIN_ID @@ -165,7 +165,7 @@ spec: name: scripts-graph containers: - name: firehose-node - image: persistenceone/persistencecore:v7.0.3-fh + image: persistenceone/persistencecore:v8.1.0-fh imagePullPolicy: Always env: - name: CHAIN_ID diff --git a/graph-node-alternate/overlays/one-pod/firehose.yaml b/graph-node-alternate/overlays/one-pod/firehose.yaml index 69e8c1a..596cd96 100644 --- a/graph-node-alternate/overlays/one-pod/firehose.yaml +++ b/graph-node-alternate/overlays/one-pod/firehose.yaml @@ -43,7 +43,7 @@ spec: terminationGracePeriodSeconds: 30 initContainers: - name: wait-for-genesis - image: persistenceone/persistencecore:v7.0.3-fh + image: persistenceone/persistencecore:v8.1.0-fh imagePullPolicy: Always env: - name: GENESIS_NODE_DATA_RESOLUTION_METHOD @@ -75,7 +75,7 @@ spec: echo "Ready to start" exit 0 - name: init-firehose-node - image: persistenceone/persistencecore:v7.0.3-fh + image: persistenceone/persistencecore:v8.1.0-fh imagePullPolicy: Always env: - name: CHAIN_ID @@ -170,7 +170,7 @@ spec: name: scripts-graph containers: - name: firehose-node - image: persistenceone/persistencecore:v7.0.3-fh + image: persistenceone/persistencecore:v8.1.0-fh imagePullPolicy: Always env: - name: CHAIN_ID @@ -210,8 +210,8 @@ spec: - "-c" - | # sleep infinity - # exec /persistencecore/bin/firecosmos start reader merger relayer firehose \ - # exec /persistencecore/bin/firecosmos start reader merger \ + # exec /persistencecore/bin/firecosmos start reader \ + # exec /persistencecore/bin/firecosmos start merger \ exec /persistencecore/bin/firecosmos start reader merger relayer firehose \ --reader-mode node \ --reader-node-path /usr/bin/persistenceCore \ @@ -248,4 +248,4 @@ spec: accessModes: [ "ReadWriteOnce" ] resources: requests: - storage: 30Gi + storage: 100Gi diff --git a/graph-node/firehose-node.yaml b/graph-node/firehose-node.yaml index 2a96575..2bba403 100644 --- a/graph-node/firehose-node.yaml +++ b/graph-node/firehose-node.yaml @@ -55,7 +55,7 @@ spec: terminationGracePeriodSeconds: 10 initContainers: - name: wait-for-genesis - image: persistenceone/persistencecore:v7.0.3-fh + image: persistenceone/persistencecore:v8.0.0-fh imagePullPolicy: Always env: - name: GENESIS_NODE_DATA_RESOLUTION_METHOD @@ -87,7 +87,7 @@ spec: echo "Ready to start" exit 0 - name: init-firehose-node - image: persistenceone/persistencecore:v7.0.3-fh + image: persistenceone/persistencecore:v8.0.0-fh imagePullPolicy: Always env: - name: CHAIN_ID @@ -178,7 +178,7 @@ spec: name: scripts-graph containers: - name: firehose-node - image: persistenceone/persistencecore:v7.0.3-fh + image: persistenceone/persistencecore:v8.0.0-fh imagePullPolicy: Always env: - name: CHAIN_ID diff --git a/networks/testnet/configmap.yaml b/networks/testnet/configmap.yaml index 9433878..490767d 100644 --- a/networks/testnet/configmap.yaml +++ b/networks/testnet/configmap.yaml @@ -16,9 +16,9 @@ data: sync_node.exposer_port: '' sync_node.port_p2p: '26656' sync_node.genesis_json_fetch_url: https://raw.githubusercontent.com/persistenceOne/networks/master/test-core-2/genesis.json - snapshot_restore_url: https://files.audit.one/persistence/snapshot/test-core-2/test-core-2-Jun-01.tar.lz4 - seeds: '' - persistent_peers: 'cee6b94965f301e8b5ad905a65fa39c03cd193ce@51.68.152.17:26656,7f971fc5fc2ffedbaf32f3b4021645571461a712@198.244.177.67:26656' + snapshot_restore_url: https://dexter-zone.sgp1.digitaloceanspaces.com/persistence-snapshot/testnet/testnet-after-v8_1-upgrade.tar.lz4 + seeds: '3ce04530d850e727d092e9a81d9f580c7ff8db56@141.94.97.77:26656' + persistent_peers: '3ce04530d850e727d092e9a81d9f580c7ff8db56@141.94.97.77:26656,3f0918801adf0ea1d17bef501e2583a5539f5cd9@65.21.126.182:26656,8eb88b7edf912ac9d63b183b42823f220a3fc226@65.108.192.123:48656,98f6fc6560ebec5a1d2099ecf91213b53575ec81@65.21.77.175:11006,ee239d2498bd073968e774887f813ac1fd4e50b3@95.216.242.183:26656,0134c0a888ab07d67c4a41afcb103b76266fb0e7@65.21.202.61:11006,f6ef633ef1caa621f3f4bea7a7ef31463fc9a43e@95.216.184.59:26656,591ceb144a142275ac3e51ed310aa1b6eb04e20c@217.76.48.63:38556,9b341b2b1d6d453a79c911ad7b2d032e117184cf@136.243.105.228:26656,b2f036bfa207249363ea2ac935e6bed3d4c10dbd@37.252.184.239:26656,2dd629fc08c97061c64f15f934c1c368565870d6@217.76.53.18:36656,7fd0511997417324ab46ac85a935d89998d1e4e2@94.130.76.179:26656,c3e785f853677ad3677542f9e2679a20957ca104@217.76.61.200:26756,47d24380223603552fa3b981239617df8bf58902@185.225.233.30:26656,cee6b94965f301e8b5ad905a65fa39c03cd193ce@51.68.152.17:26656,990269572d9075777f98460e35fa57d6665fac9d@94.130.132.227:2130,428b57bad52f71845fc6f359c49bdbc39eb22d99@195.14.6.2:26656,21ca0b996db604681fb73721ecb01d2c6410c628@162.19.94.46:26656,30859d0fb31dd08894ba15ac90bf020b26ba5890@23.88.53.28:56666,ac80febd6313b39e70d3e5ed50afddc491d79258@195.189.96.111:31656,82e69659bef9c385b4934727f43d69a673f6f033@5.161.191.128:26656,762c339b3f7626b9ebcfe7286f1e133eec587164@65.108.98.235:58556,49d98497f4922217829d0aff65bfb68cce715677@192.248.177.214:26656,fc86e4edef908edc6699bbecdf568cc7743d8d07@125.143.190.194:13002,7f971fc5fc2ffedbaf32f3b4021645571461a712@198.244.177.67:26656,9551e08e22f13ee6dc769731cd131d59f9731332@65.108.79.246:26706,5c2a752c9b1952dbed075c56c600c3a79b58c395@195.3.220.54:26896,8de0a3e97190d24b75736a2db6ebc107aeaafce8@93.115.25.18:31656,20b4f9207cdc9d0310399f848f057621f7251846@222.106.187.13:20800,2585af35660dcfb0a02dd8bc2e766d11f5603f99@73.117.148.143:26656,40f63c75b6afe61e74af428cc669eb481089a587@65.108.225.158:15456,23ae7c78081becdfe16af99329337920beafa2b2@167.235.115.119:26656' # For buffer time to sync the node first_streamable_block: '60000' force_init: 'false' From 731a7db1454486292ea37314b73f97bc1516931d Mon Sep 17 00:00:00 2001 From: Nabarun Sarkar Date: Thu, 31 Aug 2023 20:57:48 +0530 Subject: [PATCH 06/13] Add metrics to service --- graph-node-alternate/base/graph-node.yaml | 4 ++++ graph-node-alternate/base/scripts/init-firehose-node.sh | 1 + .../overlays/multi-pod/firehose-firehose.yaml | 4 ++++ .../overlays/multi-pod/firehose-merger.yaml | 5 +++++ .../overlays/multi-pod/firehose-reader.yaml | 8 ++++++++ .../overlays/multi-pod/firehose-relayer.yaml | 4 ++++ graph-node-alternate/overlays/one-pod/firehose.yaml | 8 ++++++++ 7 files changed, 34 insertions(+) diff --git a/graph-node-alternate/base/graph-node.yaml b/graph-node-alternate/base/graph-node.yaml index 3adde00..947edb0 100644 --- a/graph-node-alternate/base/graph-node.yaml +++ b/graph-node-alternate/base/graph-node.yaml @@ -20,6 +20,10 @@ spec: port: 8020 protocol: TCP targetPort: 8020 + - name: health + port: 8030 + protocol: TCP + targetPort: 8030 selector: app.kubernetes.io/name: persistencecore-graph-node --- diff --git a/graph-node-alternate/base/scripts/init-firehose-node.sh b/graph-node-alternate/base/scripts/init-firehose-node.sh index d9c4762..90e0746 100644 --- a/graph-node-alternate/base/scripts/init-firehose-node.sh +++ b/graph-node-alternate/base/scripts/init-firehose-node.sh @@ -52,6 +52,7 @@ else sed -i 's/timeout_commit = "5s"/timeout_commit = "1s"/g' $HOME_DIR/config/config.toml sed -i 's/timeout_propose = "3s"/timeout_propose = "1s"/g' $HOME_DIR/config/config.toml sed -i 's/index_all_keys = false/index_all_keys = true/g' $HOME_DIR/config/config.toml + sed -i 's/prometheus = false/prometheus = true/g' $HOME_DIR/config/config.toml # replace seeds if the variable is not empty if [ ! -z "$SEEDS" ]; then diff --git a/graph-node-alternate/overlays/multi-pod/firehose-firehose.yaml b/graph-node-alternate/overlays/multi-pod/firehose-firehose.yaml index 6f7bc0e..7929bfe 100644 --- a/graph-node-alternate/overlays/multi-pod/firehose-firehose.yaml +++ b/graph-node-alternate/overlays/multi-pod/firehose-firehose.yaml @@ -12,6 +12,10 @@ spec: port: 9030 protocol: TCP targetPort: 9030 + - name: prometheus-firehose + port: 9102 + protocol: TCP + targetPort: 9102 selector: app.kubernetes.io/name: persistencecore-firehose diff --git a/graph-node-alternate/overlays/multi-pod/firehose-merger.yaml b/graph-node-alternate/overlays/multi-pod/firehose-merger.yaml index e6c7963..785fc84 100644 --- a/graph-node-alternate/overlays/multi-pod/firehose-merger.yaml +++ b/graph-node-alternate/overlays/multi-pod/firehose-merger.yaml @@ -7,6 +7,11 @@ metadata: app.kubernetes.io/name: persistencecore-firehose-merger spec: clusterIP: None + ports: + - name: prometheus-firehose + port: 9102 + protocol: TCP + targetPort: 9102 selector: app.kubernetes.io/name: persistencecore-firehose-merger --- diff --git a/graph-node-alternate/overlays/multi-pod/firehose-reader.yaml b/graph-node-alternate/overlays/multi-pod/firehose-reader.yaml index a116114..74816db 100644 --- a/graph-node-alternate/overlays/multi-pod/firehose-reader.yaml +++ b/graph-node-alternate/overlays/multi-pod/firehose-reader.yaml @@ -12,6 +12,14 @@ spec: port: 9000 protocol: TCP targetPort: 9000 + - name: prometheus-node + port: 26660 + protocol: TCP + targetPort: 26660 + - name: prometheus-firehose + port: 9102 + protocol: TCP + targetPort: 9102 selector: app.kubernetes.io/name: persistencecore-firehose-reader --- diff --git a/graph-node-alternate/overlays/multi-pod/firehose-relayer.yaml b/graph-node-alternate/overlays/multi-pod/firehose-relayer.yaml index 7d797b2..51484ca 100644 --- a/graph-node-alternate/overlays/multi-pod/firehose-relayer.yaml +++ b/graph-node-alternate/overlays/multi-pod/firehose-relayer.yaml @@ -12,6 +12,10 @@ spec: port: 9010 protocol: TCP targetPort: 9010 + - name: prometheus-firehose + port: 9102 + protocol: TCP + targetPort: 9102 selector: app.kubernetes.io/name: persistencecore-firehose-relayer diff --git a/graph-node-alternate/overlays/one-pod/firehose.yaml b/graph-node-alternate/overlays/one-pod/firehose.yaml index 596cd96..ea7c559 100644 --- a/graph-node-alternate/overlays/one-pod/firehose.yaml +++ b/graph-node-alternate/overlays/one-pod/firehose.yaml @@ -12,6 +12,14 @@ spec: port: 9030 protocol: TCP targetPort: 9030 + - name: prometheus-node + port: 26660 + protocol: TCP + targetPort: 26660 + - name: prometheus-firehose + port: 9102 + protocol: TCP + targetPort: 9102 selector: app.kubernetes.io/name: persistencecore-firehose --- From 79e28864eb896538b6dd7f993c7f3b98408e30b4 Mon Sep 17 00:00:00 2001 From: betterclever Date: Mon, 4 Sep 2023 11:08:22 +0400 Subject: [PATCH 07/13] fix namespaces for dexter deployments --- .gitignore | 2 +- base/persistencecore/genesis.yaml | 8 +++++--- base/persistencecore/kustomization.yaml | 3 ++- base/persistencecore/validator.yaml | 4 ++-- .../overlays/multi-pod/firehose-reader.yaml | 11 ++++++++--- graph-node/firehose-node.yaml | 6 +++--- networks/devnet/kustomization.yaml | 6 +++--- networks/mainnet/configmap.yaml | 7 ++++--- networks/mainnet/ingress.yaml | 2 +- networks/mainnet/kustomization.yaml | 2 +- networks/testnet/configmap.yaml | 2 +- networks/testnet/kustomization.yaml | 2 +- 12 files changed, 32 insertions(+), 23 deletions(-) diff --git a/.gitignore b/.gitignore index 8990dbd..4c7dd8c 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,3 @@ -graph-node-alternate/ +# graph-node-alternate/ networks/testing-alt .idea/ diff --git a/base/persistencecore/genesis.yaml b/base/persistencecore/genesis.yaml index c90ccf6..566b34c 100644 --- a/base/persistencecore/genesis.yaml +++ b/base/persistencecore/genesis.yaml @@ -58,7 +58,7 @@ spec: spec: initContainers: - name: init-genesis - image: persistenceone/persistencecore:v8.0.0-fh + image: persistenceone/persistencecore:v8.1.0-fh imagePullPolicy: Always env: - name: COINS @@ -107,12 +107,13 @@ spec: sed -i 's/timeout_propose = "3s"/timeout_propose = "1s"/g' $HOME_DIR/config/config.toml sed -i 's/index_all_keys = false/index_all_keys = true/g' $HOME_DIR/config/config.toml sed -i 's/unsafe = false/unsafe = true/g' $HOME_DIR/config/config.toml - sed -i 's/minimum-gas-prices = ""/minimum-gas-prices = "0.00uxprt"/g' $HOME_DIR/config/config.toml + sed -i 's/minimum-gas-prices = ""/minimum-gas-prices = "0.01uxprt"/g' $HOME_DIR/config/config.toml sed -i 's/cors_allowed_origins = []/cors_allowed_origins = ["*"]/g' $HOME_DIR/config/config.toml sed -i 's/enable = false/enable = true/g' $HOME_DIR/config/app.toml sed -i 's/swagger = false/swagger = true/g' $HOME_DIR/config/app.toml sed -i 's/enabled-unsafe-cors = false/enabled-unsafe-cors = true/g' $HOME_DIR/config/app.toml + sed -i 's/min-gas-prices = ""/min-gas-prices = "0.01uxprt"/g' $HOME_DIR/config/app.toml jq '.consensus_params.block.max_bytes |= "42020096"' $HOME_DIR/config/genesis.json | tee $HOME_DIR/config/genesis.new.json mv $HOME_DIR/config/genesis.new.json $HOME_DIR/config/genesis.json @@ -152,7 +153,7 @@ spec: name: addresses containers: - name: validator - image: persistenceone/persistencecore:v8.0.0-fh + image: persistenceone/persistencecore:v8.1.0-fh imagePullPolicy: Always env: - name: CHAIN_ID @@ -166,6 +167,7 @@ spec: - bash - "-c" - | + sleep infinity persistenceCore start --home $HOME_DIR resources: limits: diff --git a/base/persistencecore/kustomization.yaml b/base/persistencecore/kustomization.yaml index 46d140c..eedbd04 100644 --- a/base/persistencecore/kustomization.yaml +++ b/base/persistencecore/kustomization.yaml @@ -1,6 +1,7 @@ resources: - genesis.yaml - - validator.yaml + - configmap.yaml + # - validator.yaml generatorOptions: disableNameSuffixHash: true diff --git a/base/persistencecore/validator.yaml b/base/persistencecore/validator.yaml index 40e7ac5..0a6dab8 100644 --- a/base/persistencecore/validator.yaml +++ b/base/persistencecore/validator.yaml @@ -50,7 +50,7 @@ spec: spec: initContainers: - name: wait-for-genesis - image: persistenceone/persistencecore:v8.0.0-fh + image: persistenceone/persistencecore:v8.1.0-fh imagePullPolicy: Always env: - name: GENESIS_HOST @@ -68,7 +68,7 @@ spec: echo "Ready to start" exit 0 - name: init-validator - image: persistenceone/persistencecore:v8.0.0-fh + image: persistenceone/persistencecore:v8.1.0-fh imagePullPolicy: Always env: - name: CHAIN_ID diff --git a/graph-node-alternate/overlays/multi-pod/firehose-reader.yaml b/graph-node-alternate/overlays/multi-pod/firehose-reader.yaml index 74816db..5052b78 100644 --- a/graph-node-alternate/overlays/multi-pod/firehose-reader.yaml +++ b/graph-node-alternate/overlays/multi-pod/firehose-reader.yaml @@ -51,7 +51,7 @@ spec: terminationGracePeriodSeconds: 10 initContainers: - name: wait-for-genesis - image: persistenceone/persistencecore:v8.1.0-fh + image: persistenceone/persistencecore:v7.0.3-fh imagePullPolicy: Always env: - name: GENESIS_NODE_DATA_RESOLUTION_METHOD @@ -83,7 +83,7 @@ spec: echo "Ready to start" exit 0 - name: init-firehose-node - image: persistenceone/persistencecore:v8.1.0-fh + image: persistenceone/persistencecore:v7.0.3-fh imagePullPolicy: Always env: - name: CHAIN_ID @@ -132,6 +132,11 @@ spec: configMapKeyRef: key: seeds name: firehose-node-config + - name: PERSISTENT_PEERS + valueFrom: + configMapKeyRef: + key: persistent_peers + name: firehose-node-config - name: FIRST_STREAMABLE_BLOCK valueFrom: configMapKeyRef: @@ -173,7 +178,7 @@ spec: name: scripts-graph containers: - name: firehose-node - image: persistenceone/persistencecore:v8.1.0-fh + image: persistenceone/persistencecore:v7.0.3-fh imagePullPolicy: Always env: - name: CHAIN_ID diff --git a/graph-node/firehose-node.yaml b/graph-node/firehose-node.yaml index 2bba403..c2fa794 100644 --- a/graph-node/firehose-node.yaml +++ b/graph-node/firehose-node.yaml @@ -55,7 +55,7 @@ spec: terminationGracePeriodSeconds: 10 initContainers: - name: wait-for-genesis - image: persistenceone/persistencecore:v8.0.0-fh + image: persistenceone/persistencecore:v8.1.0-fh imagePullPolicy: Always env: - name: GENESIS_NODE_DATA_RESOLUTION_METHOD @@ -87,7 +87,7 @@ spec: echo "Ready to start" exit 0 - name: init-firehose-node - image: persistenceone/persistencecore:v8.0.0-fh + image: persistenceone/persistencecore:v8.1.0-fh imagePullPolicy: Always env: - name: CHAIN_ID @@ -178,7 +178,7 @@ spec: name: scripts-graph containers: - name: firehose-node - image: persistenceone/persistencecore:v8.0.0-fh + image: persistenceone/persistencecore:v8.1.0-fh imagePullPolicy: Always env: - name: CHAIN_ID diff --git a/networks/devnet/kustomization.yaml b/networks/devnet/kustomization.yaml index d348385..79cfcb9 100644 --- a/networks/devnet/kustomization.yaml +++ b/networks/devnet/kustomization.yaml @@ -2,6 +2,6 @@ namespace: devnet resources: - ../../base/persistencecore - - ingress.yaml - - configmap.yaml - - ../../graph-node-alternate/overlays/one-pod \ No newline at end of file + # - ingress.yaml + # - configmap.yaml + # - ../../graph-node-alternate/overlays/one-pod \ No newline at end of file diff --git a/networks/mainnet/configmap.yaml b/networks/mainnet/configmap.yaml index bf7cfa8..617990e 100644 --- a/networks/mainnet/configmap.yaml +++ b/networks/mainnet/configmap.yaml @@ -16,10 +16,11 @@ data: sync_node.exposer_port: '' sync_node.port_p2p: '26656' sync_node.genesis_json_fetch_url: 'https://raw.githubusercontent.com/persistenceOne/networks/master/core-1/final_genesis.json' - snapshot_restore_url: 'https://snapshots.autostake.com/core-1/core-1-Jun-30.tar.lz4' + snapshot_restore_url: 'https://dexter-zone.sgp1.digitaloceanspaces.com/persistence-snapshot/persistence_13023642.tar.lz4' seeds: 'fbf0aa94b512902a249b246ed5763b50df9c0543@seed.core.persistence.one:26656' + persistent_peers: 'b3ebed629f25548665d6f855464784fdb2752ba6@65.108.98.235:28556,b5d58e4133ea71d04ee617be40880a53934e4443@135.181.215.62:2080,bb7c2cddd665303a0b4233e3d47f5bf2c3ac21ba@135.181.142.60:15601,91d4802dfc07466e481d51a63150462125cf1800@65.108.122.246:26696,2c4433a5398ed41845385d413a720e95d524a126@93.115.25.106:33656,72d1de881a4fabed94b56234f3d03b3b273c2839@51.195.6.227:26625,322ba0a055ec7fc11a631d396c324c4139a09235@57.128.64.127:26656,2b8e70fd5ace9ee226c18ee79a28f2916e9b739f@172.104.205.110:26656,cea12d1a01ffb435a1bc12a73608483b00cd22d4@138.201.197.188:2000,cd8b8a33eea7656f3c3bbbfec93d3aab5a17e183@77.68.22.38:26656,f551bfb71110aa1e455fc03c8f68d6cc08c457a4@148.251.53.110:2080,2c92d3be49a5ddf993f3e3e115ecc86a91cfbee1@185.16.38.121:15601,f116b4acaa437c1457a8c417626449540399fdcd@95.214.55.156:26656,000dd58e17948936cdf07e88ee2bd84ab7980a95@164.92.64.28:30661,d10ccca931c6ff64b29a2abbd4f7323da8325066@5.161.214.237:26656,e61df667622195715aae7aa9e3f87b0422becb4b@18.191.232.91:26656,ae7d0b68ab7c1df5248d988c22fc830e87ee9409@13.233.97.144:26656,2f46bc9d6617c05bde3ca1e4c48219b91900f485@43.153.17.58:26656,55961d33223370c76e860cef6ce6f22601c99da1@15.235.160.85:26656,1b222be07c63c5ba1d100f8998c52f5fb8da5830@34.88.231.129:26656,465944474abc9ad859061b6b96612edba1428955@65.108.71.119:38656,51a7fda52a90fbe697fbafe7ff3181edd7e0984e@54.64.157.114:26656,405f158dab7b18769bb62776d436e4a9a6144117@95.214.55.227:26896,b5316e329b7e62dc82baabc4d84cf340677d44fc@135.125.189.59:26656,f78fad1e6b577eae5f32d24991d939a37d783286@103.230.84.43:26656,8b9251eac869f69476e42f937a5414552542b12a@34.90.60.238:26656,fa49becd51c1c9e28f368e478043afc33f70ecac@54.216.66.11:26656,2c9e70a7bbdc61ad90eb6a540a7964cf0d7087b8@138.201.23.39:27656,4169a14a715928e70fe9020dd83432bcdc2c9925@34.89.163.106:26656,3a980a5b039e18ae88adf9a50f7db5d456519a4c@52.30.132.101:26656,567feb48bfb6ff843021b4697372141894e88fbf@46.137.182.253:26656,f4390d652c88c9d969c1288c318822dab91c43d5@93.115.25.178:2042,858f8a61f6eac359858215b4358d1675085f9d9e@35.201.129.255:26656,f2ca68fe75a57430673c84a22c555ac00b5c8a1b@34.195.53.91:26656,7e545c833668b87770a3db7cb10b18b8994b1f02@212.95.51.215:54656,e92f85dc0412ad760ada0d21dafb93dbdcdecd45@34.88.201.185:26656,df1191b16805fb9074c9d560f32545981f440125@52.4.132.28:26656,60d262f86129d0b4194e42b9f8723042c338899c@34.159.42.177:26656,273a1152b102fe465de01c45f250473fed885aaa@65.108.142.81:26685,d4c68a8f48815daf780eafd0703b9ff0eecc970f@150.136.14.71:26656,504ae7cf4888f1b0202dc9734d2dd5f9ec086ba1@18.235.35.236:26656,1aad2fd176088f66b305e770b811f6f9be645dc4@65.108.127.158:26657,59749e04a1697e0f188a9dc9d1b4fb96d488823b@65.109.52.56:26194,dddafd92aafc8669b8bda15ccc72b82f00041f74@23.106.231.73:26656,7a429cbd3a23975a079c7b9be39f8c86cf78253b@37.252.184.240:26656,1b7fb9be48d7b7fee269712e1d8f73147ba53ad6@3.248.249.169:26656,206883b873f253ecae0e3e599c458b4c1888d025@139.99.68.176:26656,adc52d4ca418f364773efca77155740cb418e44b@85.239.233.56:3000,a8db0cfbd2b4b0b3ff58320f56115e23c5f146db@162.55.92.114:2060,d7cea822735f63d9934032b28409e043bc6a888b@188.172.228.87:2000,1a0b7f6ccfe1358fb6ff1f66740cc4ab4809a153@65.108.136.206:26656,dfef569ebadced8fdb632cdbfc39807f3db5d9c0@23.88.71.91:26656,200e5e4b8410ebe0211d9040d3004fc732baa919@185.111.159.232:3000,2ad7b01a76b568703410cffa7cb53c5a8b3a7080@209.126.84.180:26656,d68cba170d40f7b36962a5e44048e11b55db8375@157.90.180.62:26657,f116b1a17d4b26d0ff5fc2dba0009590061fbbe7@149.28.111.247:26656,f6782a98426060ca417002f3dcc794359d6efc48@185.119.118.116:2000,ba6ca269cfcf412c175dd6259c1ae15ee5370b08@89.58.18.61:3000,7dbc24f8992d2143598b8720f64b3b96a0f8f736@34.89.165.216:26656,622c1236dbc3e6c56d75eb3f06e046140997b0d1@185.111.159.178:15456,e726816f42831689eab9378d5d577f1d06d25716@134.65.194.184:26656,88f996bec8aa42675cac365a6490a6a2d96fa9e9@89.58.17.149:26656,ce9dc9467af943bf35f17f04cfcdf3895914d867@135.181.113.227:33656,7cfc2ba5ed2fac6ed3611bd97ba966568c298e6a@84.244.95.236:26656,9047d858b8c71dc4e2e562ff2ba4a31e90f1bd38@107.135.15.67:26696,7cc92a9e3dcad37e5e7b3adf7814c37070fa9787@161.97.187.189:26656,a08045bac640469f15fcfacf2182ebb519e02af9@46.20.245.41:26656,74d0da956485b22ae339b3c5709fea7b2e48ae67@146.59.81.92:33656,f8d3c4f083088c376e3eee45097e2f401902181d@15.235.182.26:26656,f2e5a7b9e54d2b0ac41e8367354e273ec1a9a40c@93.189.30.112:26656,3a3f580d8b81df43900687167b3be469325cf174@194.233.66.44:15456,53aeb694fb75d7018a25a766852cea898817e10c@65.108.3.247:26656,f0b1226bb4e8ff2737ee215c9e26cad33a246025@65.109.69.59:15456,f3cd78dffb5d91902d122dee25ef35bf3393c686@193.70.47.90:15456,e50c644dc8f7f9acc183b5a990f184eb0bc7663b@18.181.255.213:26656,ca2ab57f9bd2c366956369e074957f109ccdfb29@130.193.41.35:26656,cf2ae533d05a0ce7040d0cea43b2947bcc39894a@95.165.89.222:26565,121067114242014b2f0a7e5f2a02ef7a6a158ac2@46.166.163.37:26656,bc31aff071ebae4f5ea3b34ff30430fc55899fc9@65.108.230.188:15456,f99cae0661913a87a1f1401451585b43724504da@95.216.202.37:26656,646d0ad08c408f93276f90cd29d4e410e2d60f63@193.34.144.156:25656,88846ee2e88d288624cded2706c13f4ba8311a09@85.10.197.58:15456,600073bf5d27d14282a82cf3e070df68feb43ecf@38.242.142.199:56656,4317f6547256b6ab75f13c80483179371c653224@204.93.241.113:26656,ac14942bd2427d236678a8dd97a78b357768c33d@88.198.11.152:26656,e640e521957974cbfb1c851aacdbc3115a606f39@3.108.249.47:26656,137818b03a705cf86622b4d97a074091f2f22589@185.225.233.30:26756,5e64e747b9dfdd022f7c7111bb089ab24b401def@89.163.140.132:26656,68a058e0520f9f9e5a5538a5b7c1375562f725f0@65.108.235.36:27656,a458cd95475dc19b9fad17bf6ccd57cd72144f13@128.199.128.15:26050,61913467f12acb3b425374010393db22ff017de3@141.94.97.23:26656,008e6f1662402b00d539a296f976532f836f1c78@217.174.247.59:15607,59c258ebf6849b71b2d8647487679861994ded69@34.107.51.182:26656,d5d5a7242f9ec0c68417d8921ab03caea08ccb03@178.62.23.83:26656,2069ee4e0fe3bc993bc16089439dee76d0341eb0@51.91.118.17:25656,e302b2bad4e22afa824fec6a31f5f9eeb968fbe3@217.76.53.18:26656,89757803f40da51678451735445ad40d5b15e059@134.65.193.59:26656,ebc272824924ea1a27ea3183dd0b9ba713494f83@178.211.139.77:26896,a0673418b8854d474ced0f9a6ff6de8527cb966a@94.130.90.107:26656,5fc293e583bbc05625c6032fb1678df9a233dc21@188.172.228.225:26666,eb775b88a3bcedcb81293227669e0345d629cd2d@85.215.105.19:15607,e4f61825145f2582a83dcea6f1676839fdc52c56@129.213.156.193:26656,429fe9ff1d0fd007e16c209ad7e92e9cbaeef35e@178.128.42.132:26050,34d86d61ed3442e8f405ce509554342a62c3508f@3.110.138.122:26656,db092a43bd0eb00cc29c41a6039b5324463535e0@13.125.207.43:26656,e5d9a0744087ebbdef5eebc274326736424f261c@195.201.63.87:39666,7e9bfec2d141508f0987bccfb2bcdecd51082d32@51.81.16.189:26656,3823743e174b085dadab4b46454a9a5c1b2768d9@75.119.148.118:26656,bf21941ffd66d1c7cc12b70158dc79bf7310d08a@159.203.187.36:26050,ff12247f50ce7cdd9a4e8bea9d98c889653d12d0@159.89.101.239:26050,ef00de87be3d9562e3745179e95aedf8e5a01ad0@146.190.59.8:26050,bdc3f5c7f48b468d4579a25f45149044fdeee0b1@65.108.72.177:26656' first_streamable_block: '10522616' - force_init: 'false' + force_init: 'true' one_block_store_url: 's3://sgp1.digitaloceanspaces.com/dexter-zone/one-blocks?region=us-east-1' merged_blocks_store_url: 's3://sgp1.digitaloceanspaces.com/dexter-zone/merged-blocks?region=us-east-1' @@ -31,5 +32,5 @@ metadata: data: firehose_node.host: 'persistencecore-firehose.mainnet.svc.cluster.local' firehose_node.port: '9030' - ipfs.host: 'ipfs-node.graph-core-1.svc.cluster.local' + ipfs.host: 'ipfs-node.mainnet.svc.cluster.local' ipfs.port: '5001' \ No newline at end of file diff --git a/networks/mainnet/ingress.yaml b/networks/mainnet/ingress.yaml index 869dd19..0bbd72e 100644 --- a/networks/mainnet/ingress.yaml +++ b/networks/mainnet/ingress.yaml @@ -1,7 +1,7 @@ apiVersion: networking.k8s.io/v1 kind: Ingress metadata: - name: ingress-graph-mainnet-persistence + name: ingress-core-mainnet-graph annotations: nginx.ingress.kubernetes.io/ssl-redirect: "false" nginx.ingress.kubernetes.io/enable-cors: "true" diff --git a/networks/mainnet/kustomization.yaml b/networks/mainnet/kustomization.yaml index c9fae79..2983d49 100644 --- a/networks/mainnet/kustomization.yaml +++ b/networks/mainnet/kustomization.yaml @@ -1,4 +1,4 @@ -namespace: graph-core-1 +namespace: mainnet resources: - ingress.yaml diff --git a/networks/testnet/configmap.yaml b/networks/testnet/configmap.yaml index 490767d..cafa343 100644 --- a/networks/testnet/configmap.yaml +++ b/networks/testnet/configmap.yaml @@ -32,5 +32,5 @@ metadata: data: firehose_node.host: 'persistencecore-firehose.testnet.svc.cluster.local' firehose_node.port: '9030' - ipfs.host: 'ipfs-node.graph-test-core-1.svc.cluster.local' + ipfs.host: 'ipfs-node.testnet.svc.cluster.local' ipfs.port: '5001' \ No newline at end of file diff --git a/networks/testnet/kustomization.yaml b/networks/testnet/kustomization.yaml index 412670d..3732531 100644 --- a/networks/testnet/kustomization.yaml +++ b/networks/testnet/kustomization.yaml @@ -1,4 +1,4 @@ -namespace: graph-test-core-1 +namespace: testnet resources: - ingress.yaml From 78b5df99771322d2d01f246303feda12bebaa6b9 Mon Sep 17 00:00:00 2001 From: Nabarun Sarkar Date: Mon, 4 Sep 2023 13:46:11 +0530 Subject: [PATCH 08/13] Update graph-node.yaml --- graph-node-alternate/base/graph-node.yaml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/graph-node-alternate/base/graph-node.yaml b/graph-node-alternate/base/graph-node.yaml index 947edb0..9982ec5 100644 --- a/graph-node-alternate/base/graph-node.yaml +++ b/graph-node-alternate/base/graph-node.yaml @@ -24,6 +24,10 @@ spec: port: 8030 protocol: TCP targetPort: 8030 + - name: prometheus + port: 8040 + protocol: TCP + targetPort: 8040 selector: app.kubernetes.io/name: persistencecore-graph-node --- From d6101c9fe66b387e6f323ec0df93f402b5fb5ca2 Mon Sep 17 00:00:00 2001 From: betterclever Date: Mon, 18 Sep 2023 10:59:48 +0400 Subject: [PATCH 09/13] v9.2 changes --- base/persistencecore/genesis.yaml | 4 ++-- base/persistencecore/validator.yaml | 4 ++-- .../overlays/multi-pod/firehose-reader.yaml | 6 +++--- graph-node-alternate/overlays/one-pod/firehose.yaml | 6 +++--- graph-node/firehose-node.yaml | 6 +++--- networks/mainnet/configmap.yaml | 2 +- networks/mainnet/ingress.yaml | 2 +- 7 files changed, 15 insertions(+), 15 deletions(-) diff --git a/base/persistencecore/genesis.yaml b/base/persistencecore/genesis.yaml index 566b34c..c6d3a16 100644 --- a/base/persistencecore/genesis.yaml +++ b/base/persistencecore/genesis.yaml @@ -58,7 +58,7 @@ spec: spec: initContainers: - name: init-genesis - image: persistenceone/persistencecore:v8.1.0-fh + image: persistenceone/persistencecore:v9.2.0-fh imagePullPolicy: Always env: - name: COINS @@ -153,7 +153,7 @@ spec: name: addresses containers: - name: validator - image: persistenceone/persistencecore:v8.1.0-fh + image: persistenceone/persistencecore:v9.2.0-fh imagePullPolicy: Always env: - name: CHAIN_ID diff --git a/base/persistencecore/validator.yaml b/base/persistencecore/validator.yaml index 0a6dab8..ff08f42 100644 --- a/base/persistencecore/validator.yaml +++ b/base/persistencecore/validator.yaml @@ -50,7 +50,7 @@ spec: spec: initContainers: - name: wait-for-genesis - image: persistenceone/persistencecore:v8.1.0-fh + image: persistenceone/persistencecore:v9.2.0-fh imagePullPolicy: Always env: - name: GENESIS_HOST @@ -68,7 +68,7 @@ spec: echo "Ready to start" exit 0 - name: init-validator - image: persistenceone/persistencecore:v8.1.0-fh + image: persistenceone/persistencecore:v9.2.0-fh imagePullPolicy: Always env: - name: CHAIN_ID diff --git a/graph-node-alternate/overlays/multi-pod/firehose-reader.yaml b/graph-node-alternate/overlays/multi-pod/firehose-reader.yaml index 5052b78..4ddeb64 100644 --- a/graph-node-alternate/overlays/multi-pod/firehose-reader.yaml +++ b/graph-node-alternate/overlays/multi-pod/firehose-reader.yaml @@ -51,7 +51,7 @@ spec: terminationGracePeriodSeconds: 10 initContainers: - name: wait-for-genesis - image: persistenceone/persistencecore:v7.0.3-fh + image: persistenceone/persistencecore:v9.2.0-fh imagePullPolicy: Always env: - name: GENESIS_NODE_DATA_RESOLUTION_METHOD @@ -83,7 +83,7 @@ spec: echo "Ready to start" exit 0 - name: init-firehose-node - image: persistenceone/persistencecore:v7.0.3-fh + image: persistenceone/persistencecore:v9.2.0-fh imagePullPolicy: Always env: - name: CHAIN_ID @@ -178,7 +178,7 @@ spec: name: scripts-graph containers: - name: firehose-node - image: persistenceone/persistencecore:v7.0.3-fh + image: persistenceone/persistencecore:v9.2.0-fh imagePullPolicy: Always env: - name: CHAIN_ID diff --git a/graph-node-alternate/overlays/one-pod/firehose.yaml b/graph-node-alternate/overlays/one-pod/firehose.yaml index ea7c559..3ae7845 100644 --- a/graph-node-alternate/overlays/one-pod/firehose.yaml +++ b/graph-node-alternate/overlays/one-pod/firehose.yaml @@ -51,7 +51,7 @@ spec: terminationGracePeriodSeconds: 30 initContainers: - name: wait-for-genesis - image: persistenceone/persistencecore:v8.1.0-fh + image: persistenceone/persistencecore:v9.2.0-fh imagePullPolicy: Always env: - name: GENESIS_NODE_DATA_RESOLUTION_METHOD @@ -83,7 +83,7 @@ spec: echo "Ready to start" exit 0 - name: init-firehose-node - image: persistenceone/persistencecore:v8.1.0-fh + image: persistenceone/persistencecore:v9.2.0-fh imagePullPolicy: Always env: - name: CHAIN_ID @@ -178,7 +178,7 @@ spec: name: scripts-graph containers: - name: firehose-node - image: persistenceone/persistencecore:v8.1.0-fh + image: persistenceone/persistencecore:v9.2.0-fh imagePullPolicy: Always env: - name: CHAIN_ID diff --git a/graph-node/firehose-node.yaml b/graph-node/firehose-node.yaml index c2fa794..39e2043 100644 --- a/graph-node/firehose-node.yaml +++ b/graph-node/firehose-node.yaml @@ -55,7 +55,7 @@ spec: terminationGracePeriodSeconds: 10 initContainers: - name: wait-for-genesis - image: persistenceone/persistencecore:v8.1.0-fh + image: persistenceone/persistencecore:v9.2.0-fh imagePullPolicy: Always env: - name: GENESIS_NODE_DATA_RESOLUTION_METHOD @@ -87,7 +87,7 @@ spec: echo "Ready to start" exit 0 - name: init-firehose-node - image: persistenceone/persistencecore:v8.1.0-fh + image: persistenceone/persistencecore:v9.2.0-fh imagePullPolicy: Always env: - name: CHAIN_ID @@ -178,7 +178,7 @@ spec: name: scripts-graph containers: - name: firehose-node - image: persistenceone/persistencecore:v8.1.0-fh + image: persistenceone/persistencecore:v9.2.0-fh imagePullPolicy: Always env: - name: CHAIN_ID diff --git a/networks/mainnet/configmap.yaml b/networks/mainnet/configmap.yaml index 617990e..23f0a49 100644 --- a/networks/mainnet/configmap.yaml +++ b/networks/mainnet/configmap.yaml @@ -20,7 +20,7 @@ data: seeds: 'fbf0aa94b512902a249b246ed5763b50df9c0543@seed.core.persistence.one:26656' persistent_peers: 'b3ebed629f25548665d6f855464784fdb2752ba6@65.108.98.235:28556,b5d58e4133ea71d04ee617be40880a53934e4443@135.181.215.62:2080,bb7c2cddd665303a0b4233e3d47f5bf2c3ac21ba@135.181.142.60:15601,91d4802dfc07466e481d51a63150462125cf1800@65.108.122.246:26696,2c4433a5398ed41845385d413a720e95d524a126@93.115.25.106:33656,72d1de881a4fabed94b56234f3d03b3b273c2839@51.195.6.227:26625,322ba0a055ec7fc11a631d396c324c4139a09235@57.128.64.127:26656,2b8e70fd5ace9ee226c18ee79a28f2916e9b739f@172.104.205.110:26656,cea12d1a01ffb435a1bc12a73608483b00cd22d4@138.201.197.188:2000,cd8b8a33eea7656f3c3bbbfec93d3aab5a17e183@77.68.22.38:26656,f551bfb71110aa1e455fc03c8f68d6cc08c457a4@148.251.53.110:2080,2c92d3be49a5ddf993f3e3e115ecc86a91cfbee1@185.16.38.121:15601,f116b4acaa437c1457a8c417626449540399fdcd@95.214.55.156:26656,000dd58e17948936cdf07e88ee2bd84ab7980a95@164.92.64.28:30661,d10ccca931c6ff64b29a2abbd4f7323da8325066@5.161.214.237:26656,e61df667622195715aae7aa9e3f87b0422becb4b@18.191.232.91:26656,ae7d0b68ab7c1df5248d988c22fc830e87ee9409@13.233.97.144:26656,2f46bc9d6617c05bde3ca1e4c48219b91900f485@43.153.17.58:26656,55961d33223370c76e860cef6ce6f22601c99da1@15.235.160.85:26656,1b222be07c63c5ba1d100f8998c52f5fb8da5830@34.88.231.129:26656,465944474abc9ad859061b6b96612edba1428955@65.108.71.119:38656,51a7fda52a90fbe697fbafe7ff3181edd7e0984e@54.64.157.114:26656,405f158dab7b18769bb62776d436e4a9a6144117@95.214.55.227:26896,b5316e329b7e62dc82baabc4d84cf340677d44fc@135.125.189.59:26656,f78fad1e6b577eae5f32d24991d939a37d783286@103.230.84.43:26656,8b9251eac869f69476e42f937a5414552542b12a@34.90.60.238:26656,fa49becd51c1c9e28f368e478043afc33f70ecac@54.216.66.11:26656,2c9e70a7bbdc61ad90eb6a540a7964cf0d7087b8@138.201.23.39:27656,4169a14a715928e70fe9020dd83432bcdc2c9925@34.89.163.106:26656,3a980a5b039e18ae88adf9a50f7db5d456519a4c@52.30.132.101:26656,567feb48bfb6ff843021b4697372141894e88fbf@46.137.182.253:26656,f4390d652c88c9d969c1288c318822dab91c43d5@93.115.25.178:2042,858f8a61f6eac359858215b4358d1675085f9d9e@35.201.129.255:26656,f2ca68fe75a57430673c84a22c555ac00b5c8a1b@34.195.53.91:26656,7e545c833668b87770a3db7cb10b18b8994b1f02@212.95.51.215:54656,e92f85dc0412ad760ada0d21dafb93dbdcdecd45@34.88.201.185:26656,df1191b16805fb9074c9d560f32545981f440125@52.4.132.28:26656,60d262f86129d0b4194e42b9f8723042c338899c@34.159.42.177:26656,273a1152b102fe465de01c45f250473fed885aaa@65.108.142.81:26685,d4c68a8f48815daf780eafd0703b9ff0eecc970f@150.136.14.71:26656,504ae7cf4888f1b0202dc9734d2dd5f9ec086ba1@18.235.35.236:26656,1aad2fd176088f66b305e770b811f6f9be645dc4@65.108.127.158:26657,59749e04a1697e0f188a9dc9d1b4fb96d488823b@65.109.52.56:26194,dddafd92aafc8669b8bda15ccc72b82f00041f74@23.106.231.73:26656,7a429cbd3a23975a079c7b9be39f8c86cf78253b@37.252.184.240:26656,1b7fb9be48d7b7fee269712e1d8f73147ba53ad6@3.248.249.169:26656,206883b873f253ecae0e3e599c458b4c1888d025@139.99.68.176:26656,adc52d4ca418f364773efca77155740cb418e44b@85.239.233.56:3000,a8db0cfbd2b4b0b3ff58320f56115e23c5f146db@162.55.92.114:2060,d7cea822735f63d9934032b28409e043bc6a888b@188.172.228.87:2000,1a0b7f6ccfe1358fb6ff1f66740cc4ab4809a153@65.108.136.206:26656,dfef569ebadced8fdb632cdbfc39807f3db5d9c0@23.88.71.91:26656,200e5e4b8410ebe0211d9040d3004fc732baa919@185.111.159.232:3000,2ad7b01a76b568703410cffa7cb53c5a8b3a7080@209.126.84.180:26656,d68cba170d40f7b36962a5e44048e11b55db8375@157.90.180.62:26657,f116b1a17d4b26d0ff5fc2dba0009590061fbbe7@149.28.111.247:26656,f6782a98426060ca417002f3dcc794359d6efc48@185.119.118.116:2000,ba6ca269cfcf412c175dd6259c1ae15ee5370b08@89.58.18.61:3000,7dbc24f8992d2143598b8720f64b3b96a0f8f736@34.89.165.216:26656,622c1236dbc3e6c56d75eb3f06e046140997b0d1@185.111.159.178:15456,e726816f42831689eab9378d5d577f1d06d25716@134.65.194.184:26656,88f996bec8aa42675cac365a6490a6a2d96fa9e9@89.58.17.149:26656,ce9dc9467af943bf35f17f04cfcdf3895914d867@135.181.113.227:33656,7cfc2ba5ed2fac6ed3611bd97ba966568c298e6a@84.244.95.236:26656,9047d858b8c71dc4e2e562ff2ba4a31e90f1bd38@107.135.15.67:26696,7cc92a9e3dcad37e5e7b3adf7814c37070fa9787@161.97.187.189:26656,a08045bac640469f15fcfacf2182ebb519e02af9@46.20.245.41:26656,74d0da956485b22ae339b3c5709fea7b2e48ae67@146.59.81.92:33656,f8d3c4f083088c376e3eee45097e2f401902181d@15.235.182.26:26656,f2e5a7b9e54d2b0ac41e8367354e273ec1a9a40c@93.189.30.112:26656,3a3f580d8b81df43900687167b3be469325cf174@194.233.66.44:15456,53aeb694fb75d7018a25a766852cea898817e10c@65.108.3.247:26656,f0b1226bb4e8ff2737ee215c9e26cad33a246025@65.109.69.59:15456,f3cd78dffb5d91902d122dee25ef35bf3393c686@193.70.47.90:15456,e50c644dc8f7f9acc183b5a990f184eb0bc7663b@18.181.255.213:26656,ca2ab57f9bd2c366956369e074957f109ccdfb29@130.193.41.35:26656,cf2ae533d05a0ce7040d0cea43b2947bcc39894a@95.165.89.222:26565,121067114242014b2f0a7e5f2a02ef7a6a158ac2@46.166.163.37:26656,bc31aff071ebae4f5ea3b34ff30430fc55899fc9@65.108.230.188:15456,f99cae0661913a87a1f1401451585b43724504da@95.216.202.37:26656,646d0ad08c408f93276f90cd29d4e410e2d60f63@193.34.144.156:25656,88846ee2e88d288624cded2706c13f4ba8311a09@85.10.197.58:15456,600073bf5d27d14282a82cf3e070df68feb43ecf@38.242.142.199:56656,4317f6547256b6ab75f13c80483179371c653224@204.93.241.113:26656,ac14942bd2427d236678a8dd97a78b357768c33d@88.198.11.152:26656,e640e521957974cbfb1c851aacdbc3115a606f39@3.108.249.47:26656,137818b03a705cf86622b4d97a074091f2f22589@185.225.233.30:26756,5e64e747b9dfdd022f7c7111bb089ab24b401def@89.163.140.132:26656,68a058e0520f9f9e5a5538a5b7c1375562f725f0@65.108.235.36:27656,a458cd95475dc19b9fad17bf6ccd57cd72144f13@128.199.128.15:26050,61913467f12acb3b425374010393db22ff017de3@141.94.97.23:26656,008e6f1662402b00d539a296f976532f836f1c78@217.174.247.59:15607,59c258ebf6849b71b2d8647487679861994ded69@34.107.51.182:26656,d5d5a7242f9ec0c68417d8921ab03caea08ccb03@178.62.23.83:26656,2069ee4e0fe3bc993bc16089439dee76d0341eb0@51.91.118.17:25656,e302b2bad4e22afa824fec6a31f5f9eeb968fbe3@217.76.53.18:26656,89757803f40da51678451735445ad40d5b15e059@134.65.193.59:26656,ebc272824924ea1a27ea3183dd0b9ba713494f83@178.211.139.77:26896,a0673418b8854d474ced0f9a6ff6de8527cb966a@94.130.90.107:26656,5fc293e583bbc05625c6032fb1678df9a233dc21@188.172.228.225:26666,eb775b88a3bcedcb81293227669e0345d629cd2d@85.215.105.19:15607,e4f61825145f2582a83dcea6f1676839fdc52c56@129.213.156.193:26656,429fe9ff1d0fd007e16c209ad7e92e9cbaeef35e@178.128.42.132:26050,34d86d61ed3442e8f405ce509554342a62c3508f@3.110.138.122:26656,db092a43bd0eb00cc29c41a6039b5324463535e0@13.125.207.43:26656,e5d9a0744087ebbdef5eebc274326736424f261c@195.201.63.87:39666,7e9bfec2d141508f0987bccfb2bcdecd51082d32@51.81.16.189:26656,3823743e174b085dadab4b46454a9a5c1b2768d9@75.119.148.118:26656,bf21941ffd66d1c7cc12b70158dc79bf7310d08a@159.203.187.36:26050,ff12247f50ce7cdd9a4e8bea9d98c889653d12d0@159.89.101.239:26050,ef00de87be3d9562e3745179e95aedf8e5a01ad0@146.190.59.8:26050,bdc3f5c7f48b468d4579a25f45149044fdeee0b1@65.108.72.177:26656' first_streamable_block: '10522616' - force_init: 'true' + force_init: 'false' one_block_store_url: 's3://sgp1.digitaloceanspaces.com/dexter-zone/one-blocks?region=us-east-1' merged_blocks_store_url: 's3://sgp1.digitaloceanspaces.com/dexter-zone/merged-blocks?region=us-east-1' diff --git a/networks/mainnet/ingress.yaml b/networks/mainnet/ingress.yaml index 0bbd72e..476c191 100644 --- a/networks/mainnet/ingress.yaml +++ b/networks/mainnet/ingress.yaml @@ -52,7 +52,7 @@ spec: pathType: Prefix backend: service: - name: persistencecore-hasura + name: dexter-hasura port: number: 8080 ingressClassName: nginx From 115515e8615f2ba26756a86625f9e053eb1004af Mon Sep 17 00:00:00 2001 From: betterclever Date: Wed, 31 Jan 2024 17:30:47 +0530 Subject: [PATCH 10/13] commit intermediate stage --- base/persistencecore/genesis.yaml | 28 +++++++++++++------ base/persistencecore/kustomization.yaml | 2 +- base/persistencecore/validator.yaml | 4 +-- graph-node-alternate/base/graph-node.yaml | 2 +- .../overlays/multi-pod/firehose-reader.yaml | 7 +++-- .../overlays/one-pod/firehose.yaml | 8 +++--- graph-node/firehose-node.yaml | 6 ++-- networks/devnet/configmap.yaml | 8 +++--- networks/devnet/kustomization.yaml | 6 ++-- networks/mainnet/configmap.yaml | 4 +-- networks/testnet/configmap.yaml | 2 +- networks/testnet/ingress.yaml | 20 +++++++++---- 12 files changed, 60 insertions(+), 37 deletions(-) diff --git a/base/persistencecore/genesis.yaml b/base/persistencecore/genesis.yaml index c6d3a16..d96eff6 100644 --- a/base/persistencecore/genesis.yaml +++ b/base/persistencecore/genesis.yaml @@ -58,7 +58,7 @@ spec: spec: initContainers: - name: init-genesis - image: persistenceone/persistencecore:v9.2.0-fh + image: persistenceone/persistencecore:v9.2.1-fh imagePullPolicy: Always env: - name: COINS @@ -86,21 +86,21 @@ spec: jq -r ".genesis[0].mnemonic" /configs/validators.json | persistenceCore keys add $(jq -r ".genesis[0].name" /configs/validators.json) --recover --keyring-backend='test' --home $HOME_DIR # Provide genesis validator self deligations - persistenceCore add-genesis-account $(jq -r .genesis[$i].address /configs/validators.json) $COINS --keyring-backend='test' --home $HOME_DIR + persistenceCore genesis add-genesis-account $(jq -r .genesis[$i].address /configs/validators.json) $COINS --keyring-backend='test' --home $HOME_DIR # Give Validator addresses initial coins for ((i=0; i<$(jq -r '.validators | length' /configs/validators.json); i++)) do jq -r ".validators[$i].mnemonic" /configs/validators.json | persistenceCore keys add $(jq -r ".validators[$i].name" /configs/validators.json) --recover --keyring-backend='test' --home $HOME_DIR - persistenceCore add-genesis-account $(jq -r .validators[$i].address /configs/validators.json) $COINS --keyring-backend='test' --home $HOME_DIR + persistenceCore genesis add-genesis-account $(jq -r .validators[$i].address /configs/validators.json) $COINS --keyring-backend='test' --home $HOME_DIR done - persistenceCore gentx $(jq -r ".genesis[0].name" /configs/validators.json) 5000000000uxprt --keyring-backend="test" --chain-id $CHAIN_ID --home $HOME_DIR + persistenceCore genesis gentx $(jq -r ".genesis[0].name" /configs/validators.json) 5000000000uxprt --keyring-backend="test" --chain-id $CHAIN_ID --home $HOME_DIR echo "Output of gentx" cat $HOME_DIR/config/gentx/*.json | jq echo "Running collect-gentxs" - persistenceCore collect-gentxs --home $HOME_DIR + persistenceCore genesis collect-gentxs --home $HOME_DIR sed -i 's#"tcp://127.0.0.1:26657"#"tcp://0.0.0.0:26657"#g' $HOME_DIR/config/config.toml sed -i 's/timeout_commit = "5s"/timeout_commit = "1s"/g' $HOME_DIR/config/config.toml @@ -119,21 +119,33 @@ spec: mv $HOME_DIR/config/genesis.new.json $HOME_DIR/config/genesis.json jq '.app_state.gov.voting_params.voting_period |= "30s"' $HOME_DIR/config/genesis.json | tee $HOME_DIR/config/genesis.new.json mv $HOME_DIR/config/genesis.new.json $HOME_DIR/config/genesis.json + jq '.app_state.gov.params.voting_period |= "30s"' $HOME_DIR/config/genesis.json | tee $HOME_DIR/config/genesis.new.json + mv $HOME_DIR/config/genesis.new.json $HOME_DIR/config/genesis.json jq '.app_state.gov.tally_params.quorum |= "0.0"' $HOME_DIR/config/genesis.json | tee $HOME_DIR/config/genesis.new.json mv $HOME_DIR/config/genesis.new.json $HOME_DIR/config/genesis.json + jq '.app_state.gov.params.quorum |= "0.0"' $HOME_DIR/config/genesis.json | tee $HOME_DIR/config/genesis.new.json + mv $HOME_DIR/config/genesis.new.json $HOME_DIR/config/genesis.json jq '.app_state.gov.deposit_params.min_deposit[0].amount |= "10"' $HOME_DIR/config/genesis.json | tee $HOME_DIR/config/genesis.new.json mv $HOME_DIR/config/genesis.new.json $HOME_DIR/config/genesis.json + jq '.app_state.gov.params.min_deposit[0].amount |= "10"' $HOME_DIR/config/genesis.json | tee $HOME_DIR/config/genesis.new.json + mv $HOME_DIR/config/genesis.new.json $HOME_DIR/config/genesis.json jq '.app_state.crisis.constant_fee.denom |= "uxprt"' $HOME_DIR/config/genesis.json | tee $HOME_DIR/config/genesis.new.json mv $HOME_DIR/config/genesis.new.json $HOME_DIR/config/genesis.json jq '.app_state.gov.deposit_params.min_deposit[0].denom |= "uxprt"' $HOME_DIR/config/genesis.json | tee $HOME_DIR/config/genesis.new.json mv $HOME_DIR/config/genesis.new.json $HOME_DIR/config/genesis.json - jq '.app_state.liquidity.params.pool_creation_fee[0].denom |= "uxprt"' $HOME_DIR/config/genesis.json | tee $HOME_DIR/config/genesis.new.json + jq '.app_state.gov.params.min_deposit[0].denom |= "uxprt"' $HOME_DIR/config/genesis.json | tee $HOME_DIR/config/genesis.new.json mv $HOME_DIR/config/genesis.new.json $HOME_DIR/config/genesis.json + # jq '.app_state.liquidity.params.pool_creation_fee[0].denom |= "uxprt"' $HOME_DIR/config/genesis.json | tee $HOME_DIR/config/genesis.new.json + # mv $HOME_DIR/config/genesis.new.json $HOME_DIR/config/genesis.json jq '.app_state.mint.params.mint_denom |= "uxprt"' $HOME_DIR/config/genesis.json | tee $HOME_DIR/config/genesis.new.json mv $HOME_DIR/config/genesis.new.json $HOME_DIR/config/genesis.json jq '.app_state.staking.params.bond_denom |= "uxprt"' $HOME_DIR/config/genesis.json | tee $HOME_DIR/config/genesis.new.json mv $HOME_DIR/config/genesis.new.json $HOME_DIR/config/genesis.json + + # update slash_window parameter (app_state.oracle.slash_window) from 1 day and 4 hours to an year in seconds + jq '.app_state.oracle.params.slash_window |= "31536000"' $HOME_DIR/config/genesis.json | tee $HOME_DIR/config/genesis.new.json + mv $HOME_DIR/config/genesis.new.json $HOME_DIR/config/genesis.json echo "TRYING TO PRINT GENESIS JSON" cat $HOME_DIR/config/genesis.json | jq @@ -153,7 +165,7 @@ spec: name: addresses containers: - name: validator - image: persistenceone/persistencecore:v9.2.0-fh + image: persistenceone/persistencecore:v9.2.1-fh imagePullPolicy: Always env: - name: CHAIN_ID @@ -167,7 +179,7 @@ spec: - bash - "-c" - | - sleep infinity + # sleep infinity persistenceCore start --home $HOME_DIR resources: limits: diff --git a/base/persistencecore/kustomization.yaml b/base/persistencecore/kustomization.yaml index eedbd04..86f3254 100644 --- a/base/persistencecore/kustomization.yaml +++ b/base/persistencecore/kustomization.yaml @@ -1,6 +1,6 @@ resources: - genesis.yaml - - configmap.yaml + # - configmap.yaml # - validator.yaml generatorOptions: diff --git a/base/persistencecore/validator.yaml b/base/persistencecore/validator.yaml index ff08f42..4f71d4a 100644 --- a/base/persistencecore/validator.yaml +++ b/base/persistencecore/validator.yaml @@ -50,7 +50,7 @@ spec: spec: initContainers: - name: wait-for-genesis - image: persistenceone/persistencecore:v9.2.0-fh + image: persistenceone/persistencecore:v9.2.1-fh imagePullPolicy: Always env: - name: GENESIS_HOST @@ -68,7 +68,7 @@ spec: echo "Ready to start" exit 0 - name: init-validator - image: persistenceone/persistencecore:v9.2.0-fh + image: persistenceone/persistencecore:v9.2.1-fh imagePullPolicy: Always env: - name: CHAIN_ID diff --git a/graph-node-alternate/base/graph-node.yaml b/graph-node-alternate/base/graph-node.yaml index 9982ec5..0e85a44 100644 --- a/graph-node-alternate/base/graph-node.yaml +++ b/graph-node-alternate/base/graph-node.yaml @@ -95,7 +95,7 @@ spec: containers: - name: graph-node - image: graphprotocol/graph-node:v0.29.0 + image: graphprotocol/graph-node:v0.34.0 imagePullPolicy: Always env: - name: FIREHOSE_HOST diff --git a/graph-node-alternate/overlays/multi-pod/firehose-reader.yaml b/graph-node-alternate/overlays/multi-pod/firehose-reader.yaml index 4ddeb64..3a9f98d 100644 --- a/graph-node-alternate/overlays/multi-pod/firehose-reader.yaml +++ b/graph-node-alternate/overlays/multi-pod/firehose-reader.yaml @@ -51,7 +51,7 @@ spec: terminationGracePeriodSeconds: 10 initContainers: - name: wait-for-genesis - image: persistenceone/persistencecore:v9.2.0-fh + image: persistenceone/persistencecore:v10.3.0-fh imagePullPolicy: Always env: - name: GENESIS_NODE_DATA_RESOLUTION_METHOD @@ -83,7 +83,7 @@ spec: echo "Ready to start" exit 0 - name: init-firehose-node - image: persistenceone/persistencecore:v9.2.0-fh + image: persistenceone/persistencecore:v10.3.0-fh imagePullPolicy: Always env: - name: CHAIN_ID @@ -178,7 +178,7 @@ spec: name: scripts-graph containers: - name: firehose-node - image: persistenceone/persistencecore:v9.2.0-fh + image: persistenceone/persistencecore:v10.3.0-fh imagePullPolicy: Always env: - name: CHAIN_ID @@ -217,6 +217,7 @@ spec: - bash - "-c" - | + # sleep infinity exec /persistencecore/bin/firecosmos start reader \ --reader-mode node \ --reader-node-path /usr/bin/persistenceCore \ diff --git a/graph-node-alternate/overlays/one-pod/firehose.yaml b/graph-node-alternate/overlays/one-pod/firehose.yaml index 3ae7845..8db0444 100644 --- a/graph-node-alternate/overlays/one-pod/firehose.yaml +++ b/graph-node-alternate/overlays/one-pod/firehose.yaml @@ -51,7 +51,7 @@ spec: terminationGracePeriodSeconds: 30 initContainers: - name: wait-for-genesis - image: persistenceone/persistencecore:v9.2.0-fh + image: persistenceone/persistencecore:v11.4.0-fh imagePullPolicy: Always env: - name: GENESIS_NODE_DATA_RESOLUTION_METHOD @@ -83,7 +83,7 @@ spec: echo "Ready to start" exit 0 - name: init-firehose-node - image: persistenceone/persistencecore:v9.2.0-fh + image: persistenceone/persistencecore:v11.4.0-fh imagePullPolicy: Always env: - name: CHAIN_ID @@ -178,7 +178,7 @@ spec: name: scripts-graph containers: - name: firehose-node - image: persistenceone/persistencecore:v9.2.0-fh + image: persistenceone/persistencecore:v11.4.0-fh imagePullPolicy: Always env: - name: CHAIN_ID @@ -218,8 +218,8 @@ spec: - "-c" - | # sleep infinity - # exec /persistencecore/bin/firecosmos start reader \ # exec /persistencecore/bin/firecosmos start merger \ + # exec /persistencecore/bin/firecosmos start reader \ exec /persistencecore/bin/firecosmos start reader merger relayer firehose \ --reader-mode node \ --reader-node-path /usr/bin/persistenceCore \ diff --git a/graph-node/firehose-node.yaml b/graph-node/firehose-node.yaml index 39e2043..e9dd7ff 100644 --- a/graph-node/firehose-node.yaml +++ b/graph-node/firehose-node.yaml @@ -55,7 +55,7 @@ spec: terminationGracePeriodSeconds: 10 initContainers: - name: wait-for-genesis - image: persistenceone/persistencecore:v9.2.0-fh + image: persistenceone/persistencecore:v9.2.1-fh imagePullPolicy: Always env: - name: GENESIS_NODE_DATA_RESOLUTION_METHOD @@ -87,7 +87,7 @@ spec: echo "Ready to start" exit 0 - name: init-firehose-node - image: persistenceone/persistencecore:v9.2.0-fh + image: persistenceone/persistencecore:v9.2.1-fh imagePullPolicy: Always env: - name: CHAIN_ID @@ -178,7 +178,7 @@ spec: name: scripts-graph containers: - name: firehose-node - image: persistenceone/persistencecore:v9.2.0-fh + image: persistenceone/persistencecore:v9.2.1-fh imagePullPolicy: Always env: - name: CHAIN_ID diff --git a/networks/devnet/configmap.yaml b/networks/devnet/configmap.yaml index 3ab435a..d4ab253 100644 --- a/networks/devnet/configmap.yaml +++ b/networks/devnet/configmap.yaml @@ -16,13 +16,13 @@ data: sync_node.exposer_port: '8081' sync_node.port_p2p: '26656' sync_node.genesis_json_fetch_url: '' - snapshot_restore_url: 'https://dexter-zone.sgp1.digitaloceanspaces.com/persistence-snapshot/devnet-backup.tar.lz4' + snapshot_restore_url: '' seeds: '' - # For buffer time to sync the node + persistent_peers: '' first_streamable_block: '50' force_init: 'false' - one_block_store_url: 's3://sgp1.digitaloceanspaces.com/dexter-zone/devnet/one-blocks?region=us-east-1' - merged_blocks_store_url: 's3://sgp1.digitaloceanspaces.com/dexter-zone/devnet/merged-blocks?region=us-east-1' + one_block_store_url: 's3://sgp1.digitaloceanspaces.com/dexter-zone/devnet-v9_2/one-blocks?region=us-east-1' + merged_blocks_store_url: 's3://sgp1.digitaloceanspaces.com/dexter-zone/devnet-v9_2/merged-blocks?region=us-east-1' --- apiVersion: v1 kind: ConfigMap diff --git a/networks/devnet/kustomization.yaml b/networks/devnet/kustomization.yaml index 79cfcb9..d348385 100644 --- a/networks/devnet/kustomization.yaml +++ b/networks/devnet/kustomization.yaml @@ -2,6 +2,6 @@ namespace: devnet resources: - ../../base/persistencecore - # - ingress.yaml - # - configmap.yaml - # - ../../graph-node-alternate/overlays/one-pod \ No newline at end of file + - ingress.yaml + - configmap.yaml + - ../../graph-node-alternate/overlays/one-pod \ No newline at end of file diff --git a/networks/mainnet/configmap.yaml b/networks/mainnet/configmap.yaml index 23f0a49..66f8d2d 100644 --- a/networks/mainnet/configmap.yaml +++ b/networks/mainnet/configmap.yaml @@ -16,9 +16,9 @@ data: sync_node.exposer_port: '' sync_node.port_p2p: '26656' sync_node.genesis_json_fetch_url: 'https://raw.githubusercontent.com/persistenceOne/networks/master/core-1/final_genesis.json' - snapshot_restore_url: 'https://dexter-zone.sgp1.digitaloceanspaces.com/persistence-snapshot/persistence_13023642.tar.lz4' + snapshot_restore_url: 'https://snapshots.polkachu.com/snapshots/persistence/persistence_14835015.tar.lz4' seeds: 'fbf0aa94b512902a249b246ed5763b50df9c0543@seed.core.persistence.one:26656' - persistent_peers: 'b3ebed629f25548665d6f855464784fdb2752ba6@65.108.98.235:28556,b5d58e4133ea71d04ee617be40880a53934e4443@135.181.215.62:2080,bb7c2cddd665303a0b4233e3d47f5bf2c3ac21ba@135.181.142.60:15601,91d4802dfc07466e481d51a63150462125cf1800@65.108.122.246:26696,2c4433a5398ed41845385d413a720e95d524a126@93.115.25.106:33656,72d1de881a4fabed94b56234f3d03b3b273c2839@51.195.6.227:26625,322ba0a055ec7fc11a631d396c324c4139a09235@57.128.64.127:26656,2b8e70fd5ace9ee226c18ee79a28f2916e9b739f@172.104.205.110:26656,cea12d1a01ffb435a1bc12a73608483b00cd22d4@138.201.197.188:2000,cd8b8a33eea7656f3c3bbbfec93d3aab5a17e183@77.68.22.38:26656,f551bfb71110aa1e455fc03c8f68d6cc08c457a4@148.251.53.110:2080,2c92d3be49a5ddf993f3e3e115ecc86a91cfbee1@185.16.38.121:15601,f116b4acaa437c1457a8c417626449540399fdcd@95.214.55.156:26656,000dd58e17948936cdf07e88ee2bd84ab7980a95@164.92.64.28:30661,d10ccca931c6ff64b29a2abbd4f7323da8325066@5.161.214.237:26656,e61df667622195715aae7aa9e3f87b0422becb4b@18.191.232.91:26656,ae7d0b68ab7c1df5248d988c22fc830e87ee9409@13.233.97.144:26656,2f46bc9d6617c05bde3ca1e4c48219b91900f485@43.153.17.58:26656,55961d33223370c76e860cef6ce6f22601c99da1@15.235.160.85:26656,1b222be07c63c5ba1d100f8998c52f5fb8da5830@34.88.231.129:26656,465944474abc9ad859061b6b96612edba1428955@65.108.71.119:38656,51a7fda52a90fbe697fbafe7ff3181edd7e0984e@54.64.157.114:26656,405f158dab7b18769bb62776d436e4a9a6144117@95.214.55.227:26896,b5316e329b7e62dc82baabc4d84cf340677d44fc@135.125.189.59:26656,f78fad1e6b577eae5f32d24991d939a37d783286@103.230.84.43:26656,8b9251eac869f69476e42f937a5414552542b12a@34.90.60.238:26656,fa49becd51c1c9e28f368e478043afc33f70ecac@54.216.66.11:26656,2c9e70a7bbdc61ad90eb6a540a7964cf0d7087b8@138.201.23.39:27656,4169a14a715928e70fe9020dd83432bcdc2c9925@34.89.163.106:26656,3a980a5b039e18ae88adf9a50f7db5d456519a4c@52.30.132.101:26656,567feb48bfb6ff843021b4697372141894e88fbf@46.137.182.253:26656,f4390d652c88c9d969c1288c318822dab91c43d5@93.115.25.178:2042,858f8a61f6eac359858215b4358d1675085f9d9e@35.201.129.255:26656,f2ca68fe75a57430673c84a22c555ac00b5c8a1b@34.195.53.91:26656,7e545c833668b87770a3db7cb10b18b8994b1f02@212.95.51.215:54656,e92f85dc0412ad760ada0d21dafb93dbdcdecd45@34.88.201.185:26656,df1191b16805fb9074c9d560f32545981f440125@52.4.132.28:26656,60d262f86129d0b4194e42b9f8723042c338899c@34.159.42.177:26656,273a1152b102fe465de01c45f250473fed885aaa@65.108.142.81:26685,d4c68a8f48815daf780eafd0703b9ff0eecc970f@150.136.14.71:26656,504ae7cf4888f1b0202dc9734d2dd5f9ec086ba1@18.235.35.236:26656,1aad2fd176088f66b305e770b811f6f9be645dc4@65.108.127.158:26657,59749e04a1697e0f188a9dc9d1b4fb96d488823b@65.109.52.56:26194,dddafd92aafc8669b8bda15ccc72b82f00041f74@23.106.231.73:26656,7a429cbd3a23975a079c7b9be39f8c86cf78253b@37.252.184.240:26656,1b7fb9be48d7b7fee269712e1d8f73147ba53ad6@3.248.249.169:26656,206883b873f253ecae0e3e599c458b4c1888d025@139.99.68.176:26656,adc52d4ca418f364773efca77155740cb418e44b@85.239.233.56:3000,a8db0cfbd2b4b0b3ff58320f56115e23c5f146db@162.55.92.114:2060,d7cea822735f63d9934032b28409e043bc6a888b@188.172.228.87:2000,1a0b7f6ccfe1358fb6ff1f66740cc4ab4809a153@65.108.136.206:26656,dfef569ebadced8fdb632cdbfc39807f3db5d9c0@23.88.71.91:26656,200e5e4b8410ebe0211d9040d3004fc732baa919@185.111.159.232:3000,2ad7b01a76b568703410cffa7cb53c5a8b3a7080@209.126.84.180:26656,d68cba170d40f7b36962a5e44048e11b55db8375@157.90.180.62:26657,f116b1a17d4b26d0ff5fc2dba0009590061fbbe7@149.28.111.247:26656,f6782a98426060ca417002f3dcc794359d6efc48@185.119.118.116:2000,ba6ca269cfcf412c175dd6259c1ae15ee5370b08@89.58.18.61:3000,7dbc24f8992d2143598b8720f64b3b96a0f8f736@34.89.165.216:26656,622c1236dbc3e6c56d75eb3f06e046140997b0d1@185.111.159.178:15456,e726816f42831689eab9378d5d577f1d06d25716@134.65.194.184:26656,88f996bec8aa42675cac365a6490a6a2d96fa9e9@89.58.17.149:26656,ce9dc9467af943bf35f17f04cfcdf3895914d867@135.181.113.227:33656,7cfc2ba5ed2fac6ed3611bd97ba966568c298e6a@84.244.95.236:26656,9047d858b8c71dc4e2e562ff2ba4a31e90f1bd38@107.135.15.67:26696,7cc92a9e3dcad37e5e7b3adf7814c37070fa9787@161.97.187.189:26656,a08045bac640469f15fcfacf2182ebb519e02af9@46.20.245.41:26656,74d0da956485b22ae339b3c5709fea7b2e48ae67@146.59.81.92:33656,f8d3c4f083088c376e3eee45097e2f401902181d@15.235.182.26:26656,f2e5a7b9e54d2b0ac41e8367354e273ec1a9a40c@93.189.30.112:26656,3a3f580d8b81df43900687167b3be469325cf174@194.233.66.44:15456,53aeb694fb75d7018a25a766852cea898817e10c@65.108.3.247:26656,f0b1226bb4e8ff2737ee215c9e26cad33a246025@65.109.69.59:15456,f3cd78dffb5d91902d122dee25ef35bf3393c686@193.70.47.90:15456,e50c644dc8f7f9acc183b5a990f184eb0bc7663b@18.181.255.213:26656,ca2ab57f9bd2c366956369e074957f109ccdfb29@130.193.41.35:26656,cf2ae533d05a0ce7040d0cea43b2947bcc39894a@95.165.89.222:26565,121067114242014b2f0a7e5f2a02ef7a6a158ac2@46.166.163.37:26656,bc31aff071ebae4f5ea3b34ff30430fc55899fc9@65.108.230.188:15456,f99cae0661913a87a1f1401451585b43724504da@95.216.202.37:26656,646d0ad08c408f93276f90cd29d4e410e2d60f63@193.34.144.156:25656,88846ee2e88d288624cded2706c13f4ba8311a09@85.10.197.58:15456,600073bf5d27d14282a82cf3e070df68feb43ecf@38.242.142.199:56656,4317f6547256b6ab75f13c80483179371c653224@204.93.241.113:26656,ac14942bd2427d236678a8dd97a78b357768c33d@88.198.11.152:26656,e640e521957974cbfb1c851aacdbc3115a606f39@3.108.249.47:26656,137818b03a705cf86622b4d97a074091f2f22589@185.225.233.30:26756,5e64e747b9dfdd022f7c7111bb089ab24b401def@89.163.140.132:26656,68a058e0520f9f9e5a5538a5b7c1375562f725f0@65.108.235.36:27656,a458cd95475dc19b9fad17bf6ccd57cd72144f13@128.199.128.15:26050,61913467f12acb3b425374010393db22ff017de3@141.94.97.23:26656,008e6f1662402b00d539a296f976532f836f1c78@217.174.247.59:15607,59c258ebf6849b71b2d8647487679861994ded69@34.107.51.182:26656,d5d5a7242f9ec0c68417d8921ab03caea08ccb03@178.62.23.83:26656,2069ee4e0fe3bc993bc16089439dee76d0341eb0@51.91.118.17:25656,e302b2bad4e22afa824fec6a31f5f9eeb968fbe3@217.76.53.18:26656,89757803f40da51678451735445ad40d5b15e059@134.65.193.59:26656,ebc272824924ea1a27ea3183dd0b9ba713494f83@178.211.139.77:26896,a0673418b8854d474ced0f9a6ff6de8527cb966a@94.130.90.107:26656,5fc293e583bbc05625c6032fb1678df9a233dc21@188.172.228.225:26666,eb775b88a3bcedcb81293227669e0345d629cd2d@85.215.105.19:15607,e4f61825145f2582a83dcea6f1676839fdc52c56@129.213.156.193:26656,429fe9ff1d0fd007e16c209ad7e92e9cbaeef35e@178.128.42.132:26050,34d86d61ed3442e8f405ce509554342a62c3508f@3.110.138.122:26656,db092a43bd0eb00cc29c41a6039b5324463535e0@13.125.207.43:26656,e5d9a0744087ebbdef5eebc274326736424f261c@195.201.63.87:39666,7e9bfec2d141508f0987bccfb2bcdecd51082d32@51.81.16.189:26656,3823743e174b085dadab4b46454a9a5c1b2768d9@75.119.148.118:26656,bf21941ffd66d1c7cc12b70158dc79bf7310d08a@159.203.187.36:26050,ff12247f50ce7cdd9a4e8bea9d98c889653d12d0@159.89.101.239:26050,ef00de87be3d9562e3745179e95aedf8e5a01ad0@146.190.59.8:26050,bdc3f5c7f48b468d4579a25f45149044fdeee0b1@65.108.72.177:26656' + persistent_peers: '' first_streamable_block: '10522616' force_init: 'false' one_block_store_url: 's3://sgp1.digitaloceanspaces.com/dexter-zone/one-blocks?region=us-east-1' diff --git a/networks/testnet/configmap.yaml b/networks/testnet/configmap.yaml index cafa343..a5e6c53 100644 --- a/networks/testnet/configmap.yaml +++ b/networks/testnet/configmap.yaml @@ -16,7 +16,7 @@ data: sync_node.exposer_port: '' sync_node.port_p2p: '26656' sync_node.genesis_json_fetch_url: https://raw.githubusercontent.com/persistenceOne/networks/master/test-core-2/genesis.json - snapshot_restore_url: https://dexter-zone.sgp1.digitaloceanspaces.com/persistence-snapshot/testnet/testnet-after-v8_1-upgrade.tar.lz4 + snapshot_restore_url: https://persistence-snapshot.s3.us-west-1.amazonaws.com/test-core-2/2024-01-26/test-core-2_3701900.tar.lz4 seeds: '3ce04530d850e727d092e9a81d9f580c7ff8db56@141.94.97.77:26656' persistent_peers: '3ce04530d850e727d092e9a81d9f580c7ff8db56@141.94.97.77:26656,3f0918801adf0ea1d17bef501e2583a5539f5cd9@65.21.126.182:26656,8eb88b7edf912ac9d63b183b42823f220a3fc226@65.108.192.123:48656,98f6fc6560ebec5a1d2099ecf91213b53575ec81@65.21.77.175:11006,ee239d2498bd073968e774887f813ac1fd4e50b3@95.216.242.183:26656,0134c0a888ab07d67c4a41afcb103b76266fb0e7@65.21.202.61:11006,f6ef633ef1caa621f3f4bea7a7ef31463fc9a43e@95.216.184.59:26656,591ceb144a142275ac3e51ed310aa1b6eb04e20c@217.76.48.63:38556,9b341b2b1d6d453a79c911ad7b2d032e117184cf@136.243.105.228:26656,b2f036bfa207249363ea2ac935e6bed3d4c10dbd@37.252.184.239:26656,2dd629fc08c97061c64f15f934c1c368565870d6@217.76.53.18:36656,7fd0511997417324ab46ac85a935d89998d1e4e2@94.130.76.179:26656,c3e785f853677ad3677542f9e2679a20957ca104@217.76.61.200:26756,47d24380223603552fa3b981239617df8bf58902@185.225.233.30:26656,cee6b94965f301e8b5ad905a65fa39c03cd193ce@51.68.152.17:26656,990269572d9075777f98460e35fa57d6665fac9d@94.130.132.227:2130,428b57bad52f71845fc6f359c49bdbc39eb22d99@195.14.6.2:26656,21ca0b996db604681fb73721ecb01d2c6410c628@162.19.94.46:26656,30859d0fb31dd08894ba15ac90bf020b26ba5890@23.88.53.28:56666,ac80febd6313b39e70d3e5ed50afddc491d79258@195.189.96.111:31656,82e69659bef9c385b4934727f43d69a673f6f033@5.161.191.128:26656,762c339b3f7626b9ebcfe7286f1e133eec587164@65.108.98.235:58556,49d98497f4922217829d0aff65bfb68cce715677@192.248.177.214:26656,fc86e4edef908edc6699bbecdf568cc7743d8d07@125.143.190.194:13002,7f971fc5fc2ffedbaf32f3b4021645571461a712@198.244.177.67:26656,9551e08e22f13ee6dc769731cd131d59f9731332@65.108.79.246:26706,5c2a752c9b1952dbed075c56c600c3a79b58c395@195.3.220.54:26896,8de0a3e97190d24b75736a2db6ebc107aeaafce8@93.115.25.18:31656,20b4f9207cdc9d0310399f848f057621f7251846@222.106.187.13:20800,2585af35660dcfb0a02dd8bc2e766d11f5603f99@73.117.148.143:26656,40f63c75b6afe61e74af428cc669eb481089a587@65.108.225.158:15456,23ae7c78081becdfe16af99329337920beafa2b2@167.235.115.119:26656' # For buffer time to sync the node diff --git a/networks/testnet/ingress.yaml b/networks/testnet/ingress.yaml index 688b2e7..c144aaa 100644 --- a/networks/testnet/ingress.yaml +++ b/networks/testnet/ingress.yaml @@ -1,23 +1,33 @@ apiVersion: networking.k8s.io/v1 kind: Ingress metadata: - name: ingress-graph-testnet-persistence + name: ingress-core-testnet-graph annotations: nginx.ingress.kubernetes.io/ssl-redirect: "false" + nginx.ingress.kubernetes.io/enable-cors: "true" + nginx.org/websocket-services: "persistencecore-graph-node" + nginx.ingress.kubernetes.io/rewrite-target: /$2 spec: tls: - - secretName: cloudflare-tls-graph-testnet + - secretName: cloudflare-tls hosts: - - graph.testnet.persistence.one + - graph.testnet.dexter.zone rules: - - host: graph.testnet.persistence.one + - host: graph.testnet.dexter.zone http: paths: - - path: / + - path: /()(.*) pathType: Prefix backend: service: name: persistencecore-graph-node port: number: 8000 + - path: /ws(/|$)(.*) + pathType: Prefix + backend: + service: + name: persistencecore-graph-node + port: + number: 8001 ingressClassName: nginx \ No newline at end of file From be4133f596409a8e526b15d7630e81670bafc210 Mon Sep 17 00:00:00 2001 From: betterclever Date: Sat, 3 May 2025 05:29:23 +0530 Subject: [PATCH 11/13] Update persistencecore images and configurations; add firehose-resync.yaml for resync functionality --- .DS_Store | Bin 8196 -> 8196 bytes base/persistencecore/genesis.yaml | 4 +- base/persistencecore/kustomization.yaml | 2 +- base/persistencecore/validator.yaml | 4 +- .../base/config-graph/config-graph-node.toml | 9 +- graph-node-alternate/base/graph-node.yaml | 2 +- graph-node-alternate/base/hasura2.yaml | 9 +- graph-node-alternate/base/kustomization.yaml | 4 +- .../overlays/multi-pod/firehose-firehose.yaml | 8 +- .../overlays/multi-pod/firehose-merger.yaml | 4 +- .../overlays/multi-pod/firehose-reader.yaml | 14 +- .../overlays/multi-pod/firehose-relayer.yaml | 8 +- .../overlays/multi-pod/firehose-resync.yaml | 243 ++++++++++++++++++ .../overlays/multi-pod/kustomization.yaml | 3 +- .../overlays/one-pod/firehose.yaml | 9 +- graph-node/scripts/init-firehose-node.sh | 2 +- networks/devnet/kustomization.yaml | 2 +- networks/mainnet/configmap.yaml | 4 +- networks/mainnet/ingress.yaml | 60 ++++- networks/testnet/configmap.yaml | 2 +- 20 files changed, 350 insertions(+), 43 deletions(-) create mode 100644 graph-node-alternate/overlays/multi-pod/firehose-resync.yaml diff --git a/.DS_Store b/.DS_Store index c44c4e01ba546b7b25a13b4fcc65ff4c8f2a6eea..bf4af9e89684102e1bbea020df186003ac0c8055 100644 GIT binary patch delta 517 zcmZp1XmOa}F8U^hRb&SV||$$FMbVFm^U76v_rbcRfZlH7b3m!zEhB%l~a4C~+T zW?PRsqROY>l`qIJ3{K9^Edc6aV2}orEDT8ui44UIsX6ILatzVoKv|Z_O9ZB{pWe3n zx>dl@$@YS>F!ttT!E{EZWRJ;bgj6_W*W9ibi#h5D_-xom~12L#dI@vvX8Ki z2(lmcGkwso4ghL}NFX#LOVp#dn(+e2**px{45QNldz%bcaWHFP;*2w~*Vw?Yo1Tt-Am-xmq M*;QmALeP&103WT0-v9sr delta 330 zcmZp1XmOa}ÄU^hRb#$+A=$$G|}CJYP=EDU-K=?s|+CAs-7E=f80NkB1<8?3J) zk_C=BqROY>l`qIJ3{K9^Edc5Pn$Q3uSs0QS5*dmaQghOgW>DjXMQ87&Eaal{eGkrG1Kk0dNH*+$rlX~V_IKEgU8 z$bOg;_V&nXhNF&934~^334Rn;GcK6?TVyel*1ydQMAMlj7VOx}F7b_pDc@!CeNolT KcSN;;Vp{>aA!V`v diff --git a/base/persistencecore/genesis.yaml b/base/persistencecore/genesis.yaml index d96eff6..a5d0a5b 100644 --- a/base/persistencecore/genesis.yaml +++ b/base/persistencecore/genesis.yaml @@ -58,11 +58,11 @@ spec: spec: initContainers: - name: init-genesis - image: persistenceone/persistencecore:v9.2.1-fh + image: persistenceone/persistencecore:v12-alliance-rc0 imagePullPolicy: Always env: - name: COINS - value: "100000000000000000uxprt" + value: "100000000000000000uxprt,100000000000000000stk/uxprt,100000000000000000stk/uatom,100000000000000000stk/udydx,100000000000000000stk/uosmo" - name: CHAIN_ID valueFrom: configMapKeyRef: diff --git a/base/persistencecore/kustomization.yaml b/base/persistencecore/kustomization.yaml index 86f3254..63368d9 100644 --- a/base/persistencecore/kustomization.yaml +++ b/base/persistencecore/kustomization.yaml @@ -1,7 +1,7 @@ resources: - genesis.yaml # - configmap.yaml - # - validator.yaml + - validator.yaml generatorOptions: disableNameSuffixHash: true diff --git a/base/persistencecore/validator.yaml b/base/persistencecore/validator.yaml index 4f71d4a..5008b0e 100644 --- a/base/persistencecore/validator.yaml +++ b/base/persistencecore/validator.yaml @@ -50,7 +50,7 @@ spec: spec: initContainers: - name: wait-for-genesis - image: persistenceone/persistencecore:v9.2.1-fh + image:persistenceone/persistencecore:v12-alliance-rc0 imagePullPolicy: Always env: - name: GENESIS_HOST @@ -68,7 +68,7 @@ spec: echo "Ready to start" exit 0 - name: init-validator - image: persistenceone/persistencecore:v9.2.1-fh + image:persistenceone/persistencecore:v12-alliance-rc0 imagePullPolicy: Always env: - name: CHAIN_ID diff --git a/graph-node-alternate/base/config-graph/config-graph-node.toml b/graph-node-alternate/base/config-graph/config-graph-node.toml index 88d694d..7c6f94b 100644 --- a/graph-node-alternate/base/config-graph/config-graph-node.toml +++ b/graph-node-alternate/base/config-graph/config-graph-node.toml @@ -16,4 +16,11 @@ shard = "primary" protocol = "cosmos" provider = [ { label = "persistence", details = { type = "firehose", url = "http://FIREHOSE_HOST:FIREHOSE_PORT" }}, -] \ No newline at end of file +] + +[chains.babylon] +shard = "primary" +protocol = "substreams" +provider = [ + { label = "babylon", details = { type = "substreams", url = "http://159.89.170.65:10016" }}, +] diff --git a/graph-node-alternate/base/graph-node.yaml b/graph-node-alternate/base/graph-node.yaml index 0e85a44..139152a 100644 --- a/graph-node-alternate/base/graph-node.yaml +++ b/graph-node-alternate/base/graph-node.yaml @@ -95,7 +95,7 @@ spec: containers: - name: graph-node - image: graphprotocol/graph-node:v0.34.0 + image: graphprotocol/graph-node:v0.35.1 imagePullPolicy: Always env: - name: FIREHOSE_HOST diff --git a/graph-node-alternate/base/hasura2.yaml b/graph-node-alternate/base/hasura2.yaml index 4edcf2e..6100d25 100644 --- a/graph-node-alternate/base/hasura2.yaml +++ b/graph-node-alternate/base/hasura2.yaml @@ -30,7 +30,7 @@ spec: spec: containers: - name: hasura - image: hasura/graphql-engine:v2.19.0 + image: hasura/graphql-engine:v2.37.0 ports: - containerPort: 8080 protocol: TCP @@ -46,7 +46,12 @@ spec: valueFrom: secretKeyRef: name: postgres-secret - key: DEXTER_POSTGRES_HASURA_URL + key: DEXTER_POSTGRES_HASURA_URL2 + - name: DEXTER_POSTGRES_HASURA_GRAPHCORE_DB + valueFrom: + secretKeyRef: + name: postgres-secret + key: DEXTER_POSTGRES_HASURA_GRAPHCORE_DB - name: HASURA_GRAPHQL_ENABLE_CONSOLE value: 'true' - name: HASURA_GRAPHQL_DEV_MODE diff --git a/graph-node-alternate/base/kustomization.yaml b/graph-node-alternate/base/kustomization.yaml index e13c3dc..7e9b265 100644 --- a/graph-node-alternate/base/kustomization.yaml +++ b/graph-node-alternate/base/kustomization.yaml @@ -1,8 +1,8 @@ resources: - graph-node.yaml - ipfs-node.yaml - - hasura.yaml - # - hasura2.yaml + # - hasura.yaml + - hasura2.yaml - ipfs-persistent-volume.yaml generatorOptions: diff --git a/graph-node-alternate/overlays/multi-pod/firehose-firehose.yaml b/graph-node-alternate/overlays/multi-pod/firehose-firehose.yaml index 7929bfe..1c7b9e3 100644 --- a/graph-node-alternate/overlays/multi-pod/firehose-firehose.yaml +++ b/graph-node-alternate/overlays/multi-pod/firehose-firehose.yaml @@ -88,11 +88,11 @@ spec: --common-merged-blocks-store-url $MERGED_BLOCKS_STORE_URL resources: limits: - cpu: "1" - memory: "1G" + cpu: "0.5" + memory: "0.5G" requests: - cpu: "1" - memory: "1G" + cpu: "0.5" + memory: "0.5G" volumes: - name: config-graph configMap: diff --git a/graph-node-alternate/overlays/multi-pod/firehose-merger.yaml b/graph-node-alternate/overlays/multi-pod/firehose-merger.yaml index 785fc84..aad84e6 100644 --- a/graph-node-alternate/overlays/multi-pod/firehose-merger.yaml +++ b/graph-node-alternate/overlays/multi-pod/firehose-merger.yaml @@ -82,10 +82,10 @@ spec: --common-merged-blocks-store-url $MERGED_BLOCKS_STORE_URL resources: limits: - cpu: "1" + cpu: "0.5" memory: "1G" requests: - cpu: "1" + cpu: "0.5" memory: "1G" volumes: - name: config-graph diff --git a/graph-node-alternate/overlays/multi-pod/firehose-reader.yaml b/graph-node-alternate/overlays/multi-pod/firehose-reader.yaml index 3a9f98d..e842c58 100644 --- a/graph-node-alternate/overlays/multi-pod/firehose-reader.yaml +++ b/graph-node-alternate/overlays/multi-pod/firehose-reader.yaml @@ -29,7 +29,7 @@ metadata: name: persistencecore-firehose-reader spec: serviceName: persistencecore-firehose-reader - replicas: 1 + replicas: 2 revisionHistoryLimit: 3 selector: matchLabels: @@ -51,7 +51,7 @@ spec: terminationGracePeriodSeconds: 10 initContainers: - name: wait-for-genesis - image: persistenceone/persistencecore:v10.3.0-fh + image: betterpersist/persistencecore:v11.20.0-fh imagePullPolicy: Always env: - name: GENESIS_NODE_DATA_RESOLUTION_METHOD @@ -83,7 +83,7 @@ spec: echo "Ready to start" exit 0 - name: init-firehose-node - image: persistenceone/persistencecore:v10.3.0-fh + image: betterpersist/persistencecore:v11.20.0-fh imagePullPolicy: Always env: - name: CHAIN_ID @@ -178,7 +178,7 @@ spec: name: scripts-graph containers: - name: firehose-node - image: persistenceone/persistencecore:v10.3.0-fh + image: betterpersist/persistencecore:v11.20.0-fh imagePullPolicy: Always env: - name: CHAIN_ID @@ -229,11 +229,11 @@ spec: --data-dir /fh-data resources: limits: - cpu: "2" + cpu: "1" memory: "6G" requests: - cpu: "2" - memory: "6G" + cpu: "0.5" + memory: "4G" volumeMounts: - mountPath: /persistencecore name: node-pv-storage diff --git a/graph-node-alternate/overlays/multi-pod/firehose-relayer.yaml b/graph-node-alternate/overlays/multi-pod/firehose-relayer.yaml index 51484ca..0b9eb4f 100644 --- a/graph-node-alternate/overlays/multi-pod/firehose-relayer.yaml +++ b/graph-node-alternate/overlays/multi-pod/firehose-relayer.yaml @@ -74,11 +74,11 @@ spec: --common-first-streamable-block $FIRST_STREAMABLE_BLOCK resources: limits: - cpu: "1" - memory: "1G" + cpu: "0.25" + memory: "0.5G" requests: - cpu: "1" - memory: "1G" + cpu: "0.25" + memory: "0.5G" volumes: - name: config-graph configMap: diff --git a/graph-node-alternate/overlays/multi-pod/firehose-resync.yaml b/graph-node-alternate/overlays/multi-pod/firehose-resync.yaml new file mode 100644 index 0000000..0d9538b --- /dev/null +++ b/graph-node-alternate/overlays/multi-pod/firehose-resync.yaml @@ -0,0 +1,243 @@ +--- +apiVersion: v1 +kind: Service +metadata: + name: persistencecore-firehose-resync + labels: + app.kubernetes.io/name: persistencecore-firehose-resync +spec: + clusterIP: None + selector: + app.kubernetes.io/name: persistencecore-firehose-resync +--- +apiVersion: apps/v1 +kind: StatefulSet +metadata: + name: persistencecore-firehose-resync +spec: + serviceName: persistencecore-firehose-resync + replicas: 1 + revisionHistoryLimit: 3 + selector: + matchLabels: + app.kubernetes.io/instance: persistencecore + app.kubernetes.io/name: persistencecore-firehose-resync + template: + metadata: + annotations: + quality: release + role: api-gateway + sla: high + tier: gateway + labels: + app.kubernetes.io/instance: persistencecore + app.kubernetes.io/type: persistencecore-firehose-resync + app.kubernetes.io/name: persistencecore-firehose-resync + app.kubernetes.io/version: '0.1' + spec: + terminationGracePeriodSeconds: 10 + initContainers: + - name: wait-for-genesis + image: persistenceone/persistencecore:v10.4.0-fh + imagePullPolicy: Always + env: + - name: GENESIS_NODE_DATA_RESOLUTION_METHOD + valueFrom: + configMapKeyRef: + key: sync_node.resolution_method + name: firehose-node-config + - name: GENESIS_HOST + valueFrom: + configMapKeyRef: + key: sync_node.host + name: firehose-node-config + - name: GENESIS_PORT + valueFrom: + configMapKeyRef: + key: sync_node.exposer_port + name: firehose-node-config + command: + - bash + - "-c" + - | + # Do the following if the resolution method is dynamic else skip (we assume that in static configuration peer node is already up) + if [ "$GENESIS_NODE_DATA_RESOLUTION_METHOD" = "DYNAMIC" ]; then + while [ $(curl -sw '%{http_code}' http://$GENESIS_HOST:$GENESIS_PORT/node_id -o /dev/null) -ne 200 ]; do + echo "Genesis validator does not seem to be ready. Waiting for it to start..." + sleep 10; + done + fi + echo "Ready to start" + exit 0 + - name: init-firehose-node + image: persistenceone/persistencecore:v10.4.0-fh + imagePullPolicy: Always + env: + - name: CHAIN_ID + valueFrom: + configMapKeyRef: + key: chain.id + name: persistencecore + - name: HOME_DIR + value: /persistencecore + - name: GENESIS_HOST + valueFrom: + configMapKeyRef: + key: sync_node.host + name: firehose-node-config + # We support 2 types of resolution methods: (dynamic, static), if the resolution method is dynamic then we fetch the node id + # on the fly from the exposer app exposed service on the specified port, otherwise it is required that the node id is + # specified exactly as an environment variable + - name: GENESIS_NODE_DATA_RESOLUTION_METHOD + valueFrom: + configMapKeyRef: + key: sync_node.resolution_method + name: firehose-node-config + - name: GENESIS_EXPOSER_PORT + valueFrom: + configMapKeyRef: + key: sync_node.exposer_port + name: firehose-node-config + # This URL is used to fetch the genesis json if the NODE_DATA_RESOLUTION_METHOD is static + - name: GENESIS_JSON_FETCH_URL + valueFrom: + configMapKeyRef: + key: sync_node.genesis_json_fetch_url + name: firehose-node-config + - name: GENESIS_PORT_P2P + valueFrom: + configMapKeyRef: + key: sync_node.port_p2p + name: firehose-node-config + - name: STATE_RESTORE_SNAPSHOT_URL + value: 'https://persistence-snapshot.s3.us-west-1.amazonaws.com/core-1/2024-02-09/core-1_15293560.tar.lz4' + - name: SEEDS + valueFrom: + configMapKeyRef: + key: seeds + name: firehose-node-config + - name: PERSISTENT_PEERS + valueFrom: + configMapKeyRef: + key: persistent_peers + name: firehose-node-config + - name: FIRST_STREAMABLE_BLOCK + valueFrom: + configMapKeyRef: + key: first_streamable_block + name: firehose-node-config + - name: FORCE_INIT + value: 'true' + command: + - bash + - "-c" + - | + # Execute the initialization script for the firehose node + bash /scripts/init-firehose-node.sh + + echo "Installing firecosmos if not already installed" + + # Check if firecosmos is already installed + if [ ! -f /persistencecore/bin/firecosmos ]; then + # Download the firecosmos binary from the specified URL + wget https://github.com/figment-networks/firehose-cosmos/releases/download/v0.6.0/firecosmos_linux_amd64 -O firecosmos + # Make the downloaded binary executable + chmod +x firecosmos + # Create the directory for firecosmos if it doesn't exist + mkdir -p /persistencecore/bin + # Move the firecosmos binary to the appropriate directory + mv firecosmos /persistencecore/bin/firecosmos + fi + resources: + limits: + cpu: "0.5" + memory: "0.5G" + requests: + cpu: "0.5" + memory: "0.5G" + volumeMounts: + - mountPath: /persistencecore + name: node-pv-storage + - mountPath: /config-graph + name: config-graph + - mountPath: /scripts + name: scripts-graph + containers: + - name: firehose-node + image: persistenceone/persistencecore:v10.4.0-fh + imagePullPolicy: Always + env: + - name: CHAIN_ID + valueFrom: + configMapKeyRef: + key: chain.id + name: persistencecore + - name: HOME_DIR + value: /persistencecore + - name: AWS_ACCESS_KEY_ID + valueFrom: + secretKeyRef: + key: aws_access_key_id + name: firehose-node-aws-credentials + - name: AWS_SECRET_ACCESS_KEY + valueFrom: + secretKeyRef: + key: aws_secret_access_key + name: firehose-node-aws-credentials + - name: ONE_BLOCK_STORE_URL + valueFrom: + configMapKeyRef: + key: one_block_store_url + name: firehose-node-config + - name: MERGED_BLOCKS_STORE_URL + valueFrom: + configMapKeyRef: + key: merged_blocks_store_url + name: firehose-node-config + - name: FIRST_STREAMABLE_BLOCK + valueFrom: + configMapKeyRef: + key: first_streamable_block + name: firehose-node-config + command: + - bash + - "-c" + - | + sleep infinity + exec /persistencecore/bin/firecosmos start reader \ + --reader-mode node \ + --reader-node-path /usr/bin/persistenceCore \ + --reader-node-args "start --x-crisis-skip-assert-invariants --home /persistencecore" \ + --reader-node-logs-filter "module=(p2p|pex|consensus|x/bank|x/wasm)" \ + --common-first-streamable-block $FIRST_STREAMABLE_BLOCK \ + --common-one-block-store-url "$ONE_BLOCK_STORE_URL" \ + --common-merged-blocks-store-url "$MERGED_BLOCKS_STORE_URL" \ + --data-dir /fh-data + resources: + limits: + cpu: "1" + memory: "2G" + requests: + cpu: "1" + memory: "2G" + volumeMounts: + - mountPath: /persistencecore + name: node-pv-storage + - mountPath: /config-graph + name: config-graph + volumes: + - name: config-graph + configMap: + name: config-graph + - name: scripts-graph + configMap: + name: scripts-graph + volumeClaimTemplates: + - metadata: + name: node-pv-storage + spec: + storageClassName: do-block-storage + accessModes: [ "ReadWriteOnce" ] + resources: + requests: + storage: 20Gi diff --git a/graph-node-alternate/overlays/multi-pod/kustomization.yaml b/graph-node-alternate/overlays/multi-pod/kustomization.yaml index 486a116..fda565c 100644 --- a/graph-node-alternate/overlays/multi-pod/kustomization.yaml +++ b/graph-node-alternate/overlays/multi-pod/kustomization.yaml @@ -3,4 +3,5 @@ resources: - firehose-reader.yaml - firehose-merger.yaml - firehose-relayer.yaml - - firehose-firehose.yaml \ No newline at end of file + - firehose-firehose.yaml + # - firehose-resync.yaml \ No newline at end of file diff --git a/graph-node-alternate/overlays/one-pod/firehose.yaml b/graph-node-alternate/overlays/one-pod/firehose.yaml index 8db0444..2fac908 100644 --- a/graph-node-alternate/overlays/one-pod/firehose.yaml +++ b/graph-node-alternate/overlays/one-pod/firehose.yaml @@ -51,7 +51,7 @@ spec: terminationGracePeriodSeconds: 30 initContainers: - name: wait-for-genesis - image: persistenceone/persistencecore:v11.4.0-fh + image: betterpersist/persistencecore:v11.15.0-rc0-fh imagePullPolicy: Always env: - name: GENESIS_NODE_DATA_RESOLUTION_METHOD @@ -83,7 +83,7 @@ spec: echo "Ready to start" exit 0 - name: init-firehose-node - image: persistenceone/persistencecore:v11.4.0-fh + image: betterpersist/persistencecore:v11.1.0-rc0-fh imagePullPolicy: Always env: - name: CHAIN_ID @@ -178,7 +178,7 @@ spec: name: scripts-graph containers: - name: firehose-node - image: persistenceone/persistencecore:v11.4.0-fh + image: betterpersist/persistencecore:v11.15.0-rc0-fh imagePullPolicy: Always env: - name: CHAIN_ID @@ -218,8 +218,8 @@ spec: - "-c" - | # sleep infinity - # exec /persistencecore/bin/firecosmos start merger \ # exec /persistencecore/bin/firecosmos start reader \ + # exec /persistencecore/bin/firecosmos start merger \ exec /persistencecore/bin/firecosmos start reader merger relayer firehose \ --reader-mode node \ --reader-node-path /usr/bin/persistenceCore \ @@ -229,6 +229,7 @@ spec: --common-one-block-store-url "$ONE_BLOCK_STORE_URL" \ --common-merged-blocks-store-url "$MERGED_BLOCKS_STORE_URL" \ --data-dir /fh-data + resources: limits: cpu: "3" diff --git a/graph-node/scripts/init-firehose-node.sh b/graph-node/scripts/init-firehose-node.sh index b829f3b..a4e8d1c 100644 --- a/graph-node/scripts/init-firehose-node.sh +++ b/graph-node/scripts/init-firehose-node.sh @@ -59,7 +59,7 @@ else fi echo "Adding extractor options in config.toml" - cat << END >> $HOME_DIR/config/config.toml +cat << END >> $HOME_DIR/config/config.toml ####################################################### ### Extractor Configuration Options ### ####################################################### diff --git a/networks/devnet/kustomization.yaml b/networks/devnet/kustomization.yaml index d348385..b98ae34 100644 --- a/networks/devnet/kustomization.yaml +++ b/networks/devnet/kustomization.yaml @@ -4,4 +4,4 @@ resources: - ../../base/persistencecore - ingress.yaml - configmap.yaml - - ../../graph-node-alternate/overlays/one-pod \ No newline at end of file + # - ../../graph-node-alternate/overlays/one-pod \ No newline at end of file diff --git a/networks/mainnet/configmap.yaml b/networks/mainnet/configmap.yaml index 66f8d2d..5bfdbb1 100644 --- a/networks/mainnet/configmap.yaml +++ b/networks/mainnet/configmap.yaml @@ -16,8 +16,8 @@ data: sync_node.exposer_port: '' sync_node.port_p2p: '26656' sync_node.genesis_json_fetch_url: 'https://raw.githubusercontent.com/persistenceOne/networks/master/core-1/final_genesis.json' - snapshot_restore_url: 'https://snapshots.polkachu.com/snapshots/persistence/persistence_14835015.tar.lz4' - seeds: 'fbf0aa94b512902a249b246ed5763b50df9c0543@seed.core.persistence.one:26656' + snapshot_restore_url: 'https://persistence-chain-snapshots.s3.ap-south-1.amazonaws.com/core-1/2025-05-01/core-1_21772815.tar.lz4' + seeds: 'ade4d8bc8cbe014af6ebdf3cb7b1e9ad36f412c0@seeds.polkachu.com:15456' persistent_peers: '' first_streamable_block: '10522616' force_init: 'false' diff --git a/networks/mainnet/ingress.yaml b/networks/mainnet/ingress.yaml index 476c191..394c7c8 100644 --- a/networks/mainnet/ingress.yaml +++ b/networks/mainnet/ingress.yaml @@ -9,11 +9,11 @@ metadata: nginx.ingress.kubernetes.io/rewrite-target: /$2 spec: tls: - - secretName: cloudflare-tls + - secretName: cloudflare-tls-persistence hosts: - - graph.core-1.dexter.zone + - graph.dex.persistence.one rules: - - host: graph.core-1.dexter.zone + - host: graph.dex.persistence.one http: paths: - path: /()(.*) @@ -39,6 +39,32 @@ metadata: annotations: nginx.ingress.kubernetes.io/ssl-redirect: "false" nginx.ingress.kubernetes.io/enable-cors: "true" +spec: + tls: + - secretName: cloudflare-tls-persistence + hosts: + - api.dex.persistence.one + rules: + - host: api.dex.persistence.one + http: + paths: + - path: / + pathType: Prefix + backend: + service: + name: dexter-hasura + port: + number: 8080 + ingressClassName: nginx + +--- +apiVersion: networking.k8s.io/v1 +kind: Ingress +metadata: + name: ingress-core-mainnet-hasura-dexter-base-old + annotations: + nginx.ingress.kubernetes.io/ssl-redirect: "false" + nginx.ingress.kubernetes.io/enable-cors: "true" spec: tls: - secretName: cloudflare-tls @@ -56,12 +82,36 @@ spec: port: number: 8080 ingressClassName: nginx - --- apiVersion: networking.k8s.io/v1 kind: Ingress metadata: - name: ingress-core-mainnet-hasura-new + name: ingress-core-mainnet-hasura-dexter-base-old-next + annotations: + nginx.ingress.kubernetes.io/ssl-redirect: "false" + nginx.ingress.kubernetes.io/enable-cors: "true" +spec: + tls: + - secretName: cloudflare-tls + hosts: + - api-next.core-1.dexter.zone + rules: + - host: api-next.core-1.dexter.zone + http: + paths: + - path: / + pathType: Prefix + backend: + service: + name: dexter-hasura + port: + number: 8080 + ingressClassName: nginx +--- +apiVersion: networking.k8s.io/v1 +kind: Ingress +metadata: + name: ingress-core-mainnet-hasura-dexter-base-old-api2 annotations: nginx.ingress.kubernetes.io/ssl-redirect: "false" nginx.ingress.kubernetes.io/enable-cors: "true" diff --git a/networks/testnet/configmap.yaml b/networks/testnet/configmap.yaml index a5e6c53..153e89d 100644 --- a/networks/testnet/configmap.yaml +++ b/networks/testnet/configmap.yaml @@ -16,7 +16,7 @@ data: sync_node.exposer_port: '' sync_node.port_p2p: '26656' sync_node.genesis_json_fetch_url: https://raw.githubusercontent.com/persistenceOne/networks/master/test-core-2/genesis.json - snapshot_restore_url: https://persistence-snapshot.s3.us-west-1.amazonaws.com/test-core-2/2024-01-26/test-core-2_3701900.tar.lz4 + snapshot_restore_url: https://persistence-snapshot.s3.us-west-1.amazonaws.com/test-core-2/2024-09-27/test-core-2_7527939.tar.lz4 seeds: '3ce04530d850e727d092e9a81d9f580c7ff8db56@141.94.97.77:26656' persistent_peers: '3ce04530d850e727d092e9a81d9f580c7ff8db56@141.94.97.77:26656,3f0918801adf0ea1d17bef501e2583a5539f5cd9@65.21.126.182:26656,8eb88b7edf912ac9d63b183b42823f220a3fc226@65.108.192.123:48656,98f6fc6560ebec5a1d2099ecf91213b53575ec81@65.21.77.175:11006,ee239d2498bd073968e774887f813ac1fd4e50b3@95.216.242.183:26656,0134c0a888ab07d67c4a41afcb103b76266fb0e7@65.21.202.61:11006,f6ef633ef1caa621f3f4bea7a7ef31463fc9a43e@95.216.184.59:26656,591ceb144a142275ac3e51ed310aa1b6eb04e20c@217.76.48.63:38556,9b341b2b1d6d453a79c911ad7b2d032e117184cf@136.243.105.228:26656,b2f036bfa207249363ea2ac935e6bed3d4c10dbd@37.252.184.239:26656,2dd629fc08c97061c64f15f934c1c368565870d6@217.76.53.18:36656,7fd0511997417324ab46ac85a935d89998d1e4e2@94.130.76.179:26656,c3e785f853677ad3677542f9e2679a20957ca104@217.76.61.200:26756,47d24380223603552fa3b981239617df8bf58902@185.225.233.30:26656,cee6b94965f301e8b5ad905a65fa39c03cd193ce@51.68.152.17:26656,990269572d9075777f98460e35fa57d6665fac9d@94.130.132.227:2130,428b57bad52f71845fc6f359c49bdbc39eb22d99@195.14.6.2:26656,21ca0b996db604681fb73721ecb01d2c6410c628@162.19.94.46:26656,30859d0fb31dd08894ba15ac90bf020b26ba5890@23.88.53.28:56666,ac80febd6313b39e70d3e5ed50afddc491d79258@195.189.96.111:31656,82e69659bef9c385b4934727f43d69a673f6f033@5.161.191.128:26656,762c339b3f7626b9ebcfe7286f1e133eec587164@65.108.98.235:58556,49d98497f4922217829d0aff65bfb68cce715677@192.248.177.214:26656,fc86e4edef908edc6699bbecdf568cc7743d8d07@125.143.190.194:13002,7f971fc5fc2ffedbaf32f3b4021645571461a712@198.244.177.67:26656,9551e08e22f13ee6dc769731cd131d59f9731332@65.108.79.246:26706,5c2a752c9b1952dbed075c56c600c3a79b58c395@195.3.220.54:26896,8de0a3e97190d24b75736a2db6ebc107aeaafce8@93.115.25.18:31656,20b4f9207cdc9d0310399f848f057621f7251846@222.106.187.13:20800,2585af35660dcfb0a02dd8bc2e766d11f5603f99@73.117.148.143:26656,40f63c75b6afe61e74af428cc669eb481089a587@65.108.225.158:15456,23ae7c78081becdfe16af99329337920beafa2b2@167.235.115.119:26656' # For buffer time to sync the node From b4057885bf0c1c1d38300ce30c4ab1b610aac51e Mon Sep 17 00:00:00 2001 From: betterclever Date: Wed, 13 Aug 2025 14:42:32 +0400 Subject: [PATCH 12/13] Add new configuration files and update existing ones for graph-node deployment; modify ingress settings and update image versions --- .gitignore | 1 + .../config-graph/config-graph-node-v1.toml | 19 +++ .../config-graph/config-graph-node-v2.toml | 20 +++ .../base/config-graph/config-graph-node.toml | 2 +- graph-node-alternate/base/graph-node.yaml | 150 +++++++++++++++++- graph-node-alternate/base/kustomization.yaml | 2 + .../overlays/multi-pod/firehose-reader.yaml | 6 +- .../overlays/multi-pod/kustomization.yaml | 1 + networks/mainnet/configmap.yaml | 6 +- networks/mainnet/ingress.yaml | 34 ++++ 10 files changed, 231 insertions(+), 10 deletions(-) create mode 100644 graph-node-alternate/base/config-graph/config-graph-node-v1.toml create mode 100644 graph-node-alternate/base/config-graph/config-graph-node-v2.toml diff --git a/.gitignore b/.gitignore index 4c7dd8c..4f646af 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,4 @@ # graph-node-alternate/ networks/testing-alt .idea/ +kachra/* \ No newline at end of file diff --git a/graph-node-alternate/base/config-graph/config-graph-node-v1.toml b/graph-node-alternate/base/config-graph/config-graph-node-v1.toml new file mode 100644 index 0000000..1a5857a --- /dev/null +++ b/graph-node-alternate/base/config-graph/config-graph-node-v1.toml @@ -0,0 +1,19 @@ +[deployment] +[[deployment.rule]] +shard = "primary" +indexers = [ "index_node_cosmos_1" ] + +[store] +[store.primary] +connection = "postgresql://POSTGRES_USER:POSTGRES_PASSWORD@POSTGRES_HOST:POSTGRES_PORT/POSTGRES_DB" +pool_size = 10 + +[chains] +ingestor = "block_ingestor_node" + +[chains.persistence] +shard = "primary" +protocol = "cosmos" +provider = [ + { label = "persistence", details = { type = "firehose", url = "http://FIREHOSE_HOST:FIREHOSE_PORT" }}, +] \ No newline at end of file diff --git a/graph-node-alternate/base/config-graph/config-graph-node-v2.toml b/graph-node-alternate/base/config-graph/config-graph-node-v2.toml new file mode 100644 index 0000000..2724a64 --- /dev/null +++ b/graph-node-alternate/base/config-graph/config-graph-node-v2.toml @@ -0,0 +1,20 @@ +[deployment] +[[deployment.rule]] +shard = "primary" +indexers = [ "index_node_cosmos_2" ] + +[store] +[store.primary] +connection = "postgresql://POSTGRES_USER:POSTGRES_PASSWORD@POSTGRES_HOST:POSTGRES_PORT/POSTGRES_DB_SUBSTREAMS" +pool_size = 10 + +[chains] +ingestor = "block_ingestor_node" + +[chains.babylon] +shard = "primary" +protocol = "substreams" +provider = [ + { label = "substreams", details = { type = "substreams", url = "http://159.89.170.65:10016" }}, +] + diff --git a/graph-node-alternate/base/config-graph/config-graph-node.toml b/graph-node-alternate/base/config-graph/config-graph-node.toml index 7c6f94b..11ae6c7 100644 --- a/graph-node-alternate/base/config-graph/config-graph-node.toml +++ b/graph-node-alternate/base/config-graph/config-graph-node.toml @@ -1,7 +1,7 @@ [deployment] [[deployment.rule]] shard = "primary" -indexers = [ "index_node_cosmos_1" ] +indexers = [ "index_node_cosmos_1", "index_node_cosmos_2" ] [store] [store.primary] diff --git a/graph-node-alternate/base/graph-node.yaml b/graph-node-alternate/base/graph-node.yaml index 139152a..7f19527 100644 --- a/graph-node-alternate/base/graph-node.yaml +++ b/graph-node-alternate/base/graph-node.yaml @@ -148,7 +148,7 @@ spec: - "-c" - | - cp config-graph/config-graph-node.toml config.toml + cp config-graph/config-graph-node-v1.toml config.toml sed -i "s/POSTGRES_USER/$POSTGRES_USER/g" config.toml sed -i "s/POSTGRES_PASSWORD/$POSTGRES_PASSWORD/g" config.toml sed -i "s/POSTGRES_HOST/$POSTGRES_HOST/g" config.toml @@ -165,11 +165,11 @@ spec: --node-id index_node_cosmos_1 resources: limits: - cpu: "2" - memory: "2G" - requests: cpu: "1" memory: "1G" + requests: + cpu: "0.5" + memory: "512Mi" volumeMounts: - mountPath: config-graph name: config-graph @@ -178,4 +178,146 @@ spec: configMap: name: config-graph --- +apiVersion: v1 +kind: Service +metadata: + name: persistencecore-graph-node-v037 + labels: + app.kubernetes.io/name: persistencecore-graph-node-v037 +spec: + clusterIP: None + ports: + - name: http + port: 8000 + protocol: TCP + targetPort: 8000 + - name: websocket + port: 8001 + protocol: TCP + targetPort: 8001 + - name: admin + port: 8020 + protocol: TCP + targetPort: 8020 + - name: health + port: 8030 + protocol: TCP + targetPort: 8030 + - name: prometheus + port: 8040 + protocol: TCP + targetPort: 8040 + selector: + app.kubernetes.io/name: persistencecore-graph-node-v037 +--- +apiVersion: apps/v1 +kind: Deployment +metadata: + name: persistencecore-graph-node-v037 +spec: + replicas: 1 + revisionHistoryLimit: 3 + selector: + matchLabels: + app.kubernetes.io/instance: persistencecore + app.kubernetes.io/name: persistencecore-graph-node-v037 + template: + metadata: + annotations: + quality: release + role: api-gateway + sla: high + tier: gateway + labels: + app.kubernetes.io/instance: persistencecore + app.kubernetes.io/type: persistencecore-graph-node-v037 + app.kubernetes.io/name: persistencecore-graph-node-v037 + app.kubernetes.io/version: "0.37" + spec: + containers: + - name: graph-node + image: graphprotocol/graph-node:v0.38.0 + imagePullPolicy: Always + env: + - name: BABYLON_SUBSTREAMS_HOST + valueFrom: + configMapKeyRef: + name: graph-node-config + key: babylon_substreams.host + - name: BABYLON_SUBSTREAMS_PORT + valueFrom: + configMapKeyRef: + name: graph-node-config + key: babylon_substreams.port + - name: IPFS_HOST + valueFrom: + configMapKeyRef: + name: graph-node-config + key: ipfs.host + - name: IPFS_PORT + valueFrom: + configMapKeyRef: + name: graph-node-config + key: ipfs.port + - name: POSTGRES_HOST + valueFrom: + secretKeyRef: + name: postgres-secret + key: POSTGRES_HOST + - name: POSTGRES_PORT + valueFrom: + secretKeyRef: + name: postgres-secret + key: POSTGRES_PORT + - name: POSTGRES_USER + valueFrom: + secretKeyRef: + name: postgres-secret + key: POSTGRES_USER + - name: POSTGRES_PASSWORD + valueFrom: + secretKeyRef: + name: postgres-secret + key: POSTGRES_PASSWORD + - name: POSTGRES_DB_SUBSTREAMS + valueFrom: + secretKeyRef: + name: postgres-secret + key: POSTGRES_DB_SUBSTREAMS + - name: GRAPH_NODE_FIREHOSE_DISABLE_EXTENDED_BLOCKS_FOR_CHAINS + value: "babylon" + command: + - bash + - "-c" + - | + + cp config-graph/config-graph-node-v2.toml config.toml + sed -i "s/POSTGRES_USER/$POSTGRES_USER/g" config.toml + sed -i "s/POSTGRES_PASSWORD/$POSTGRES_PASSWORD/g" config.toml + sed -i "s/POSTGRES_HOST/$POSTGRES_HOST/g" config.toml + sed -i "s/POSTGRES_PORT/$POSTGRES_PORT/g" config.toml + sed -i "s/POSTGRES_DB_SUBSTREAMS/$POSTGRES_DB_SUBSTREAMS/g" config.toml + sed -i "s/BABYLON_SUBSTREAMS_HOST/$BABYLON_SUBSTREAMS_HOST/g" config.toml + sed -i "s/BABYLON_SUBSTREAMS_PORT/$BABYLON_SUBSTREAMS_PORT/g" config.toml + + # Print config before starting node + cat config.toml + + graph-node --config config.toml \ + --ipfs "$IPFS_HOST:$IPFS_PORT" \ + --node-id index_node_cosmos_2 + resources: + limits: + cpu: "1" + memory: "1G" + requests: + cpu: "0.5" + memory: "512Mi" + volumeMounts: + - mountPath: config-graph + name: config-graph + volumes: + - name: config-graph + configMap: + name: config-graph diff --git a/graph-node-alternate/base/kustomization.yaml b/graph-node-alternate/base/kustomization.yaml index 7e9b265..abeb933 100644 --- a/graph-node-alternate/base/kustomization.yaml +++ b/graph-node-alternate/base/kustomization.yaml @@ -15,6 +15,8 @@ configMapGenerator: - config-graph/firehose-reader.yml - config-graph/config.toml - config-graph/config-graph-node.toml + - config-graph/config-graph-node-v1.toml + - config-graph/config-graph-node-v2.toml - name: scripts-graph files: - scripts/init-firehose-node.sh \ No newline at end of file diff --git a/graph-node-alternate/overlays/multi-pod/firehose-reader.yaml b/graph-node-alternate/overlays/multi-pod/firehose-reader.yaml index e842c58..fd748bc 100644 --- a/graph-node-alternate/overlays/multi-pod/firehose-reader.yaml +++ b/graph-node-alternate/overlays/multi-pod/firehose-reader.yaml @@ -51,7 +51,7 @@ spec: terminationGracePeriodSeconds: 10 initContainers: - name: wait-for-genesis - image: betterpersist/persistencecore:v11.20.0-fh + image: betterpersist/persistencecore:v12.0.1-fh imagePullPolicy: Always env: - name: GENESIS_NODE_DATA_RESOLUTION_METHOD @@ -83,7 +83,7 @@ spec: echo "Ready to start" exit 0 - name: init-firehose-node - image: betterpersist/persistencecore:v11.20.0-fh + image: betterpersist/persistencecore:v12.0.1-fh imagePullPolicy: Always env: - name: CHAIN_ID @@ -178,7 +178,7 @@ spec: name: scripts-graph containers: - name: firehose-node - image: betterpersist/persistencecore:v11.20.0-fh + image: betterpersist/persistencecore:v12.0.1-fh imagePullPolicy: Always env: - name: CHAIN_ID diff --git a/graph-node-alternate/overlays/multi-pod/kustomization.yaml b/graph-node-alternate/overlays/multi-pod/kustomization.yaml index fda565c..1029945 100644 --- a/graph-node-alternate/overlays/multi-pod/kustomization.yaml +++ b/graph-node-alternate/overlays/multi-pod/kustomization.yaml @@ -4,4 +4,5 @@ resources: - firehose-merger.yaml - firehose-relayer.yaml - firehose-firehose.yaml + # - persistencecore-graph-node-2.yaml # - firehose-resync.yaml \ No newline at end of file diff --git a/networks/mainnet/configmap.yaml b/networks/mainnet/configmap.yaml index 5bfdbb1..043960a 100644 --- a/networks/mainnet/configmap.yaml +++ b/networks/mainnet/configmap.yaml @@ -16,7 +16,7 @@ data: sync_node.exposer_port: '' sync_node.port_p2p: '26656' sync_node.genesis_json_fetch_url: 'https://raw.githubusercontent.com/persistenceOne/networks/master/core-1/final_genesis.json' - snapshot_restore_url: 'https://persistence-chain-snapshots.s3.ap-south-1.amazonaws.com/core-1/2025-05-01/core-1_21772815.tar.lz4' + snapshot_restore_url: 'https://persistence-chain-snapshots.s3.ap-south-1.amazonaws.com/core-1/2025-08-13/core-1_23301398.tar.lz4' seeds: 'ade4d8bc8cbe014af6ebdf3cb7b1e9ad36f412c0@seeds.polkachu.com:15456' persistent_peers: '' first_streamable_block: '10522616' @@ -33,4 +33,6 @@ data: firehose_node.host: 'persistencecore-firehose.mainnet.svc.cluster.local' firehose_node.port: '9030' ipfs.host: 'ipfs-node.mainnet.svc.cluster.local' - ipfs.port: '5001' \ No newline at end of file + ipfs.port: '5001' + babylon_substreams.host: '159.89.170.65' + babylon_substreams.port: '10016' \ No newline at end of file diff --git a/networks/mainnet/ingress.yaml b/networks/mainnet/ingress.yaml index 394c7c8..3f55d08 100644 --- a/networks/mainnet/ingress.yaml +++ b/networks/mainnet/ingress.yaml @@ -34,6 +34,40 @@ spec: --- apiVersion: networking.k8s.io/v1 kind: Ingress +metadata: + name: ingress-core-mainnet-graph-new + annotations: + nginx.ingress.kubernetes.io/ssl-redirect: "false" + nginx.ingress.kubernetes.io/enable-cors: "true" + nginx.org/websocket-services: "persistencecore-graph-new" + nginx.ingress.kubernetes.io/rewrite-target: /$2 +spec: + tls: + - secretName: cloudflare-tls-persistence + hosts: + - graph-new.dex.persistence.one + rules: + - host: graph-new.dex.persistence.one + http: + paths: + - path: /()(.*) + pathType: Prefix + backend: + service: + name: persistencecore-graph-node-v037 + port: + number: 8000 + - path: /ws(/|$)(.*) + pathType: Prefix + backend: + service: + name: persistencecore-graph-node-v037 + port: + number: 8001 + ingressClassName: nginx +--- +apiVersion: networking.k8s.io/v1 +kind: Ingress metadata: name: ingress-core-mainnet-hasura annotations: From 4be260b9c0cc2c35b44c0d70955c99cd1e8985f2 Mon Sep 17 00:00:00 2001 From: betterclever Date: Thu, 23 Oct 2025 10:55:18 -0400 Subject: [PATCH 13/13] persistence graph node infra new --- docker/firepersistence-core.dockerfile | 87 +++++++++ .../config-graph/config-graph-node-v2.toml | 7 + graph-node-alternate/base/graph-node.yaml | 2 +- .../overlays/multi-pod/firehose-firehose.yaml | 43 +++-- .../overlays/multi-pod/firehose-merger.yaml | 16 +- .../overlays/multi-pod/firehose-reader.yaml | 179 +++--------------- .../overlays/multi-pod/firehose-relayer.yaml | 19 +- .../overlays/multi-pod/kustomization.yaml | 1 - networks/devnet/configmap.yaml | 4 +- networks/mainnet/configmap.yaml | 6 +- networks/mainnet/ingress.yaml | 36 ++++ networks/testnet/configmap.yaml | 4 +- run-babylon-local.sh | 103 ++++++++++ 13 files changed, 323 insertions(+), 184 deletions(-) create mode 100644 docker/firepersistence-core.dockerfile create mode 100644 run-babylon-local.sh diff --git a/docker/firepersistence-core.dockerfile b/docker/firepersistence-core.dockerfile new file mode 100644 index 0000000..4e64df0 --- /dev/null +++ b/docker/firepersistence-core.dockerfile @@ -0,0 +1,87 @@ +# syntax=docker/dockerfile:1 + +# Multi-stage build producing: +# - firecore (from streamingfast/firehose-core) +# - chain poller binary (default: firepersistence) from persistenceOne/firehose-cosmos + +ARG FIRECORE_REPO=https://github.com/streamingfast/firehose-core.git +ARG FIRECORE_REF=v1.11.1 +ARG FIRECHAIN_REPO=https://github.com/persistenceOne/firehose-cosmos.git +ARG FIRECHAIN_REF=betterclever/persistence-support +ARG CHAIN_BINARY_NAME=firepersistence + +FROM golang:1.24 AS firecore_builder + +ARG FIRECORE_REPO +ARG FIRECORE_REF + +WORKDIR /src/firecore +RUN git clone --depth=1 -b ${FIRECORE_REF} ${FIRECORE_REPO} . \ + && if [ -f go.mod ]; then go mod download; fi + +# Build firecore binary +ENV GOTOOLCHAIN=auto +RUN apt-get update && DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends \ + ca-certificates build-essential clang pkg-config \ + && rm -rf /var/lib/apt/lists/* +RUN CGO_ENABLED=1 go build -o /out/firecore ./cmd/firecore + + +FROM golang:1.24 AS firechain_builder + +ARG FIRECHAIN_REPO +ARG FIRECHAIN_REF +ARG CHAIN_BINARY_NAME + +WORKDIR /src/firechain +RUN git clone --depth=1 -b ${FIRECHAIN_REF} ${FIRECHAIN_REPO} . \ + && if [ -f go.mod ]; then go mod download; fi + +ENV GOTOOLCHAIN=auto +RUN set -e; \ + mkdir -p /out; \ + found=""; \ + for name in "${CHAIN_BINARY_NAME}" firepersistence firecosmos fireinjective firemantra; do \ + for path in "./${name}" "./cmd/${name}"; do \ + if [ -d "$path" ]; then \ + echo "Building $name from $path"; \ + (cd "$path" && CGO_ENABLED=0 go build -o "/out/${name}"); \ + found="$name"; \ + break; \ + fi; \ + done; \ + if [ -n "$found" ]; then break; fi; \ + done; \ + if [ -z "$found" ]; then \ + echo "Could not locate chain binary source dir (tried ${CHAIN_BINARY_NAME}, firepersistence, firecosmos, fireinjective, firemantra)"; \ + find . -maxdepth 3 -type d -print; \ + exit 1; \ + fi; \ + # Ensure default name is firepersistence inside image + if [ "$found" != "firepersistence" ]; then \ + cp "/out/$found" "/out/firepersistence"; \ + fi + + +FROM ubuntu:24.04 AS runtime + +RUN apt-get update && DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends \ + ca-certificates bash curl jq \ + && rm -rf /var/lib/apt/lists/* + +WORKDIR /app + +COPY --from=firecore_builder /out/firecore /usr/local/bin/firecore +COPY --from=firechain_builder /out/ /usr/local/bin/ + +ENV PATH="/usr/local/bin:${PATH}" + +# Data directory used by firecore --data-dir +RUN mkdir -p /app/data + +EXPOSE 9000 9102 + +# Default to show help; override in k8s CMD/args +CMD ["firecore", "--help"] + + diff --git a/graph-node-alternate/base/config-graph/config-graph-node-v2.toml b/graph-node-alternate/base/config-graph/config-graph-node-v2.toml index 2724a64..94ffda3 100644 --- a/graph-node-alternate/base/config-graph/config-graph-node-v2.toml +++ b/graph-node-alternate/base/config-graph/config-graph-node-v2.toml @@ -18,3 +18,10 @@ provider = [ { label = "substreams", details = { type = "substreams", url = "http://159.89.170.65:10016" }}, ] +[chains.persistence] +shard = "primary" +protocol = "substreams" +provider = [ + { label = "substreams", details = { type = "substreams", url = "https://substreams.core.persistence.one:443" }}, +] + diff --git a/graph-node-alternate/base/graph-node.yaml b/graph-node-alternate/base/graph-node.yaml index 7f19527..48fe2a1 100644 --- a/graph-node-alternate/base/graph-node.yaml +++ b/graph-node-alternate/base/graph-node.yaml @@ -285,7 +285,7 @@ spec: name: postgres-secret key: POSTGRES_DB_SUBSTREAMS - name: GRAPH_NODE_FIREHOSE_DISABLE_EXTENDED_BLOCKS_FOR_CHAINS - value: "babylon" + value: "babylon,persistence" command: - bash - "-c" diff --git a/graph-node-alternate/overlays/multi-pod/firehose-firehose.yaml b/graph-node-alternate/overlays/multi-pod/firehose-firehose.yaml index 1c7b9e3..a37ecfd 100644 --- a/graph-node-alternate/overlays/multi-pod/firehose-firehose.yaml +++ b/graph-node-alternate/overlays/multi-pod/firehose-firehose.yaml @@ -9,9 +9,17 @@ spec: clusterIP: None ports: - name: firehose - port: 9030 + port: 10015 protocol: TCP - targetPort: 9030 + targetPort: 10015 + - name: substreams-tier1 + port: 10016 + protocol: TCP + targetPort: 10016 + - name: substreams-tier2 + port: 10017 + protocol: TCP + targetPort: 10017 - name: prometheus-firehose port: 9102 protocol: TCP @@ -47,7 +55,7 @@ spec: terminationGracePeriodSeconds: 10 containers: - name: firehose-node - image: betterpersist/firecosmos:0.6.0 + image: ghcr.io/persistenceone/firecore-firepersistence:0.1 imagePullPolicy: Always env: - name: FIRST_STREAMABLE_BLOCK @@ -75,24 +83,35 @@ spec: configMapKeyRef: key: merged_blocks_store_url name: firehose-node-config + - name: CHAIN_ID + valueFrom: + configMapKeyRef: + key: chain.id + name: persistencecore command: - bash - "-c" - | export NAMESPACE=$(cat /var/run/secrets/kubernetes.io/serviceaccount/namespace) - # sleep infinity - exec firecosmos start firehose \ - --common-live-blocks-addr persistencecore-firehose-relayer.$NAMESPACE.svc.cluster.local:9010 \ + exec firecore start relayer firehose substreams-tier1 substreams-tier2 \ + --config-file= \ + --log-format=stackdriver \ + --log-to-file=false \ + --data-dir=/fh-data \ + --common-auto-max-procs \ + --common-auto-mem-limit-percent=90 \ + --common-one-block-store-url "$ONE_BLOCK_STORE_URL" \ + --common-merged-blocks-store-url "$MERGED_BLOCKS_STORE_URL" \ --common-first-streamable-block $FIRST_STREAMABLE_BLOCK \ - --common-one-block-store-url $ONE_BLOCK_STORE_URL \ - --common-merged-blocks-store-url $MERGED_BLOCKS_STORE_URL + --common-live-blocks-addr persistencecore-firehose-reader.$NAMESPACE.svc.cluster.local:10010 \ + --advertise-chain-name "$CHAIN_ID" resources: limits: - cpu: "0.5" - memory: "0.5G" + cpu: "2" + memory: "2G" requests: - cpu: "0.5" - memory: "0.5G" + cpu: "1" + memory: "2G" volumes: - name: config-graph configMap: diff --git a/graph-node-alternate/overlays/multi-pod/firehose-merger.yaml b/graph-node-alternate/overlays/multi-pod/firehose-merger.yaml index aad84e6..206a667 100644 --- a/graph-node-alternate/overlays/multi-pod/firehose-merger.yaml +++ b/graph-node-alternate/overlays/multi-pod/firehose-merger.yaml @@ -8,6 +8,10 @@ metadata: spec: clusterIP: None ports: + - name: merger-grpc + port: 10012 + protocol: TCP + targetPort: 10012 - name: prometheus-firehose port: 9102 protocol: TCP @@ -42,7 +46,7 @@ spec: terminationGracePeriodSeconds: 10 containers: - name: firehose-merger-node - image: betterpersist/firecosmos:0.6.0 + image: ghcr.io/persistenceone/firecore-firepersistence:0.1 imagePullPolicy: Always env: - name: FIRST_STREAMABLE_BLOCK @@ -75,8 +79,14 @@ spec: - "-c" - | export NAMESPACE=$(cat /var/run/secrets/kubernetes.io/serviceaccount/namespace) - exec firecosmos start merger \ - --common-live-blocks-addr persistencecore-firehose-reader.$NAMESPACE.svc.cluster.local:9010 \ + exec firecore start merger \ + --config-file= \ + --log-format=stackdriver \ + --log-to-file=false \ + --data-dir=/fh-data \ + --common-auto-max-procs \ + --common-auto-mem-limit-percent=90 \ + --common-live-blocks-addr persistencecore-firehose-reader.$NAMESPACE.svc.cluster.local:10010 \ --common-first-streamable-block $FIRST_STREAMABLE_BLOCK \ --common-one-block-store-url $ONE_BLOCK_STORE_URL \ --common-merged-blocks-store-url $MERGED_BLOCKS_STORE_URL diff --git a/graph-node-alternate/overlays/multi-pod/firehose-reader.yaml b/graph-node-alternate/overlays/multi-pod/firehose-reader.yaml index fd748bc..26d72c5 100644 --- a/graph-node-alternate/overlays/multi-pod/firehose-reader.yaml +++ b/graph-node-alternate/overlays/multi-pod/firehose-reader.yaml @@ -8,10 +8,10 @@ metadata: spec: clusterIP: None ports: - - name: firehose-reader - port: 9000 + - name: reader-grpc + port: 10010 protocol: TCP - targetPort: 9000 + targetPort: 10010 - name: prometheus-node port: 26660 protocol: TCP @@ -29,7 +29,7 @@ metadata: name: persistencecore-firehose-reader spec: serviceName: persistencecore-firehose-reader - replicas: 2 + replicas: 1 revisionHistoryLimit: 3 selector: matchLabels: @@ -49,136 +49,9 @@ spec: app.kubernetes.io/version: '0.1' spec: terminationGracePeriodSeconds: 10 - initContainers: - - name: wait-for-genesis - image: betterpersist/persistencecore:v12.0.1-fh - imagePullPolicy: Always - env: - - name: GENESIS_NODE_DATA_RESOLUTION_METHOD - valueFrom: - configMapKeyRef: - key: sync_node.resolution_method - name: firehose-node-config - - name: GENESIS_HOST - valueFrom: - configMapKeyRef: - key: sync_node.host - name: firehose-node-config - - name: GENESIS_PORT - valueFrom: - configMapKeyRef: - key: sync_node.exposer_port - name: firehose-node-config - command: - - bash - - "-c" - - | - # Do the following if the resolution method is dynamic else skip (we assume that in static configuration peer node is already up) - if [ "$GENESIS_NODE_DATA_RESOLUTION_METHOD" = "DYNAMIC" ]; then - while [ $(curl -sw '%{http_code}' http://$GENESIS_HOST:$GENESIS_PORT/node_id -o /dev/null) -ne 200 ]; do - echo "Genesis validator does not seem to be ready. Waiting for it to start..." - sleep 10; - done - fi - echo "Ready to start" - exit 0 - - name: init-firehose-node - image: betterpersist/persistencecore:v12.0.1-fh - imagePullPolicy: Always - env: - - name: CHAIN_ID - valueFrom: - configMapKeyRef: - key: chain.id - name: persistencecore - - name: HOME_DIR - value: /persistencecore - - name: GENESIS_HOST - valueFrom: - configMapKeyRef: - key: sync_node.host - name: firehose-node-config - # We support 2 types of resolution methods: (dynamic, static), if the resolution method is dynamic then we fetch the node id - # on the fly from the exposer app exposed service on the specified port, otherwise it is required that the node id is - # specified exactly as an environment variable - - name: GENESIS_NODE_DATA_RESOLUTION_METHOD - valueFrom: - configMapKeyRef: - key: sync_node.resolution_method - name: firehose-node-config - - name: GENESIS_EXPOSER_PORT - valueFrom: - configMapKeyRef: - key: sync_node.exposer_port - name: firehose-node-config - # This URL is used to fetch the genesis json if the NODE_DATA_RESOLUTION_METHOD is static - - name: GENESIS_JSON_FETCH_URL - valueFrom: - configMapKeyRef: - key: sync_node.genesis_json_fetch_url - name: firehose-node-config - - name: GENESIS_PORT_P2P - valueFrom: - configMapKeyRef: - key: sync_node.port_p2p - name: firehose-node-config - - name: STATE_RESTORE_SNAPSHOT_URL - valueFrom: - configMapKeyRef: - key: snapshot_restore_url - name: firehose-node-config - - name: SEEDS - valueFrom: - configMapKeyRef: - key: seeds - name: firehose-node-config - - name: PERSISTENT_PEERS - valueFrom: - configMapKeyRef: - key: persistent_peers - name: firehose-node-config - - name: FIRST_STREAMABLE_BLOCK - valueFrom: - configMapKeyRef: - key: first_streamable_block - name: firehose-node-config - - name: FORCE_INIT - valueFrom: - configMapKeyRef: - key: force_init - name: firehose-node-config - command: - - bash - - "-c" - - | - bash /scripts/init-firehose-node.sh - - echo "Installing firecosmos if not already installed" - - # Install firecosmos if not already installed - if [ ! -f /persistencecore/bin/firecosmos ]; then - wget https://github.com/figment-networks/firehose-cosmos/releases/download/v0.6.0/firecosmos_linux_amd64 -O firecosmos - chmod +x firecosmos - mkdir -p /persistencecore/bin - mv firecosmos /persistencecore/bin/firecosmos - fi - resources: - limits: - cpu: "1" - memory: "1G" - requests: - cpu: "1" - memory: "1G" - volumeMounts: - - mountPath: /persistencecore - name: node-pv-storage - - mountPath: /config-graph - name: config-graph - - mountPath: /scripts - name: scripts-graph containers: - name: firehose-node - image: betterpersist/persistencecore:v12.0.1-fh + image: ghcr.io/persistenceone/firecore-firepersistence:0.1 imagePullPolicy: Always env: - name: CHAIN_ID @@ -217,35 +90,33 @@ spec: - bash - "-c" - | - # sleep infinity - exec /persistencecore/bin/firecosmos start reader \ - --reader-mode node \ - --reader-node-path /usr/bin/persistenceCore \ - --reader-node-args "start --x-crisis-skip-assert-invariants --home /persistencecore" \ - --reader-node-logs-filter "module=(p2p|pex|consensus|x/bank|x/wasm)" \ - --common-first-streamable-block $FIRST_STREAMABLE_BLOCK \ + exec firecore start reader-node \ + --config-file= \ + --log-format=stackdriver \ + --log-to-file=false \ + --data-dir=/fh-data \ + --common-auto-max-procs \ + --common-auto-mem-limit-percent=90 \ --common-one-block-store-url "$ONE_BLOCK_STORE_URL" \ --common-merged-blocks-store-url "$MERGED_BLOCKS_STORE_URL" \ - --data-dir /fh-data + --common-first-streamable-block $FIRST_STREAMABLE_BLOCK \ + --reader-node-data-dir=/fh-data/oneblock \ + --reader-node-working-dir=/fh-data/work \ + --reader-node-readiness-max-latency=600s \ + --reader-node-debug-firehose-logs=false \ + --reader-node-blocks-chan-capacity=1000 \ + --reader-node-path=firepersistence \ + --reader-node-arguments="fetch rpc $FIRST_STREAMABLE_BLOCK --state-dir /fh-data --block-fetch-batch-size=1 --endpoints https://rpc.core.persistence.one:443 --max-block-fetch-duration 10s" \ + --advertise-chain-name "$CHAIN_ID" resources: limits: cpu: "1" - memory: "6G" + memory: "2G" requests: cpu: "0.5" - memory: "4G" - volumeMounts: - - mountPath: /persistencecore - name: node-pv-storage - - mountPath: /config-graph - name: config-graph - volumes: - - name: config-graph - configMap: - name: config-graph - - name: scripts-graph - configMap: - name: scripts-graph + memory: "1G" + # No volume mounts needed when not restoring snapshots + # No additional volumes required volumeClaimTemplates: - metadata: name: node-pv-storage diff --git a/graph-node-alternate/overlays/multi-pod/firehose-relayer.yaml b/graph-node-alternate/overlays/multi-pod/firehose-relayer.yaml index 0b9eb4f..92b9aad 100644 --- a/graph-node-alternate/overlays/multi-pod/firehose-relayer.yaml +++ b/graph-node-alternate/overlays/multi-pod/firehose-relayer.yaml @@ -8,10 +8,10 @@ metadata: spec: clusterIP: None ports: - - name: firehose-relayer - port: 9010 + - name: relayer-grpc + port: 10014 protocol: TCP - targetPort: 9010 + targetPort: 10014 - name: prometheus-firehose port: 9102 protocol: TCP @@ -47,7 +47,7 @@ spec: terminationGracePeriodSeconds: 10 containers: - name: firehose-relayer-node - image: betterpersist/firecosmos:0.6.0 + image: ghcr.io/persistenceone/firecore-firepersistence:0.1 imagePullPolicy: Always env: - name: FIRST_STREAMABLE_BLOCK @@ -69,8 +69,15 @@ spec: - bash - "-c" - | - exec firecosmos start relayer \ - --relayer-source persistencecore-firehose-reader.mainnet.svc.cluster.local:9000 \ + export NAMESPACE=$(cat /var/run/secrets/kubernetes.io/serviceaccount/namespace) + exec firecore start relayer \ + --config-file= \ + --log-format=stackdriver \ + --log-to-file=false \ + --data-dir=/fh-data \ + --common-auto-max-procs \ + --common-auto-mem-limit-percent=90 \ + --relayer-source persistencecore-firehose-reader.$NAMESPACE.svc.cluster.local:10010 \ --common-first-streamable-block $FIRST_STREAMABLE_BLOCK resources: limits: diff --git a/graph-node-alternate/overlays/multi-pod/kustomization.yaml b/graph-node-alternate/overlays/multi-pod/kustomization.yaml index 1029945..608156c 100644 --- a/graph-node-alternate/overlays/multi-pod/kustomization.yaml +++ b/graph-node-alternate/overlays/multi-pod/kustomization.yaml @@ -2,7 +2,6 @@ resources: - ../../base/ - firehose-reader.yaml - firehose-merger.yaml - - firehose-relayer.yaml - firehose-firehose.yaml # - persistencecore-graph-node-2.yaml # - firehose-resync.yaml \ No newline at end of file diff --git a/networks/devnet/configmap.yaml b/networks/devnet/configmap.yaml index d4ab253..da2dc75 100644 --- a/networks/devnet/configmap.yaml +++ b/networks/devnet/configmap.yaml @@ -21,8 +21,8 @@ data: persistent_peers: '' first_streamable_block: '50' force_init: 'false' - one_block_store_url: 's3://sgp1.digitaloceanspaces.com/dexter-zone/devnet-v9_2/one-blocks?region=us-east-1' - merged_blocks_store_url: 's3://sgp1.digitaloceanspaces.com/dexter-zone/devnet-v9_2/merged-blocks?region=us-east-1' + one_block_store_url: 's3://sgp1.digitaloceanspaces.com/dexter-zone/persistence-new/devnet/one-blocks?region=us-east-1' + merged_blocks_store_url: 's3://sgp1.digitaloceanspaces.com/dexter-zone/persistence-new/devnet/merged-blocks?region=us-east-1' --- apiVersion: v1 kind: ConfigMap diff --git a/networks/mainnet/configmap.yaml b/networks/mainnet/configmap.yaml index 043960a..83421e6 100644 --- a/networks/mainnet/configmap.yaml +++ b/networks/mainnet/configmap.yaml @@ -19,10 +19,10 @@ data: snapshot_restore_url: 'https://persistence-chain-snapshots.s3.ap-south-1.amazonaws.com/core-1/2025-08-13/core-1_23301398.tar.lz4' seeds: 'ade4d8bc8cbe014af6ebdf3cb7b1e9ad36f412c0@seeds.polkachu.com:15456' persistent_peers: '' - first_streamable_block: '10522616' + first_streamable_block: '23794500' force_init: 'false' - one_block_store_url: 's3://sgp1.digitaloceanspaces.com/dexter-zone/one-blocks?region=us-east-1' - merged_blocks_store_url: 's3://sgp1.digitaloceanspaces.com/dexter-zone/merged-blocks?region=us-east-1' + one_block_store_url: 's3://sgp1.digitaloceanspaces.com/dexter-zone/persistence-new/one-blocks?region=us-east-1' + merged_blocks_store_url: 's3://sgp1.digitaloceanspaces.com/dexter-zone/persistence-new/merged-blocks?region=us-east-1' --- apiVersion: v1 diff --git a/networks/mainnet/ingress.yaml b/networks/mainnet/ingress.yaml index 3f55d08..64e9118 100644 --- a/networks/mainnet/ingress.yaml +++ b/networks/mainnet/ingress.yaml @@ -34,6 +34,42 @@ spec: --- apiVersion: networking.k8s.io/v1 kind: Ingress +metadata: + name: ingress-core-mainnet-firehose-substreams + annotations: + nginx.ingress.kubernetes.io/backend-protocol: "GRPC" + nginx.ingress.kubernetes.io/ssl-redirect: "true" +spec: + tls: + - secretName: cloudflare-tls-persistence + hosts: + - substreams.core.persistence.one + - firehose.core.persistence.one + rules: + - host: substreams.core.persistence.one + http: + paths: + - path: / + pathType: Prefix + backend: + service: + name: persistencecore-firehose + port: + number: 10016 + - host: firehose.core.persistence.one + http: + paths: + - path: / + pathType: Prefix + backend: + service: + name: persistencecore-firehose + port: + number: 10015 + ingressClassName: nginx +--- +apiVersion: networking.k8s.io/v1 +kind: Ingress metadata: name: ingress-core-mainnet-graph-new annotations: diff --git a/networks/testnet/configmap.yaml b/networks/testnet/configmap.yaml index 153e89d..1b78085 100644 --- a/networks/testnet/configmap.yaml +++ b/networks/testnet/configmap.yaml @@ -22,8 +22,8 @@ data: # For buffer time to sync the node first_streamable_block: '60000' force_init: 'false' - one_block_store_url: 's3://sgp1.digitaloceanspaces.com/dexter-zone/testnet-2/one-blocks?region=us-east-1' - merged_blocks_store_url: 's3://sgp1.digitaloceanspaces.com/dexter-zone/testnet-2/merged-blocks?region=us-east-1' + one_block_store_url: 's3://sgp1.digitaloceanspaces.com/dexter-zone/persistence-new/testnet/one-blocks?region=us-east-1' + merged_blocks_store_url: 's3://sgp1.digitaloceanspaces.com/dexter-zone/persistence-new/testnet/merged-blocks?region=us-east-1' --- apiVersion: v1 kind: ConfigMap diff --git a/run-babylon-local.sh b/run-babylon-local.sh new file mode 100644 index 0000000..b5236ef --- /dev/null +++ b/run-babylon-local.sh @@ -0,0 +1,103 @@ +#!/bin/bash +set -e + +# Colors for better output +GREEN='\033[0;32m' +BLUE='\033[0;34m' +RED='\033[0;31m' +NC='\033[0m' # No Color + +echo -e "${BLUE}Setting up local Graph Node for Babylon chain debugging${NC}" + +# PostgreSQL configuration +DB_NAME="graph_node_babylon" +DB_USER="postgres" +DB_PASSWORD="postgres" +DB_HOST="localhost" +DB_PORT="5432" + +# Check if PostgreSQL is running +if ! pg_isready -h $DB_HOST -p $DB_PORT > /dev/null 2>&1; then + echo -e "${RED}Error: PostgreSQL is not running on $DB_HOST:$DB_PORT${NC}" + echo "Please make sure PostgreSQL is installed and running." + echo "You can install it with:" + echo " brew install postgresql@14" + echo " brew services start postgresql@14" + exit 1 +fi + +# Create database if it doesn't exist +if ! psql -h $DB_HOST -p $DB_PORT -U $DB_USER -lqt | cut -d \| -f 1 | grep -qw $DB_NAME; then + echo -e "${BLUE}Creating database '$DB_NAME'...${NC}" + createdb -h $DB_HOST -p $DB_PORT -U $DB_USER $DB_NAME + echo -e "${GREEN}Database created successfully!${NC}" +else + echo -e "${GREEN}Database '$DB_NAME' already exists${NC}" +fi + +# Create config directory +CONFIG_DIR="./babylon-graph-node-config" +mkdir -p $CONFIG_DIR + +# Create config file for Graph Node +CONFIG_FILE="$CONFIG_DIR/config.toml" +echo -e "${BLUE}Creating Graph Node configuration file...${NC}" +cat > $CONFIG_FILE << EOF +[deployment] +[[deployment.rule]] +shard = "primary" +indexers = [ "index_node_cosmos_1" ] + +[store] +[store.primary] +connection = "postgresql://$DB_USER:$DB_PASSWORD@$DB_HOST:$DB_PORT/$DB_NAME" +pool_size = 10 + +[chains] +ingestor = "block_ingestor_node" + +[chains.babylon] +shard = "primary" +protocol = "substreams" +provider = [ + { label = "babylon", details = { type = "substreams", url = "http://159.89.170.65:10016" }}, +] +EOF + +echo -e "${GREEN}Configuration file created at $CONFIG_FILE${NC}" +echo "Contents of the configuration file:" +cat $CONFIG_FILE + +# Check if graph-node is installed +if ! command -v graph-node &> /dev/null; then + echo -e "${BLUE}Graph Node binary not found${NC}" + echo "Please install Graph Node from source:" + echo " git clone https://github.com/graphprotocol/graph-node.git" + echo " cd graph-node" + echo " cargo build --release" + echo " Add the binary to your PATH or provide the full path below" + + read -p "Enter the path to the graph-node binary or press Enter to exit: " GRAPH_NODE_PATH + + if [ -z "$GRAPH_NODE_PATH" ]; then + echo -e "${RED}No path provided. Exiting.${NC}" + exit 1 + fi + + if [ ! -f "$GRAPH_NODE_PATH" ]; then + echo -e "${RED}Invalid path. File does not exist. Exiting.${NC}" + exit 1 + fi +else + GRAPH_NODE_PATH="graph-node" +fi + +# Run Graph Node +echo -e "${BLUE}Starting Graph Node for Babylon chain...${NC}" +echo "Press Ctrl+C to stop" + +$GRAPH_NODE_PATH \ + --config $CONFIG_FILE \ + --node-id index_node_cosmos_1 + +echo -e "${GREEN}Graph Node stopped${NC}" \ No newline at end of file