Back to Fhevm

kms-connector

charts/kms-connector/README.md

0.14.0-011.9 KB
Original Source

kms-connector

A helm chart to distribute and deploy the Zama KMS Connector services.

Chart Details

This chart deploys the following components:

  • kms-connector-db-migration: A Kubernetes Job to run database migrations.
  • kms-connector-gw-listener: A service that listens for events from the gateway chain.
  • kms-connector-kms-worker: A service that interacts with the KMS-Core.
  • kms-connector-tx-sender: A service that sends transactions to the gateway chain.

Installing the Chart

To pull and install the OCI Helm chart from ghcr.io:

helm registry login ghcr.io/zama-ai/fhevm/charts
helm install kms-connector oci://ghcr.io/zama-ai/fhevm/charts/kms-connector

To pull and install the OCI Helm chart from hub.zama.ai:

helm registry login hub.zama.ai
helm install kms oci://hub.zama.ai/zama-protocol/zama-ai/fhevm/charts/kms-connector

Smart contract addresses and chain IDs

The connector talks to the gateway chain and to host chains (Ethereum, Polygon, etc). Their contract addresses and chain IDs are loaded from a per-network preset bundled in configs/contracts-<network>.yaml, selected via commonConfig.network (one of "", devnet, testnet, mainnet; an unrecognized value fails the render).

Each preset provides:

  • gateway.{chain_id,decryption.address,gateway_config.address,kms_generation.address}
  • ethereum.{chain_id,acl.address,kms_verifier.address} (KMS Verifier is only on Ethereum)
  • polygon.{chain_id,acl.address}

Individual entries can be overridden by setting the matching commonConfig values; a non-empty override wins over the preset. With commonConfig.network: "" no preset is loaded, so these values must be provided explicitly.

Configuration

The following table lists the configurable parameters of the kms-connector chart and their default values.

ParameterDescriptionDefault
commonConfig.databaseUrlThe database URL.postgresql://$(DATABASE_USERNAME):$(DATABASE_PASSWORD)@$(DATABASE_ENDPOINT)/connector
commonConfig.networkSelects the bundled contract address / chain ID preset ("", devnet, testnet, mainnet).devnet
commonConfig.gatewayUrlThe gateway URL.http://gateway-node:8546
commonConfig.gatewayChainIdGateway chain ID. Overrides the network preset when set.""
commonConfig.gatewayContractAddressesGateway contract addresses (decryption, gatewayConfig). Each overrides the preset when set.{}
commonConfig.ethereumUrlThe Ethereum host chain URL.http://ethereum-node:8545
commonConfig.ethereumChainIdEthereum chain ID. Overrides the network preset when set.""
commonConfig.ethereumContractAddressesEthereum contract addresses (acl, kmsGeneration, protocolConfig). Each overrides the preset when set.{}
commonConfig.polygonUrlThe Polygon host chain URL.http://polygon-node:8545
commonConfig.polygonChainIdPolygon chain ID. Overrides the network preset when set.""
commonConfig.polygonContractAddressesPolygon contract addresses (acl). Overrides the preset when set.{}
commonConfig.tracing.enabledIf true, enable tracing for all components.false
commonConfig.tracing.endpointThe OpenTelemetry collector endpoint.http://otel-deployment-opentelemetry-collector.observability.svc.cluster.local:4317
commonConfig.envEnvironment variables to be injected into all containers.{}
kmsConnectorDbMigration.enabledIf true, run the database migration job.true
kmsConnectorDbMigration.image.nameThe docker image name for the database migration job.ghcr.io/zama-ai/fhevm/kms-connector/db-migration
kmsConnectorDbMigration.image.tagThe docker image tag for the database migration job.v0.9.0
kmsConnectorGwListener.enabledIf true, deploy the gateway listener.true
kmsConnectorGwListener.image.nameThe docker imagename for the gateway listener.ghcr.io/zama-ai/fhevm/kms-connector/gw-listener
kmsConnectorGwListener.image.tagThe docker image tag for the gateway listener.v0.9.0
kmsConnectorGwListener.replicasThe number of replicas for the gateway listener.1
kmsConnectorKmsWorker.enabledIf true, deploy the KMS worker.true
kmsConnectorKmsWorker.image.nameThe docker image name for the KMS worker.ghcr.io/zama-ai/fhevm/kms-connector/kms-worker
kmsConnectorKmsWorker.image.tagThe docker image tag for the KMS worker.v0.9.0
kmsConnectorKmsWorker.replicasThe number of replicas for the KMS worker.1
kmsConnectorTxSender.enabledIf true, deploy the transaction sender.true
kmsConnectorTxSender.image.nameThe docker image name for the transaction sender.ghcr.io/zama-ai/fhevm/kms-connector/tx-sender
kmsConnectorTxSender.image.tagThe docker image tag for the transaction sender.v0.9.0
kmsConnectorTxSender.replicasThe number of replicas for the transaction sender.1
kmsConnectorTxSender.awsKms.enabledWhether to enable the AWS KMS signer for the transaction sender.false
kmsConnectorTxSender.awsKms.configmap.nameThe name of the configmap containing the AWS KMS Key ID.mpc-party
kmsConnectorTxSender.awsKms.configmap.keyThe key in the configmap containing the AWS KMS Key ID.KMS_CONNECTOR_AWS_KMS_CONFIG__KEY_ID
kmsConnectorTxSender.wallet.secret.nameThe name of the secret containing the wallet.kms-connector-tx-sender
kmsConnectorTxSender.wallet.secret.keyThe key in the secret containing the wallet.kms-wallet
podAnnotationsAnnotations to be added to all pods.{}
podLabelsLabels to be added to all pods.{}