Back to Aptos Core

aptos-fullnode

terraform/helm/fullnode/README.md

latest9.9 KB
Original Source

aptos-fullnode

Values

KeyTypeDefaultDescription
affinityobject{}
aptos_chainsobject{"devnet":{"genesis_blob_url":"https://devnet.aptoslabs.com/genesis.blob","waypoint_txt_url":"https://devnet.aptoslabs.com/waypoint.txt"},"mainnet":{"genesis_blob_url":"https://raw.githubusercontent.com/aptos-labs/aptos-networks/main/mainnet/genesis.blob","waypoint_txt_url":"https://raw.githubusercontent.com/aptos-labs/aptos-networks/main/mainnet/waypoint.txt"},"testnet":{"genesis_blob_url":"https://raw.githubusercontent.com/aptos-labs/aptos-networks/main/testnet/genesis.blob","waypoint_txt_url":"https://raw.githubusercontent.com/aptos-labs/aptos-networks/main/testnet/genesis_waypoint.txt"}}For each supported chain, specify the URLs from which to download the genesis.blob and waypoint.txt
backup.affinityobject{}
backup.config.azure.accountstringnil
backup.config.azure.containerstringnil
backup.config.azure.sasstringnil
backup.config.concurrent_data_requestsstringnilNumber of concurrent requests to the PFN backup port
backup.config.gcs.bucketstringnil
backup.config.locationstringnilWhich of the below backup configurations to use
backup.config.r2.bucketstringnil
backup.config.r2.endpoint_urlstringnil
backup.config.s3.bucketstringnil
backup.config.state_snapshot_interval_epochsint2State snapshot interval epochs
backup.config.transaction_batch_sizeint1000000Transaction batch size
backup.enableboolfalseWhether to enable backup
backup.image.pullPolicystring"IfNotPresent"Image pull policy to use for backup images
backup.image.repostring"aptoslabs/tools"Image repo to use for backup images
backup.image.tagstringnilImage tag to use for backup images
backup.nodeSelectorobject{}
backup.resources.limits.cpuint6
backup.resources.limits.memorystring"8Gi"
backup.resources.requests.cpuint4
backup.resources.requests.memorystring"4Gi"
backup.tolerationslist[]
backup_compaction.affinityobject{}
backup_compaction.nodeSelectorobject{}
backup_compaction.resources.limits.cpuint8
backup_compaction.resources.limits.memorystring"32Gi"
backup_compaction.resources.requests.cpuint4
backup_compaction.resources.requests.memorystring"16Gi"
backup_compaction.schedulestring"@daily"The schedule for backup compaction
backup_compaction.tolerationslist[]
backup_verify.affinityobject{}
backup_verify.config.concurrent_downloadsint50
backup_verify.nodeSelectorobject{}
backup_verify.resources.limits.cpuint32
backup_verify.resources.limits.memorystring"60Gi"
backup_verify.resources.requests.cpuint8
backup_verify.resources.requests.memorystring"8Gi"
backup_verify.schedulestring"@daily"The schedule for backup verification
backup_verify.tolerationslist[]
chain.eraint1Bump this number to wipe the underlying storage
chain.genesisConfigmapstringnilKubernetes Configmap from which to load the genesis.blob and waypoint.txt
chain.genesisSecretstringnilKubernetes Secret from which to load the genesis.blob and waypoint.txt
chain.labelstringnilThe value of the chain_name label. If empty, defaults to .Values.chain.name
chain.namestring"devnet"Name of the testnet to connect to. There must be a corresponding entry in .Values.aptos_chains
fullnode.configobject{"full_node_networks":[{"identity":{},"inbound_rate_limit_config":null,"network_id":"public","outbound_rate_limit_config":null}]}Fullnode configuration. See NodeConfig https://github.com/aptos-labs/aptos-core/blob/main/config/src/config/mod.rs
image.pullPolicystring"IfNotPresent"Image pull policy to use for fullnode images
image.repostring"aptoslabs/validator"Image repo to use for fullnode images. Fullnodes and validators use the same image
image.tagstringnilImage tag to use for fullnode images. If set, overrides imageTag
imageTagstring"devnet"Default image tag to use for all fullnode images
ingress.annotationsobject{}
ingress.enabledboolfalseChange enabled to true and fill out the rest of the fields to expose the REST API externally via your ingress controller
ingress.hostNamestringnilThe hostname to use for the ingress
ingress.ingressClassNamestringnilThe ingress class for fullnode ingress. Leaving class empty will result in an ingress that implicity uses the default ingress class
logging.addressstringnilAddress for remote logging
manageImagesbooltrueIf true, helm will always override the deployed image with what is configured in the helm values. If not, helm will take the latest image from the currently running workloads, which is useful if you have a separate procedure to update images (e.g. rollout)
metrics.destinationstring"dev"The upstream sink for metrics. Supported values are "dev" and "prod"
nodeSelectorobject{}
resources.limits.cpuint30
resources.limits.memorystring"60Gi"
resources.requests.cpuint30
resources.requests.memorystring"60Gi"
restore.affinityobject{}
restore.config.azure.accountstringnil
restore.config.azure.containerstringnil
restore.config.azure.sasstringnil
restore.config.concurrent_downloadsint16Number of concurrent downloads for restore
restore.config.gcs.bucketstringnil
restore.config.locationstringnilWhich of the below backup configurations to use
restore.config.restore_epochint0Increase this value to trigger a restore from scratch, wiping the DB.
restore.config.restore_erastringnilIf set, specifies a different era to restore other than the default era set in chain.era
restore.config.s3.bucketstringnil
restore.config.start_versionint0Start from genesis.
restore.config.target_versionstringnilRestore to the latest version.
restore.config.trusted_waypointslist[]List of trusted waypoints for restore
restore.enabledboolfalse
restore.image.pullPolicystring"IfNotPresent"Image pull policy to use for restore images
restore.image.repostring"aptoslabs/tools"Image repo to use for restore images
restore.image.tagstringnilImage tag to use for restore images
restore.nodeSelectorobject{}
restore.resources.limits.cpuint16
restore.resources.limits.memorystring"120Gi"
restore.resources.requests.cpuint16
restore.resources.requests.memorystring"120Gi"
restore.tolerationslist[]
rust_logstring"info"Log level for the fullnode
service.annotationsobject{}
service.exposeAdminboolfalseWhether to expose the admin port on fullnodes
service.exposeApibooltrueWhether to expose the node REST API
service.exposeMetricsboolfalseWhether to expose the metrics port on fullnodes
service.externalTrafficPolicystringnilThe externalTrafficPolicy for the fullnode service
service.loadBalancerSourceRangeslist[]If set and if the ServiceType is LoadBalancer, allow traffic to fullnode from these CIDRs
service.typestring"ClusterIP"The Kubernetes ServiceType to use for the fullnode. Change this to LoadBalancer expose the REST API, aptosnet endpoint externally
serviceAccount.annotationsobject{}
serviceAccount.createbooltrueSpecifies whether a service account should be created
serviceAccount.namestringnilThe name of the service account to use. If not set and create is true, a name is generated using the fullname template
storage.classstringnilKubernetes storage class to use for fullnode persistent storage
storage.sizestring"1000Gi"Size of fullnode persistent storage
storage.snapshotRefForRestorestringnilThe name of a VolumeSnapshot to restore from. In unset, the fullnode will start from scratch.
tolerationslist[]

Configuration

This Helm chart deploys a public fullnode for the Aptos blockchain network. The fullnode connects to Aptos validators and synchronises the blockchain state to a persistent volume. It provides a REST API for interacting with the blockchain.

See values.yaml for the full list of options you can configure.

Connecting to Testnet

To connect to the Aptos devnet, you must have the correct genesis blob and waypoint. The source of truth for these are hosted here: https://github.com/aptos-labs/aptos-genesis-waypoint

The waypoint and genesis blobs are download at runtime, and their URLs are specified in .Values.aptos_chains.

Deployment

  1. Install Helm v3: https://helm.sh/docs/intro/install/

  2. Configure kubectl with the Kubernetes cluster you wish to use.

  3. Install the release, setting any options:

    $ helm install fullnode --set storage.class=gp2 .