Skip to content
New issue

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

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

Already on GitHub? Sign in to your account

LW-9927 Update protocol parameters for conway era #1327

Conversation

mirceahasegan
Copy link
Collaborator

Context

Since the protocol_param_update was changed during Conway era, we need to review how protocol parameters update are handled.

Proposed Solution

  • updated ProtocolParametersUpdate to reflect the CDDL type in Conway era
  • Updated DbSyncChainHistoryProvider and DbSyncNetworkInfoProvider reading and mapping from DB

@mirceahasegan mirceahasegan requested a review from a team June 10, 2024 16:40
Copy link

github-actions bot commented Jun 10, 2024

dev-sanchonet@us-east-1@v1 would change:

dev-sanchonet, dev-sanchonet-cardanojs-v1-backend, Deployment (apps) would change:

  # Source: cardanojs/templates/backend-deployment.yaml
  apiVersion: apps/v1
  kind: Deployment
  metadata:
    labels:
      app: backend
      network: sanchonet
      release: dev-sanchonet-cardanojs-v1
    name: dev-sanchonet-cardanojs-v1-backend
  spec:
    selector:
      matchLabels:
        app: backend
        network: sanchonet
        release: dev-sanchonet-cardanojs-v1
    template:
      metadata:
        labels:
          app: backend
          network: sanchonet
          release: dev-sanchonet-cardanojs-v1
      spec:
        containers:
        - args:
          - start-provider-server
          env:
          - name: ALLOWED_ORIGINS
            value: chrome-extension://gafhhkghbfjjkeiendhlofajokpaflmk,chrome-extension://efeiemlfnahiidnjglmehaihacglceia,chrome-extension://bjlhpephaokolembmpdcbobbpkjnoheb,chrome-extension://djcdfchkaijggdjokfomholkalbffgil,http://localhost/,http://localhost
          - name: BUILD_INFO
