Documentation
¶
Overview ¶
Package config implements the configuration options for the xmtpd server.
Index ¶
- func FillConfigFromJSON(options *ContractsOptions, config *ChainConfig)
- type APIOptions
- type AppChainOptions
- type ChainConfig
- type ContractsOptions
- type DBOptions
- type DebugOptions
- type GatewayConfig
- type IndexerOptions
- type LogOptions
- type MetricsOptions
- type MigrationClientOptions
- type MigrationServerOptions
- type MlsValidationOptions
- type OptionsValidator
- type PayerOptions
- type PayerReportOptions
- type PruneConfig
- type PruneOptions
- type RedisOptions
- type ReflectionOptions
- type ReplicationOptions
- type ServerOptions
- type SettlementChainOptions
- type SignerOptions
- type SyncOptions
- type TracingOptions
- type Uint32Slice
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func FillConfigFromJSON ¶ added in v1.1.0
func FillConfigFromJSON(options *ContractsOptions, config *ChainConfig)
Types ¶
type APIOptions ¶ added in v0.5.1
type AppChainOptions ¶ added in v0.4.0
type AppChainOptions struct {
RPCURL string `` /* 131-byte string literal not displayed */
WssURL string `` /* 131-byte string literal not displayed */
ChainID int64 `` /* 189-byte string literal not displayed */
MaxChainDisconnectTime time.Duration `` /* 187-byte string literal not displayed */
BackfillBlockPageSize uint64 `` /* 187-byte string literal not displayed */
GroupMessageBroadcasterAddress string `` /* 155-byte string literal not displayed */
IdentityUpdateBroadcasterAddress string `` /* 157-byte string literal not displayed */
GatewayAddress string `` /* 147-byte string literal not displayed */
ParameterRegistryAddress string `` /* 148-byte string literal not displayed */
DeploymentBlock uint64 `` /* 185-byte string literal not displayed */
MaxBlockchainPayloadSize uint64 `` /* 190-byte string literal not displayed */
}
type ChainConfig ¶ added in v0.4.0
type ChainConfig struct {
AppChainDeploymentBlock int `json:"appChainDeploymentBlock"`
AppChainID int `json:"appChainId"`
AppChainGateway string `json:"appChainGateway"`
AppChainParameterRegistry string `json:"appChainParameterRegistry"`
DistributionManager string `json:"distributionManager"`
FeeToken string `json:"feeToken"`
GroupMessageBroadcaster string `json:"groupMessageBroadcaster"`
IdentityUpdateBroadcaster string `json:"identityUpdateBroadcaster"`
NodeRegistry string `json:"nodeRegistry"`
PayerRegistry string `json:"payerRegistry"`
PayerReportManager string `json:"payerReportManager"`
RateRegistry string `json:"rateRegistry"`
SettlementChainDeploymentBlock int `json:"settlementChainDeploymentBlock"`
SettlementChainGateway string `json:"settlementChainGateway"`
SettlementChainID int `json:"settlementChainId"`
SettlementChainParameterRegistry string `json:"settlementChainParameterRegistry"`
UnderlyingFeeToken string `json:"underlyingFeeToken"`
}
type ContractsOptions ¶
type ContractsOptions struct {
AppChain AppChainOptions `group:"Application Chain Options" namespace:"app-chain"`
SettlementChain SettlementChainOptions `group:"Settlement Chain Options" namespace:"settlement-chain"`
ConfigFilePath string `long:"config-file-path" env:"XMTPD_CONTRACTS_CONFIG_FILE_PATH" description:"Path to the JSON contracts config file"`
ConfigJSON string `long:"config-json" env:"XMTPD_CONTRACTS_CONFIG_JSON" description:"JSON contracts config"`
Environment environments.SmartContractEnvironment `` /* 126-byte string literal not displayed */
}
func ContractOptionsFromEnv ¶ added in v0.5.0
func ContractOptionsFromEnv(filePath string) (*ContractsOptions, error)
type DBOptions ¶ added in v0.5.1
type DBOptions struct {
ReaderConnectionString string `long:"reader-connection-string" env:"XMTPD_DB_READER_CONNECTION_STRING" description:"Reader connection string"`
WriterConnectionString string `long:"writer-connection-string" env:"XMTPD_DB_WRITER_CONNECTION_STRING" description:"Writer connection string"`
ReadTimeout time.Duration `` /* 146-byte string literal not displayed */
WriteTimeout time.Duration `` /* 146-byte string literal not displayed */
MaxOpenConns int `` /* 145-byte string literal not displayed */
WaitForDB time.Duration `` /* 146-byte string literal not displayed */
NameOverride string `` /* 160-byte string literal not displayed */
}
type DebugOptions ¶ added in v0.5.0
type GatewayConfig ¶ added in v0.5.0
type GatewayConfig struct {
API APIOptions `group:"API Options" namespace:"api"`
Contracts ContractsOptions `group:"Contracts Options" namespace:"contracts"`
Log LogOptions `group:"Log Options" namespace:"log"`
Metrics MetricsOptions `group:"Metrics Options" namespace:"metrics"`
Payer PayerOptions `group:"Payer Options" namespace:"payer"`
Redis RedisOptions `group:"Redis Options" namespace:"redis"`
Tracing TracingOptions `group:"DD APM Tracing Options" namespace:"tracing"`
Reflection ReflectionOptions `group:"Reflection Options" namespace:"reflection"`
}
type IndexerOptions ¶ added in v0.1.1
type IndexerOptions struct {
Enable bool `long:"enable" env:"XMTPD_INDEXER_ENABLE" description:"Enable the indexer"`
}
type LogOptions ¶
type MetricsOptions ¶
type MetricsOptions struct {
Enable bool `long:"enable" env:"XMTPD_METRICS_ENABLE" description:"Enable the metrics server"`
Address string `` /* 134-byte string literal not displayed */
Port int `` /* 129-byte string literal not displayed */
}
MetricsOptions are settings used to start a prometheus server
type MigrationClientOptions ¶ added in v0.5.0
type MigrationServerOptions ¶ added in v0.5.0
type MigrationServerOptions struct {
Enable bool `long:"enable" env:"XMTPD_MIGRATION_SERVER_ENABLE" description:"Enable the migration server"`
PayerPrivateKey string `long:"payer-private-key" env:"XMTPD_MIGRATION_PAYER_PRIVATE_KEY" description:"Private key used to sign payer envelopes"`
NodeSigningKey string `long:"node-signing-key" env:"XMTPD_MIGRATION_NODE_SIGNING_KEY" description:"Private key used to sign originator envelopes"`
ReaderConnectionString string `long:"reader-connection-string" env:"XMTPD_MIGRATION_DB_READER_CONNECTION_STRING" description:"Reader connection string"`
ReaderTimeout time.Duration `` /* 156-byte string literal not displayed */
WaitForDB time.Duration `` /* 156-byte string literal not displayed */
BatchSize int32 `` /* 157-byte string literal not displayed */
PollInterval time.Duration `` /* 156-byte string literal not displayed */
Namespace string `` /* 153-byte string literal not displayed */
StartDate time.Time `` /* 173-byte string literal not displayed */
}
type MlsValidationOptions ¶
type MlsValidationOptions struct {
GrpcAddress string `long:"grpc-address" env:"XMTPD_MLS_VALIDATION_GRPC_ADDRESS" description:"Address of the MLS validation service"`
}
type OptionsValidator ¶ added in v1.0.0
type OptionsValidator struct {
// contains filtered or unexported fields
}
func NewOptionsValidator ¶ added in v1.0.0
func NewOptionsValidator(logger *zap.Logger) *OptionsValidator
func (*OptionsValidator) ParseJSONConfig ¶ added in v1.0.0
func (v *OptionsValidator) ParseJSONConfig(options *ContractsOptions) error
func (*OptionsValidator) ValidatePruneOptions ¶ added in v1.0.0
func (v *OptionsValidator) ValidatePruneOptions(options PruneOptions) error
func (*OptionsValidator) ValidateServerOptions ¶ added in v1.0.0
func (v *OptionsValidator) ValidateServerOptions(options *ServerOptions) error
type PayerOptions ¶
type PayerOptions struct {
PrivateKey string `long:"private-key" env:"XMTPD_PAYER_PRIVATE_KEY" description:"Private key used to sign blockchain transactions"`
Enable bool `long:"enable" env:"XMTPD_PAYER_ENABLE" description:"Enable the payer API"`
NodeSelectorStrategy string `` /* 149-byte string literal not displayed */
NodeSelectorPreferredNodes Uint32Slice `long:"node-selector-preferred-nodes" env:"XMTPD_PAYER_NODE_SELECTOR_PREFERRED_NODES" description:"Preferred node IDs"`
NodeSelectorCacheExpiry time.Duration `` /* 145-byte string literal not displayed */
NodeSelectorTimeout time.Duration `` /* 145-byte string literal not displayed */
}
type PayerReportOptions ¶ added in v1.0.0
type PayerReportOptions struct {
Enable bool `` /* 161-byte string literal not displayed */
AttestationWorkerPollInterval time.Duration `` /* 204-byte string literal not displayed */
GenerateReportSelfPeriod time.Duration `` /* 204-byte string literal not displayed */
GenerateReportOthersPeriod time.Duration `` /* 205-byte string literal not displayed */
ExpirySelfPeriod time.Duration `` /* 204-byte string literal not displayed */
ExpiryOthersPeriod time.Duration `` /* 205-byte string literal not displayed */
}
type PruneConfig ¶ added in v0.4.0
type PruneConfig struct {
MaxCycles int `long:"max-prune-cycles" env:"XMTPD_PRUNE_MAX_CYCLES" description:"Maximum pruning cycles" default:"10"`
BatchSize int32 `` /* 128-byte string literal not displayed */
CountDeletable bool `long:"count-deletable" env:"XMTPD_PRUNE_COUNT_DELETABLE" description:"Attempt to count all deletable envelopes"`
DryRun bool `long:"dry-run" env:"XMTPD_PRUNE_DRY_RUN" description:"Dry run mode"`
}
type PruneOptions ¶ added in v0.4.0
type PruneOptions struct {
DB DBOptions `group:"Database Options" namespace:"db"`
Log LogOptions `group:"Log Options" namespace:"log"`
Signer SignerOptions `group:"Signer Options" namespace:"signer"`
Contracts ContractsOptions `group:"Contracts Options" namespace:"contracts"`
PruneConfig PruneConfig `group:"Prune Options" namespace:"prune"`
}
type RedisOptions ¶ added in v0.5.0
type RedisOptions struct {
RedisURL string `long:"redis-url" env:"XMTPD_REDIS_URL" description:"Redis URL"`
KeyPrefix string `long:"key-prefix" env:"XMTPD_REDIS_KEY_PREFIX" description:"Redis key prefix" default:"xmtpd:"`
ConnectTimeout time.Duration `long:"connect-timeout" env:"XMTPD_REDIS_CONNECT_TIMEOUT" description:"Redis connection timeout" default:"10s"`
}
type ReflectionOptions ¶
type ReflectionOptions struct {
Enable bool `long:"enable" env:"XMTPD_REFLECTION_ENABLE" description:"Enable GRPC reflection"`
}
ReflectionOptions are settings controlling collection of GRPC reflection settings.
type ReplicationOptions ¶ added in v0.1.1
type ReplicationOptions struct {
// Deprecated: use API instead
Enable bool `long:"enable" env:"XMTPD_REPLICATION_ENABLE" description:"Enable the replication API"`
}
type ServerOptions ¶
type ServerOptions struct {
API APIOptions `group:"API Options" namespace:"api"`
Contracts ContractsOptions `group:"Contracts Options" namespace:"contracts"`
DB DBOptions `group:"Database Options" namespace:"db"`
Log LogOptions `group:"Log Options" namespace:"log"`
Indexer IndexerOptions `group:"Indexer Options" namespace:"indexer"`
Metrics MetricsOptions `group:"Metrics Options" namespace:"metrics"`
MlsValidation MlsValidationOptions `group:"MLS Validation Options" namespace:"mls-validation"`
Payer PayerOptions `group:"Payer Options" namespace:"payer"`
PayerReport PayerReportOptions `group:"Payer Report Options" namespace:"payer-report"`
Reflection ReflectionOptions `group:"Reflection Options" namespace:"reflection"`
Replication ReplicationOptions `group:"API Options" namespace:"replication"`
Signer SignerOptions `group:"Signer Options" namespace:"signer"`
Sync SyncOptions `group:"Sync Options" namespace:"sync"`
Tracing TracingOptions `group:"DD APM Tracing Options" namespace:"tracing"`
MigrationServer MigrationServerOptions `group:"Migration Server Options" namespace:"migration-server"`
MigrationClient MigrationClientOptions `group:"Migration Client Options" namespace:"migration-client"`
Debug DebugOptions `group:"Debug Options" namespace:"debug"`
Version bool `` /* 131-byte string literal not displayed */
}
type SettlementChainOptions ¶ added in v0.4.0
type SettlementChainOptions struct {
RPCURL string `` /* 130-byte string literal not displayed */
WssURL string `` /* 130-byte string literal not displayed */
ChainID int64 `` /* 188-byte string literal not displayed */
MaxChainDisconnectTime time.Duration `` /* 187-byte string literal not displayed */
BackfillBlockPageSize uint64 `` /* 186-byte string literal not displayed */
NodeRegistryAddress string `` /* 142-byte string literal not displayed */
NodeRegistryRefreshInterval time.Duration `` /* 186-byte string literal not displayed */
RateRegistryAddress string `` /* 142-byte string literal not displayed */
RateRegistryRefreshInterval time.Duration `` /* 187-byte string literal not displayed */
ParameterRegistryAddress string `` /* 147-byte string literal not displayed */
PayerRegistryAddress string `` /* 143-byte string literal not displayed */
PayerReportManagerAddress string `` /* 149-byte string literal not displayed */
GatewayAddress string `` /* 153-byte string literal not displayed */
DistributionManagerAddress string `` /* 149-byte string literal not displayed */
DeploymentBlock uint64 `` /* 184-byte string literal not displayed */
UnderlyingFeeToken string `` /* 140-byte string literal not displayed */
FeeToken string `` /* 129-byte string literal not displayed */
}
type SignerOptions ¶
type SignerOptions struct {
PrivateKey string `long:"private-key" env:"XMTPD_SIGNER_PRIVATE_KEY" description:"Private key used to sign messages"`
}
type SyncOptions ¶ added in v0.1.1
type SyncOptions struct {
Enable bool `long:"enable" env:"XMTPD_SYNC_ENABLE" description:"Enable the sync server"`
}
type TracingOptions ¶
type TracingOptions struct {
Enable bool `long:"enable" env:"XMTPD_TRACING_ENABLE" description:"Enable DD APM trace collection"`
}
TracingOptions are settings controlling collection of DD APM traces and error tracking.
type Uint32Slice ¶ added in v1.1.0
type Uint32Slice []uint32
Uint32Slice parses a comma-separated list of uint32 values.
It treats an empty string ("") or whitespace-only input as an empty slice, which allows environment variables like XMTPD_PAYER_NODE_SELECTOR_PREFERRED_NODES="" to be provided without causing a parse error.
Examples:
"" -> nil
" " -> nil
"1,2,3" -> []uint32{1,2,3}
"1, 2, 3" -> []uint32{1,2,3}
"1,2," -> []uint32{1,2}
",1,,2,3," -> []uint32{1,2,3}
func (Uint32Slice) String ¶ added in v1.1.0
func (s Uint32Slice) String() string
func (*Uint32Slice) UnmarshalFlag ¶ added in v1.1.0
func (s *Uint32Slice) UnmarshalFlag(value string) error
UnmarshalFlag is used by github.com/jessevdk/go-flags to parse flag/env values.