| Config | Description |
|---|---|
CONTROLLER_AWS_CLIENT_REGIONtype: string
|
Region is the region to use when interacting with S3. Default is "us-east-2". |
CONTROLLER_CHAIN_STATE_ENDPOINTtype: string
|
The Graph endpoint |
CONTROLLER_CONTRACT_DIRECTORY_ADDRESStype: string
|
The contract directory contract address, which is used to derive other EigenDA contract addresses. |
CONTROLLER_DISPERSAL_REQUEST_SIGNER_KEY_IDtype: string
|
KeyID is the AWS KMS key identifier used for signing requests. Optional if PrivateKey is provided. |
CONTROLLER_DISPERSAL_REQUEST_SIGNER_PRIVATE_KEYtype: string
|
PrivateKey is a hex-encoded private key for local signing (without 0x prefix). Optional if KeyID is provided. |
CONTROLLER_DISPERSAL_REQUEST_SIGNER_REGIONtype: string
|
Region is the AWS region where the KMS key is located (e.g., "us-east-1"). Required if using KMS. |
CONTROLLER_DISPERSER_IDtype: uint32
|
DisperserID is the unique identifier for this disperser instance. |
CONTROLLER_DYNAMO_DB_TABLE_NAMEtype: string
|
The name of the DynamoDB table used to store "core" metadata (i.e. blob statuses, signatures, etc.). |
CONTROLLER_ENCODER_AVAILABLE_RELAYStype: []uint32
|
AvailableRelays is the list of relay keys that can be assigned to blobs. Must not be empty. |
CONTROLLER_ENCODER_ENCODER_ADDRESStype: string
|
EncoderAddress is the network address of the encoder service (e.g., "localhost:50051"). Must not be empty. |
CONTROLLER_ETH_CLIENT_RPCURLStype: []string
|
A list of RPC URL endpoints to connect to the Ethereum chain. |
CONTROLLER_PAYMENT_ON_DEMAND_ON_DEMAND_TABLE_NAMEtype: string
|
The name of the dynamo table where on-demand payment information is stored |
CONTROLLER_SERVER_GRPC_PORTtype: uint16
|
Port that the gRPC server listens on |
CONTROLLER_SIGNING_RATE_DYNAMO_DB_TABLE_NAMEtype: string
|
The name of the DynamoDB table used to store signing rate data. |
| Config | Description |
|---|---|
CONTROLLER_ATTESTATION_TIMEOUTtype: time.Durationdefault: 45s
|
AttestationTimeout is the maximum time to wait for a single node to provide a signature. Must be positive. |
CONTROLLER_AWS_CLIENT_ACCESS_KEYtype: stringdefault: ""
|
AccessKey to use when interacting with S3. |
CONTROLLER_AWS_CLIENT_ENDPOINT_URLtype: stringdefault: ""
|
EndpointURL of the S3 endpoint to use. If set to "", the AWS library will use the default AWS S3 endpoint. |
CONTROLLER_AWS_CLIENT_FRAGMENT_PARALLELISM_CONSTANTtype: intdefault: 0
|
This is a deprecated setting and can be ignored. |
CONTROLLER_AWS_CLIENT_FRAGMENT_PARALLELISM_FACTORtype: intdefault: 8
|
This is a deprecated setting and can be ignored. |
CONTROLLER_AWS_CLIENT_SECRET_ACCESS_KEYtype: stringdefault: ""
|
SecretAccessKey to use when interacting with S3. |
CONTROLLER_BATCH_ATTESTATION_TIMEOUTtype: time.Durationdefault: 55s
|
BatchAttestationTimeout is the maximum time to wait for all nodes to provide signatures for a batch. Must be positive and must be longer or equal to the AttestationTimeout. |
CONTROLLER_BATCH_METADATA_UPDATE_PERIODtype: time.Durationdefault: 1m0s
|
BatchMetadataUpdatePeriod is the interval between attempts to refresh batch metadata (reference block number and operator state). Since this changes at most once per eth block, values shorter than 10 seconds are not useful. In practice, checking every several minutes is sufficient. Must be positive. |
CONTROLLER_BLOB_DISPERSAL_QUEUE_SIZEtype: uint32default: 1024
|
BlobDispersalQueueSize is the maximum number of blobs that can be queued for dispersal. |
CONTROLLER_BLOB_DISPERSAL_REQUEST_BACKOFF_PERIODtype: time.Durationdefault: 50ms
|
BlobDispersalRequestBackoffPeriod is the delay between fetch attempts when there are no blobs ready for dispersal. |
CONTROLLER_BLOB_DISPERSAL_REQUEST_BATCH_SIZEtype: uint32default: 32
|
BlobDispersalRequestBatchSize is the number of blob metadata items to fetch from the store in a single request. Must be at least 1. |
CONTROLLER_CHAIN_STATE_MAX_RETRIEStype: intdefault: 5
|
The maximum number of retries to pull data from The Graph |
CONTROLLER_CHAIN_STATE_PULL_INTERVALtype: time.Durationdefault: 100ms
|
The interval to pull data from The Graph |
CONTROLLER_COLLECT_DETAILED_VALIDATOR_SIGNING_METRICStype: booldefault: true
|
If true, validators that DON'T have a human-friendly name remapping will be reported as their full validator ID in metrics. If false, validators that DON'T have a human-friendly name remapping will be reported as "0x0" in metrics. NOTE: No matter the value of this field, validators that DO have a human-friendly name remapping will be reported as their remapped name in metrics. If you must reduce metric cardinality by reporting ALL validators as "0x0", you shouldn't define any human-friendly name remappings. |
CONTROLLER_CONTROLLER_READINESS_PROBE_PATHtype: stringdefault: "/tmp/controller-ready"
|
The HTTP path to use for the controller readiness probe. |
CONTROLLER_DISPERSAL_REQUEST_SIGNER_ENDPOINTtype: stringdefault: ""
|
Endpoint is an optional custom AWS KMS endpoint URL. If empty, the standard AWS KMS endpoint is used. This is primarily useful for testing with LocalStack or other custom KMS implementations. Default is empty. |
CONTROLLER_DISPERSER_STORE_CHUNKS_SIGNING_DISABLEDtype: booldefault: false
|
If true, the disperser will not sign StoreChunks requests before sending them to validators. |
CONTROLLER_ENABLE_PER_ACCOUNT_BLOB_STATUS_METRICStype: booldefault: true
|
If true, accounts that DON'T have a human-friendly name remapping will be reported as their full account ID in metrics. If false, accounts that DON'T have a human-friendly name remapping will be reported as "0x0" in metrics. NOTE: No matter the value of this field, accounts that DO have a human-friendly name remapping will be reported as their remapped name in metrics. If you must reduce metric cardinality by reporting ALL accounts as "0x0", you shouldn't define any human-friendly name remappings. |
CONTROLLER_ENCODER_ENCODING_REQUEST_TIMEOUTtype: time.Durationdefault: 5m0s
|
EncodingRequestTimeout is the maximum time to wait for a single encoding request to complete. Must be positive. |
CONTROLLER_ENCODER_MAX_NUM_BLOBS_PER_ITERATIONtype: int32default: 128
|
MaxNumBlobsPerIteration is the maximum number of blobs to pull and encode in each iteration. Must be at least 1. |
CONTROLLER_ENCODER_NUM_CONCURRENT_REQUESTStype: intdefault: 250
|
NumConcurrentRequests is the size of the worker pool for processing encoding requests concurrently. Must be at least 1. |
CONTROLLER_ENCODER_NUM_ENCODING_RETRIEStype: intdefault: 3
|
NumEncodingRetries is the number of times to retry encoding a blob after the initial attempt fails. A value of 0 means no retries (only the initial attempt). Must be non-negative. |
CONTROLLER_ENCODER_NUM_RELAY_ASSIGNMENTtype: uint16default: 1
|
NumRelayAssignment is the number of relays to assign to each blob. Must be at least 1 and cannot exceed the length of AvailableRelays. |
CONTROLLER_ENCODER_PER_ACCOUNT_METRICStype: booldefault: true
|
If true, accounts that DON'T have a human-friendly name remapping will be reported as their full account ID in metrics. If false, accounts that DON'T have a human-friendly name remapping will be reported as "0x0" in metrics. NOTE: No matter the value of this field, accounts that DO have a human-friendly name remapping will be reported as their remapped name in metrics. If you must reduce metric cardinality by reporting ALL accounts as "0x0", you shouldn't define any human-friendly name remappings. |
CONTROLLER_ENCODER_PULL_INTERVALtype: time.Durationdefault: 2s
|
PullInterval is how frequently the EncodingManager polls for new blobs to encode. Must be positive. |
CONTROLLER_ENCODER_STATE_REFRESH_INTERVALtype: time.Durationdefault: 1h0m0s
|
StateRefreshInterval is how frequently the manager refreshes blob version parameters from the chain. Must be positive. |
CONTROLLER_ENCODER_STORE_TIMEOUTtype: time.Durationdefault: 15s
|
StoreTimeout is the maximum time to wait for blob metadata store operations. Must be positive. |
CONTROLLER_ETH_CLIENT_NUM_CONFIRMATIONStype: intdefault: 0
|
Number of block confirmations to wait for. |
CONTROLLER_ETH_CLIENT_NUM_RETRIEStype: intdefault: 2
|
Max number of retries for each RPC call after failure. |
CONTROLLER_ETH_CLIENT_PRIVATE_KEY_STRINGtype: stringdefault: ""
|
Ethereum private key in hex string format. |
CONTROLLER_ETH_CLIENT_RETRY_DELAYtype: time.Durationdefault: 0s
|
Time duration for linear retry delay increment. |
CONTROLLER_FINALIZATION_BLOCK_DELAYtype: uint64default: 75
|
FinalizationBlockDelay is the number of blocks to wait before using operator state. This provides a hedge against chain reorganizations. |
CONTROLLER_HEARTBEAT_MONITOR_FILE_PATHtype: stringdefault: "/tmp/controller-health"
|
FilePath is the path to the file where heartbeat status will be written. Required. |
CONTROLLER_HEARTBEAT_MONITOR_MAX_STALL_DURATIONtype: time.Durationdefault: 4m0s
|
MaxStallDuration is the maximum time allowed between heartbeats before a component is considered stalled. Required. |
CONTROLLER_INDEXER_PULL_INTERVALtype: time.Durationdefault: 1s
|
The frequency to pull data from The Graph. |
CONTROLLER_LOG_ADD_SOURCEtype: booldefault: true
|
Enable source code location |
CONTROLLER_LOG_FORMATtype: config.LogFormatdefault: json
|
Format of the log output. Valid options are "json" and "text". |
CONTROLLER_LOG_LEVELtype: config.LogLeveldefault: debug
|
Minimum level to log. Valid options are "debug", "info", "warn", and "error". |
CONTROLLER_LOG_NO_COLORtype: booldefault: false
|
Disable color, only supported with text handler (i.e. no color in json). |
CONTROLLER_LOG_TIME_FORMATtype: stringdefault: ""
|
Time format, only supported with text handler |
CONTROLLER_MAX_BATCH_SIZEtype: int32default: 32
|
MaxBatchSize is the maximum number of blobs to include in a single batch for dispersal. Must be at least 1. |
CONTROLLER_MAX_DISPERSAL_AGEtype: time.Durationdefault: 45s
|
MaxDispersalAge is the maximum age a dispersal request can be before it is discarded. Dispersals older than this duration are marked as Failed and not processed. Age is determined by the BlobHeader.PaymentMetadata.Timestamp field, which is set by the client at dispersal request creation time (in nanoseconds since Unix epoch). |
CONTROLLER_MAX_DISPERSAL_FUTURE_AGEtype: time.Durationdefault: 45s
|
The maximum a blob dispersal's self-reported timestamp can be ahead of the local wall clock time. This is a preventative measure needed to prevent an attacker from sending far future timestamps that result in data being tracked for a long time. |
CONTROLLER_METRICS_PORTtype: intdefault: 9101
|
The port on which to expose prometheus metrics. |
CONTROLLER_NODE_CLIENT_CACHE_SIZEtype: intdefault: 400
|
NodeClientCacheSize is the maximum number of node clients to cache for reuse. Must be at least 1. |
CONTROLLER_NUM_CONCURRENT_REQUESTStype: intdefault: 600
|
NumConcurrentRequests is the size of the worker pool for processing dispersal requests concurrently. Must be at least 1. |
CONTROLLER_PAYMENT_ON_DEMAND_MAX_LEDGERStype: intdefault: 1024
|
The maximum number of OnDemandLedger entries to be kept in the LRU cache |
CONTROLLER_PAYMENT_ON_DEMAND_UPDATE_INTERVALtype: time.Durationdefault: 30s
|
Interval for checking for payment updates |
CONTROLLER_PAYMENT_PER_ACCOUNT_METRICStype: booldefault: true
|
If true, enable a metric per user account for payment validation and authorization. Resulting metric may potentially have high cardinality. |
CONTROLLER_PAYMENT_RESERVATION_BUCKET_CAPACITY_PERIODtype: time.Durationdefault: 1m30s
|
Duration used to calculate bucket capacity when creating new reservation ledgers |
CONTROLLER_PAYMENT_RESERVATION_MAX_LEDGERStype: intdefault: 1024
|
The maximum number of ReservationLedger entries to be kept in the LRU cache. This may be automatically increased at runtime if premature ledger evictions are detected by the underlying cache. |
CONTROLLER_PAYMENT_RESERVATION_OVERFILL_BEHAVIORtype: ratelimit.OverfillBehaviordefault: overfillOncePermitted
|
How to handle requests that would overfill the bucket |
CONTROLLER_PAYMENT_RESERVATION_UPDATE_INTERVALtype: time.Durationdefault: 30s
|
Interval for checking for payment updates |
CONTROLLER_PULL_INTERVALtype: time.Durationdefault: 1s
|
PullInterval is how frequently the Dispatcher polls for new encoded blobs to batch and dispatch. Must be positive. |
CONTROLLER_SERVER_MAX_GRPC_MESSAGE_SIZEtype: intdefault: 1048576
|
Maximum size of a gRPC message that the server will accept (in bytes) |
CONTROLLER_SERVER_MAX_IDLE_CONNECTION_AGEtype: time.Durationdefault: 5m0s
|
Maximum time a connection can be idle before it is closed. |
CONTROLLER_SERVER_REQUEST_MAX_FUTURE_AGEtype: time.Durationdefault: 3m0s
|
Maximum age of a request in the future that the server will accept. Requests with timestamps too far in the future will be rejected. |
CONTROLLER_SERVER_REQUEST_MAX_PAST_AGEtype: time.Durationdefault: 5m0s
|
Maximum age of a request in the past that the server will accept. Requests older than this will be rejected to prevent replay attacks. |
CONTROLLER_SIGNATURE_TICK_INTERVALtype: time.Durationdefault: 50ms
|
SignatureTickInterval is how frequently attestations are updated in the blob metadata store as signature gathering progresses. Must be positive. |
CONTROLLER_SIGNIFICANT_SIGNING_THRESHOLD_FRACTIONtype: float64default: 0.55
|
SignificantSigningThresholdFraction is a configurable "important" signing threshold fraction. Used to track signing metrics and understand system performance. If the value is 0, special handling for this threshold is disabled. Must be between 0.0 and 1.0. |
CONTROLLER_SIGNING_RATE_BUCKET_SPANtype: time.Durationdefault: 10m0s
|
The duration of each signing rate bucket. Smaller buckets yield more granular data, at the cost of memory and storage overhead. |
CONTROLLER_SIGNING_RATE_FLUSH_PERIODtype: time.Durationdefault: 1m0s
|
The period at which signing rate data is flushed to persistent storage. |
CONTROLLER_SIGNING_RATE_RETENTION_PERIODtype: time.Durationdefault: 336h0m0s
|
The amount of time to retain signing rate data. |
CONTROLLER_USE_GRAPHtype: booldefault: true
|
Whether or not to use subgraph. |
CONTROLLER_USER_ACCOUNT_REMAPPING_FILE_PATHtype: stringdefault: ""
|
The file path to a yaml file that maps user accounts (i.e. the parties submitting blobs) to human-friendly names, which are used for metrics. |
CONTROLLER_VALIDATOR_ID_REMAPPING_FILE_PATHtype: stringdefault: ""
|
The file path to a yaml file that maps validator IDs to human-friendly names, which are used for metrics. |