-           value: '{"extra":{"narHash":"sha256-Roun2jDQT18LueFavTIjK4PyZyOQO2ap5mLFlpPnxPg=","path":"/nix/store/h9lfmplf50i564nbdw936j8hc57a9hp1-source","sourceInfo":"/nix/store/h9lfmplf50i564nbdw936j8hc57a9hp1-source"},"lastModified":1717595643,"lastModifiedDate":"20240605135403","rev":"01e4393b5f12f96c1600fbb3b960b50989a6e13e","shortRev":"01e4393"}'
+           value: '{"extra":{"narHash":"sha256-TWMpSCzWhzeceQI5fgbZeQBI125kD936/OVXJj8BZFw=","path":"/nix/store/l9a4rmzifamv5g5xfsay3i1xarjl9dgx-source","sourceInfo":"/nix/store/l9a4rmzifamv5g5xfsay3i1xarjl9dgx-source"},"lastModified":1718109308,"lastModifiedDate":"20240611123508","rev":"c3a13fc3526f831780ba25efea3408c90bd7f2e9","shortRev":"c3a13fc"}'
          - name: DISABLE_STAKE_POOL_METRIC_APY
            value: "true"
          - name: ENABLE_METRICS
            value: "true"
          - name: HANDLE_POLICY_IDS
            value: f0ff48bbb7bbe9d59a40f1ce90e9e9d0ff5002ec48f232b49ca0fb9a
          - name: HANDLE_PROVIDER_SERVER_URL
            value: https://sanchonet.api.handle.me
          - name: LOGGER_MIN_SEVERITY
            value: info
          - name: NETWORK
            value: sanchonet
          - name: OGMIOS_SRV_SERVICE_NAME
            value: dev-sanchonet-cardano-core.dev-sanchonet.svc.cluster.local
          - name: PAGINATION_PAGE_SIZE_LIMIT
            value: "5500"
          - name: POSTGRES_DB_DB_SYNC
            value: cardano
          - name: POSTGRES_DB_HANDLE
            value: handle
          - name: POSTGRES_HOST_DB_SYNC
            value: dev-sanchonet-postgresql
          - name: POSTGRES_HOST_HANDLE
            value: dev-sanchonet-postgresql
          - name: POSTGRES_PASSWORD_DB_SYNC
            valueFrom:
              secretKeyRef:
                key: password
                name: cardano-owner-user.dev-sanchonet-postgresql.credentials.postgresql.acid.zalan.do
          - name: POSTGRES_PASSWORD_HANDLE
            valueFrom:
              secretKeyRef:
                key: password
                name: handle-owner-user.dev-sanchonet-postgresql.credentials.postgresql.acid.zalan.do
          - name: POSTGRES_POOL_MAX_DB_SYNC
            value: "50"
          - name: POSTGRES_POOL_MAX_HANDLE
            value: "10"
          - name: POSTGRES_PORT_DB_SYNC
            value: "5432"
          - name: POSTGRES_PORT_HANDLE
            value: "5432"
          - name: POSTGRES_SSL_CA_FILE_DB_SYNC
            value: /tls/ca.crt
          - name: POSTGRES_SSL_CA_FILE_HANDLE
            value: /tls/ca.crt
          - name: POSTGRES_SSL_DB_SYNC
            value: "true"
          - name: POSTGRES_SSL_HANDLE
            value: "true"
          - name: POSTGRES_USER_DB_SYNC
            valueFrom:
              secretKeyRef:
                key: username
                name: cardano-owner-user.dev-sanchonet-postgresql.credentials.postgresql.acid.zalan.do
          - name: POSTGRES_USER_HANDLE
            valueFrom:
              secretKeyRef:
                key: username
                name: handle-owner-user.dev-sanchonet-postgresql.credentials.postgresql.acid.zalan.do
          - name: SERVICE_NAMES
            value: asset,chain-history,network-info,rewards,stake-pool,tx-submit,utxo
          - name: SUBMIT_API_URL
            value: http://dev-sanchonet-cardano-stack.dev-sanchonet.svc.cluster.local:8090
          - name: TOKEN_METADATA_SERVER_URL
            value: http://dev-sanchonet-cardano-stack-metadata.dev-sanchonet.svc.cluster.local
          - name: USE_BLOCKFROST
            value: "false"
          - name: USE_KORA_LABS
            value: "true"
          - name: USE_SUBMIT_API
            value: "true"
-         image: 926093910549.dkr.ecr.us-east-1.amazonaws.com/cardano-services:hnccfrgy26p6z05xv503hy6p4ida8shf
+         image: 926093910549.dkr.ecr.us-east-1.amazonaws.com/cardano-services:csz2nq7aii8yhm35hz5nmpg1x5hp0c43
          livenessProbe:
            httpGet:
              path: /v1.0.0/health
              port: 3000
            timeoutSeconds: 20
          name: backend
          ports:
          - containerPort: 3000
            name: http
          resources:
            limits:
              cpu: 1500m
              memory: 512Mi
            requests:
              cpu: 1000m
              memory: 350Mi
          securityContext:
            runAsGroup: 0
            runAsUser: 0
          volumeMounts:
          - mountPath: /tls
            name: tls
        imagePullSecrets:
        - name: dockerconfigjson
        volumes:
        - name: tls
          secret:
            secretName: postgresql-server-cert

dev-sanchonet, dev-sanchonet-cardanojs-v1-pg-boss-worker, Deployment (apps) would change:

  # Source: cardanojs/templates/pgboss-deployment.yaml
  apiVersion: apps/v1
  kind: Deployment
  metadata:
    labels:
      app: pg-boss-worker
      network: sanchonet
      release: dev-sanchonet-cardanojs-v1
    name: dev-sanchonet-cardanojs-v1-pg-boss-worker
  spec:
    selector:
      matchLabels:
        app: pg-boss-worker
        network: sanchonet
        release: dev-sanchonet-cardanojs-v1
    template:
      metadata:
        labels:
          app: pg-boss-worker
          network: sanchonet
          release: dev-sanchonet-cardanojs-v1
      spec:
        containers:
        - args:
          - start-pg-boss-worker
          env:
          - name: BUILD_INFO
-           value: '{"extra":{"narHash":"sha256-Roun2jDQT18LueFavTIjK4PyZyOQO2ap5mLFlpPnxPg=","path":"/nix/store/h9lfmplf50i564nbdw936j8hc57a9hp1-source","sourceInfo":"/nix/store/h9lfmplf50i564nbdw936j8hc57a9hp1-source"},"lastModified":1717595643,"lastModifiedDate":"20240605135403","rev":"01e4393b5f12f96c1600fbb3b960b50989a6e13e","shortRev":"01e4393"}'
+           value: '{"extra":{"narHash":"sha256-TWMpSCzWhzeceQI5fgbZeQBI125kD936/OVXJj8BZFw=","path":"/nix/store/l9a4rmzifamv5g5xfsay3i1xarjl9dgx-source","sourceInfo":"/nix/store/l9a4rmzifamv5g5xfsay3i1xarjl9dgx-source"},"lastModified":1718109308,"lastModifiedDate":"20240611123508","rev":"c3a13fc3526f831780ba25efea3408c90bd7f2e9","shortRev":"c3a13fc"}'
          - name: LOGGER_MIN_SEVERITY
            value: info
          - name: METADATA_FETCH_MODE
            value: smash
          - name: NETWORK
            value: sanchonet
          - name: NETWORK_INFO_PROVIDER_URL
            value: http://dev-sanchonet-cardanojs-v1-backend.dev-sanchonet.svc.cluster.local
          - name: POSTGRES_DB_DB_SYNC
            value: cardano
          - name: POSTGRES_DB_STAKE_POOL
            value: stakepool
          - name: POSTGRES_HOST_DB_SYNC
            value: dev-sanchonet-postgresql
          - name: POSTGRES_HOST_STAKE_POOL
            value: dev-sanchonet-postgresql
          - name: POSTGRES_PASSWORD_DB_SYNC
            valueFrom:
              secretKeyRef:
                key: password
                name: cardano-owner-user.dev-sanchonet-postgresql.credentials.postgresql.acid.zalan.do
          - name: POSTGRES_PASSWORD_STAKE_POOL
            valueFrom:
              secretKeyRef:
                key: password
                name: stakepool-owner-user.dev-sanchonet-postgresql.credentials.postgresql.acid.zalan.do
          - name: POSTGRES_POOL_MAX_DB_SYNC
            value: "5"
          - name: POSTGRES_POOL_MAX_STAKE_POOL
            value: "5"
          - name: POSTGRES_PORT_DB_SYNC
            value: "5432"
          - name: POSTGRES_PORT_STAKE_POOL
            value: "5432"
          - name: POSTGRES_SSL_CA_FILE_DB_SYNC
            value: /tls/ca.crt
          - name: POSTGRES_SSL_CA_FILE_STAKE_POOL
            value: /tls/ca.crt
          - name: POSTGRES_SSL_DB_SYNC
            value: "true"
          - name: POSTGRES_SSL_STAKE_POOL
            value: "true"
          - name: POSTGRES_USER_DB_SYNC
            valueFrom:
              secretKeyRef:
                key: username
                name: cardano-owner-user.dev-sanchonet-postgresql.credentials.postgresql.acid.zalan.do
          - name: POSTGRES_USER_STAKE_POOL
            valueFrom:
              secretKeyRef:
                key: username
                name: stakepool-owner-user.dev-sanchonet-postgresql.credentials.postgresql.acid.zalan.do
          - name: QUEUES
            value: pool-delist-schedule,pool-metadata,pool-metrics,pool-rewards
          - name: SMASH_URL
            value: https://sanchonet-smash.world.dev.cardano.org/api/v1
          - name: STAKE_POOL_PROVIDER_URL
            value: http://dev-sanchonet-cardanojs-v1-backend.dev-sanchonet.svc.cluster.local
-         image: 926093910549.dkr.ecr.us-east-1.amazonaws.com/cardano-services:hnccfrgy26p6z05xv503hy6p4ida8shf
+         image: 926093910549.dkr.ecr.us-east-1.amazonaws.com/cardano-services:csz2nq7aii8yhm35hz5nmpg1x5hp0c43
          livenessProbe:
            httpGet:
              path: /v1.0.0/health
              port: 3000
          name: pg-boss-worker
          ports:
          - containerPort: 3000
            name: http
          resources:
            limits:
              cpu: 300m
              memory: 300Mi
            requests:
              cpu: 200m
              memory: 150Mi
          securityContext:
            runAsGroup: 0
            runAsUser: 0
          startupProbe:
            httpGet:
              path: /v1.0.0/ready
              port: 3000
            initialDelaySeconds: 80
            periodSeconds: 5
          volumeMounts:
          - mountPath: /tls
            name: tls
        imagePullSecrets:
        - name: dockerconfigjson
        volumes:
        - name: tls
          secret:
            secretName: postgresql-server-cert

dev-sanchonet, dev-sanchonet-cardanojs-v1-stake-pool-projector, Deployment (apps) would change:

  # Source: cardanojs/templates/stake-pool-projector-deployment.yaml
  apiVersion: apps/v1
  kind: Deployment
  metadata:
    labels:
      app: stake-pool-projector
      network: sanchonet
      release: dev-sanchonet-cardanojs-v1
    name: dev-sanchonet-cardanojs-v1-stake-pool-projector
  spec:
    selector:
      matchLabels:
        app: stake-pool-projector
        network: sanchonet
        release: dev-sanchonet-cardanojs-v1
    template:
      metadata:
        labels:
          app: stake-pool-projector
          network: sanchonet
          release: dev-sanchonet-cardanojs-v1
      spec:
        containers:
        - args:
          - start-projector
          env:
          - name: BUILD_INFO
-           value: '{"extra":{"narHash":"sha256-Roun2jDQT18LueFavTIjK4PyZyOQO2ap5mLFlpPnxPg=","path":"/nix/store/h9lfmplf50i564nbdw936j8hc57a9hp1-source","sourceInfo":"/nix/store/h9lfmplf50i564nbdw936j8hc57a9hp1-source"},"lastModified":1717595643,"lastModifiedDate":"20240605135403","rev":"01e4393b5f12f96c1600fbb3b960b50989a6e13e","shortRev":"01e4393"}'
+           value: '{"extra":{"narHash":"sha256-TWMpSCzWhzeceQI5fgbZeQBI125kD936/OVXJj8BZFw=","path":"/nix/store/l9a4rmzifamv5g5xfsay3i1xarjl9dgx-source","sourceInfo":"/nix/store/l9a4rmzifamv5g5xfsay3i1xarjl9dgx-source"},"lastModified":1718109308,"lastModifiedDate":"20240611123508","rev":"c3a13fc3526f831780ba25efea3408c90bd7f2e9","shortRev":"c3a13fc"}'
          - name: LOGGER_MIN_SEVERITY
            value: info
          - name: NETWORK
            value: sanchonet
          - name: OGMIOS_SRV_SERVICE_NAME
            value: dev-sanchonet-cardano-core.dev-sanchonet.svc.cluster.local
          - name: POSTGRES_DB
            value: stakepool
          - name: POSTGRES_HOST
            value: dev-sanchonet-postgresql
          - name: POSTGRES_PASSWORD
            valueFrom:
              secretKeyRef:
                key: password
                name: stakepool-owner-user.dev-sanchonet-postgresql.credentials.postgresql.acid.zalan.do
          - name: POSTGRES_POOL_MAX
            value: "2"
          - name: POSTGRES_PORT
            value: "5432"
          - name: POSTGRES_SSL
            value: "true"
          - name: POSTGRES_SSL_CA_FILE
            value: /tls/ca.crt
          - name: POSTGRES_USER
            valueFrom:
              secretKeyRef:
                key: username
                name: stakepool-owner-user.dev-sanchonet-postgresql.credentials.postgresql.acid.zalan.do
          - name: PROJECTION_NAMES
            value: stake-pool,stake-pool-metadata-job,stake-pool-metrics-job,stake-pool-rewards-job
-         image: 926093910549.dkr.ecr.us-east-1.amazonaws.com/cardano-services:hnccfrgy26p6z05xv503hy6p4ida8shf
+         image: 926093910549.dkr.ecr.us-east-1.amazonaws.com/cardano-services:csz2nq7aii8yhm35hz5nmpg1x5hp0c43
          livenessProbe:
            httpGet:
              path: /v1.0.0/health
              port: 3000
            timeoutSeconds: 5
          name: stake-pool-projector
          ports:
          - containerPort: 3000
            name: http
          resources:
            limits:
              cpu: 700m
              memory: 300Mi
            requests:
              cpu: 700m
              memory: 150Mi
          securityContext:
            runAsGroup: 0
            runAsUser: 0
          volumeMounts:
          - mountPath: /tls
            name: tls
        imagePullSecrets:
        - name: dockerconfigjson
        volumes:
        - name: tls
          secret:
            secretName: postgresql-server-cert

dev-sanchonet, dev-sanchonet-cardanojs-v1-stake-pool-provider, Deployment (apps) would change:

  # Source: cardanojs/templates/stake-pool-provider-deployment.yaml
  apiVersion: apps/v1
  kind: Deployment
  metadata:
    labels:
      app: stake-pool-provider
      network: sanchonet
      release: dev-sanchonet-cardanojs-v1
    name: dev-sanchonet-cardanojs-v1-stake-pool-provider
  spec:
    selector:
      matchLabels:
        app: stake-pool-provider
        network: sanchonet
        release: dev-sanchonet-cardanojs-v1
    template:
      metadata:
        labels:
          app: stake-pool-provider
          network: sanchonet
          release: dev-sanchonet-cardanojs-v1
      spec:
        containers:
        - args:
          - start-provider-server
          env:
          - name: ALLOWED_ORIGINS
            value: chrome-extension://gafhhkghbfjjkeiendhlofajokpaflmk,chrome-extension://efeiemlfnahiidnjglmehaihacglceia,chrome-extension://bjlhpephaokolembmpdcbobbpkjnoheb,chrome-extension://djcdfchkaijggdjokfomholkalbffgil,http://localhost/,http://localhost
          - name: BUILD_INFO
-           value: '{"extra":{"narHash":"sha256-Roun2jDQT18LueFavTIjK4PyZyOQO2ap5mLFlpPnxPg=","path":"/nix/store/h9lfmplf50i564nbdw936j8hc57a9hp1-source","sourceInfo":"/nix/store/h9lfmplf50i564nbdw936j8hc57a9hp1-source"},"lastModified":1717595643,"lastModifiedDate":"20240605135403","rev":"01e4393b5f12f96c1600fbb3b960b50989a6e13e","shortRev":"01e4393"}'
+           value: '{"extra":{"narHash":"sha256-TWMpSCzWhzeceQI5fgbZeQBI125kD936/OVXJj8BZFw=","path":"/nix/store/l9a4rmzifamv5g5xfsay3i1xarjl9dgx-source","sourceInfo":"/nix/store/l9a4rmzifamv5g5xfsay3i1xarjl9dgx-source"},"lastModified":1718109308,"lastModifiedDate":"20240611123508","rev":"c3a13fc3526f831780ba25efea3408c90bd7f2e9","shortRev":"c3a13fc"}'
          - name: DISABLE_STAKE_POOL_METRIC_APY
            value: "true"
          - name: ENABLE_METRICS
            value: "true"
          - name: LOGGER_MIN_SEVERITY
            value: info
          - name: NETWORK
            value: sanchonet
          - name: OGMIOS_SRV_SERVICE_NAME
            value: dev-sanchonet-cardano-core.dev-sanchonet.svc.cluster.local
          - name: OVERRIDE_FUZZY_OPTIONS
            value: "true"
          - name: PAGINATION_PAGE_SIZE_LIMIT
            value: "5500"
          - name: POSTGRES_DB_STAKE_POOL
            value: stakepool
          - name: POSTGRES_HOST_STAKE_POOL
            value: dev-sanchonet-postgresql
          - name: POSTGRES_PASSWORD_STAKE_POOL
            valueFrom:
              secretKeyRef:
                key: password
                name: stakepool-owner-user.dev-sanchonet-postgresql.credentials.postgresql.acid.zalan.do
          - name: POSTGRES_POOL_MAX_STAKE_POOL
            value: "10"
          - name: POSTGRES_PORT_STAKE_POOL
            value: "5432"
          - name: POSTGRES_SSL_CA_FILE_STAKE_POOL
            value: /tls/ca.crt
          - name: POSTGRES_SSL_STAKE_POOL
            value: "true"
          - name: POSTGRES_USER_STAKE_POOL
            valueFrom:
              secretKeyRef:
                key: username
                name: stakepool-owner-user.dev-sanchonet-postgresql.credentials.postgresql.acid.zalan.do
          - name: SERVICE_NAMES
            value: stake-pool
          - name: TOKEN_METADATA_SERVER_URL
            value: http://dev-sanchonet-cardano-stack-metadata.dev-sanchonet.svc.cluster.local
          - name: USE_TYPEORM_STAKE_POOL_PROVIDER
            value: "true"
-         image: 926093910549.dkr.ecr.us-east-1.amazonaws.com/cardano-services:hnccfrgy26p6z05xv503hy6p4ida8shf
+         image: 926093910549.dkr.ecr.us-east-1.amazonaws.com/cardano-services:csz2nq7aii8yhm35hz5nmpg1x5hp0c43
          livenessProbe:
            httpGet:
              path: /v1.0.0/health
              port: 3000
            timeoutSeconds: 5
          name: stake-pool-provider
          ports:
          - containerPort: 3000
            name: http
          resources:
            limits:
              cpu: 500m
              memory: 300Mi
            requests:
              cpu: 100m
              memory: 150Mi
          securityContext:
            runAsGroup: 0
            runAsUser: 0
          volumeMounts:
          - mountPath: /tls
            name: tls
        imagePullSecrets:
        - name: dockerconfigjson
        volumes:
        - name: tls
          secret:
            secretName: postgresql-server-cert

Copy link
Contributor

@iccicci iccicci left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Excellent job @mirceahasegan ! 🚀

Copy link
Member

@AngelCastilloB AngelCastilloB left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I just left a few nitpicks, but LGTM 🥇 great work! @mirceahasegan

That is the db-sync field name.
CDDL calls it "inactive".
…g thresholds

Query and map pvt_* and dvt_* db-sync param_proposal fields to
poolVotingThresholds and drepVotingThresholds respectively.

BREAKING CHANGE: removed pool_voting_thresholds and drep_voting_thresholds from
ProtocolParamsModel
@mirceahasegan mirceahasegan force-pushed the feat/lw-9927-submit-conway-protocol-params-upgrade-proposal branch from 69c9f25 to 88493d4 Compare June 11, 2024 12:35
@mirceahasegan mirceahasegan merged commit 2cf48b2 into conway-era Jun 11, 2024
8 checks passed
@mirceahasegan mirceahasegan deleted the feat/lw-9927-submit-conway-protocol-params-upgrade-proposal branch June 11, 2024 14:39
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants