config

package
v0.63.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jul 10, 2026 License: Apache-2.0 Imports: 22 Imported by: 0

Documentation

Index

Constants

View Source
const (
	DefaultBlobPlugin                  = "badger"
	DefaultMetadataPlugin              = "sqlite"
	DefaultEvictionWatermark           = 0.90
	DefaultRejectionWatermark          = 0.95
	DefaultForgeSyncToleranceSlots     = 100
	DefaultForgeStaleGapThresholdSlots = 1000
	DefaultMempoolCapacityPraos        = 1048576  // 1 MiB
	DefaultMempoolCapacityLeios        = 26214400 // 25 MiB
)
View Source
const DefaultLedgerCatchupTimeout = "30m"

DefaultLedgerCatchupTimeout is the maximum time LoadWithDB will wait for the ledger to process all blocks before returning an error.

View Source
const DefaultShutdownTimeout = "30s"

Variables

View Source
var ErrPluginListRequested = errors.New("plugin list requested")

ErrPluginListRequested is returned when the user requests to list available plugins. This is not an error condition but a successful operation that displays plugin information.

Functions

func ApplyFlags added in v0.37.0

func ApplyFlags(cmd *cobra.Command, cfg *Config) error

ApplyFlags writes explicitly set flags back to cfg. Flags the user did not pass are ignored so YAML and env-var values survive.

func GetTopologyConfig

func GetTopologyConfig() *topology.TopologyConfig

func LoadTopologyConfig

func LoadTopologyConfig() (*topology.TopologyConfig, error)

func LoadTopologyConfigFor added in v0.51.0

func LoadTopologyConfigFor(cfg *Config) (*topology.TopologyConfig, error)

func RegisterFlags added in v0.37.0

func RegisterFlags(cmd *cobra.Command)

RegisterFlags registers persistent CLI flags for every Config field.

func ValidateNetworkName added in v0.22.0

func ValidateNetworkName(network string) error

ValidateNetworkName checks that a network name contains only permitted characters and returns an error if it does not.

func WithContext added in v0.5.0

func WithContext(ctx context.Context, cfg *Config) context.Context

Types

type CacheConfig added in v0.22.0

type CacheConfig struct {
	// HotUtxoEntries is the maximum number of UTxO CBOR entries in the hot
	// cache.
	HotUtxoEntries int `yaml:"hotUtxoEntries"  envconfig:"DINGO_CACHE_HOT_UTXO_ENTRIES"`
	// HotTxEntries is the maximum number of transaction CBOR entries in the hot
	// cache.
	HotTxEntries int `yaml:"hotTxEntries"    envconfig:"DINGO_CACHE_HOT_TX_ENTRIES"`
	// HotTxMaxBytes is the maximum memory in bytes for the hot transaction
	// cache.
	HotTxMaxBytes int64 `yaml:"hotTxMaxBytes"   envconfig:"DINGO_CACHE_HOT_TX_MAX_BYTES"`
	// BlockLRUEntries is the maximum number of blocks in the LRU cache.
	BlockLRUEntries int `yaml:"blockLruEntries" envconfig:"DINGO_CACHE_BLOCK_LRU_ENTRIES"`
	// WarmupBlocks is the number of recent blocks to scan during cache warmup.
	WarmupBlocks int `yaml:"warmupBlocks"    envconfig:"DINGO_CACHE_WARMUP_BLOCKS"`
	// WarmupSync blocks startup until cache warmup is complete when true.
	WarmupSync bool `yaml:"warmupSync"      envconfig:"DINGO_CACHE_WARMUP_SYNC"`
}

CacheConfig holds configuration for the tiered CBOR cache system.

func DefaultCacheConfig added in v0.22.0

func DefaultCacheConfig() CacheConfig

DefaultCacheConfig returns the default cache configuration values.

type ChainsyncConfig added in v0.22.0

type ChainsyncConfig struct {
	// MaxClients is the maximum number of concurrent chainsync client
	// connections. Default: 3.
	MaxClients int `yaml:"maxClients"   envconfig:"DINGO_CHAINSYNC_MAX_CLIENTS"`
	// StallTimeout is the duration after which a client with no
	// activity is considered stalled. Default: "2m".
	StallTimeout string `yaml:"stallTimeout" envconfig:"DINGO_CHAINSYNC_STALL_TIMEOUT"`
	// Strategy selects how headers from multiple eligible peers drive
	// ledger ingress: "primary", "parallel", or "round-robin".
	// Default: "primary".
	Strategy string `yaml:"strategy"     envconfig:"DINGO_CHAINSYNC_STRATEGY"`
}

ChainsyncConfig holds configuration for the multi-client chainsync subsystem.

func DefaultChainsyncConfig added in v0.22.0

func DefaultChainsyncConfig() ChainsyncConfig

DefaultChainsyncConfig returns the default chainsync configuration. StallTimeout must match chainsync.DefaultStallTimeout and the fallback in internal/node/node.go.

type Config

type Config struct {
	MetadataPlugin         string   `yaml:"metadataPlugin"     envconfig:"DINGO_DATABASE_METADATA_PLUGIN"`
	TlsKeyFilePath         string   `yaml:"tlsKeyFilePath"     envconfig:"TLS_KEY_FILE_PATH"`
	Topology               string   `yaml:"topology"`
	CardanoConfig          string   `yaml:"cardanoConfig"      envconfig:"config"`
	DatabasePath           string   `yaml:"databasePath"                                                     split_words:"true"`
	SocketPath             string   `yaml:"socketPath"                                                       split_words:"true"`
	TlsCertFilePath        string   `yaml:"tlsCertFilePath"    envconfig:"TLS_CERT_FILE_PATH"`
	BindAddr               string   `yaml:"bindAddr"                                                         split_words:"true"`
	BlobPlugin             string   `yaml:"blobPlugin"         envconfig:"DINGO_DATABASE_BLOB_PLUGIN"`
	PrivateBindAddr        string   `yaml:"privateBindAddr"                                                  split_words:"true"`
	ShutdownTimeout        string   `yaml:"shutdownTimeout"                                                  split_words:"true"`
	LedgerCatchupTimeout   string   `yaml:"ledgerCatchupTimeout"  envconfig:"DINGO_LEDGER_CATCHUP_TIMEOUT"`
	Network                string   `yaml:"network"`
	NetworkMagic           uint32   `yaml:"networkMagic"                                                     split_words:"true"`
	MempoolCapacity        int64    `yaml:"mempoolCapacity"                                                  split_words:"true"`
	EvictionWatermark      float64  `yaml:"evictionWatermark"  envconfig:"DINGO_MEMPOOL_EVICTION_WATERMARK"`
	RejectionWatermark     float64  `yaml:"rejectionWatermark" envconfig:"DINGO_MEMPOOL_REJECTION_WATERMARK"`
	PrivatePort            uint     `yaml:"privatePort"                                                      split_words:"true"`
	RelayPort              uint     `yaml:"relayPort"          envconfig:"port"`
	BarkBaseUrl            string   `yaml:"barkBaseUrl"        envconfig:"DINGO_BARK_BASE_URL"`
	BarkBlockDownloadHosts []string `yaml:"barkBlockDownloadHosts" envconfig:"DINGO_BARK_BLOCK_DOWNLOAD_HOSTS"`
	BarkPort               uint     `yaml:"barkPort"           envconfig:"DINGO_BARK_PORT"`
	UtxorpcPort            uint     `yaml:"utxorpcPort"        envconfig:"DINGO_UTXORPC_PORT"`
	CORSAllowedOrigins     []string `yaml:"corsAllowedOrigins" envconfig:"DINGO_CORS_ALLOWED_ORIGINS"`
	MetricsPort            uint     `yaml:"metricsPort"                                                      split_words:"true"`
	DebugPort              uint     `yaml:"debugPort"          envconfig:"DINGO_DEBUG_PORT"`
	IntersectTip           bool     `yaml:"intersectTip"                                                     split_words:"true"`
	ValidateHistorical     bool     `yaml:"validateHistorical"                                               split_words:"true"`
	// StrictUtxoValidation errors out (instead of silently skipping) when a
	// consumed UTxO cannot be found or recovered for a block past the
	// recorded Mithril sync boundary. Leave disabled when bootstrapping from
	// a non-genesis chainsync intersect point without a Mithril snapshot.
	StrictUtxoValidation bool `yaml:"strictUtxoValidation" split_words:"true"`
	// Tracing enables OpenTelemetry tracing. Disabled by default: with no
	// collector listening, the OTLP exporter logs noisy connection errors.
	// Spans are sent via OTLP HTTP; configure the destination with the
	// standard OTEL_EXPORTER_OTLP_* env vars.
	Tracing bool `yaml:"tracing" envconfig:"DINGO_TRACING_ENABLED"`
	// TracingStdout redirects spans to stdout instead of OTLP. Requires
	// Tracing to also be enabled. Mostly useful for local debugging.
	TracingStdout   bool     `yaml:"tracingStdout" envconfig:"DINGO_TRACING_STDOUT"`
	RunMode         RunMode  `yaml:"runMode"            envconfig:"DINGO_RUN_MODE"`
	StartEra        StartEra `yaml:"startEra"           envconfig:"DINGO_START_ERA"`
	ImmutableDbPath string   `yaml:"immutableDbPath"    envconfig:"DINGO_IMMUTABLE_DB_PATH"`
	// Database worker pool tuning (worker count and task queue size)
	DatabaseWorkers   int `yaml:"databaseWorkers"    envconfig:"DINGO_DATABASE_WORKERS"`
	DatabaseQueueSize int `yaml:"databaseQueueSize"  envconfig:"DINGO_DATABASE_QUEUE_SIZE"`
	BackfillBatchSize int `yaml:"backfillBatchSize" envconfig:"DINGO_BACKFILL_BATCH_SIZE"`

	// Peer targets (0 = use default, -1 = unlimited)
	TargetNumberOfKnownPeers       int `yaml:"targetNumberOfKnownPeers"       envconfig:"DINGO_TARGET_KNOWN_PEERS"`
	TargetNumberOfEstablishedPeers int `yaml:"targetNumberOfEstablishedPeers" envconfig:"DINGO_TARGET_ESTABLISHED_PEERS"`
	TargetNumberOfActivePeers      int `yaml:"targetNumberOfActivePeers"      envconfig:"DINGO_TARGET_ACTIVE_PEERS"`

	// Per-source quotas for active peers (0 = use default, negative = disable)
	ActivePeersTopologyQuota int `yaml:"activePeersTopologyQuota" envconfig:"DINGO_ACTIVE_PEERS_TOPOLOGY_QUOTA"`
	ActivePeersGossipQuota   int `yaml:"activePeersGossipQuota"   envconfig:"DINGO_ACTIVE_PEERS_GOSSIP_QUOTA"`
	ActivePeersLedgerQuota   int `yaml:"activePeersLedgerQuota"   envconfig:"DINGO_ACTIVE_PEERS_LEDGER_QUOTA"`

	// Peer governor tuning (0 = use default)
	MinHotPeers              int           `yaml:"minHotPeers"         envconfig:"DINGO_MIN_HOT_PEERS"`
	ReconcileInterval        time.Duration `yaml:"reconcileInterval"   envconfig:"DINGO_RECONCILE_INTERVAL"`
	InactivityTimeout        time.Duration `yaml:"inactivityTimeout"   envconfig:"DINGO_INACTIVITY_TIMEOUT"`
	InboundWarmTarget        int           `yaml:"inboundWarmTarget"   envconfig:"DINGO_INBOUND_WARM_TARGET"`
	InboundHotQuota          int           `yaml:"inboundHotQuota"     envconfig:"DINGO_INBOUND_HOT_QUOTA"`
	InboundMinTenure         time.Duration `yaml:"inboundMinTenure"    envconfig:"DINGO_INBOUND_MIN_TENURE"`
	InboundHotScoreThreshold float64       `yaml:"inboundHotScoreThreshold" envconfig:"DINGO_INBOUND_HOT_SCORE_THRESHOLD"`
	InboundPruneAfter        time.Duration `yaml:"inboundPruneAfter"   envconfig:"DINGO_INBOUND_PRUNE_AFTER"`
	InboundDuplexOnlyForHot  bool          `yaml:"inboundDuplexOnlyForHot" envconfig:"DINGO_INBOUND_DUPLEX_ONLY_FOR_HOT"`
	InboundCooldown          time.Duration `yaml:"inboundCooldown"     envconfig:"DINGO_INBOUND_COOLDOWN"`
	MaxConnectionsPerIP      int           `yaml:"maxConnectionsPerIP" envconfig:"DINGO_MAX_CONNECTIONS_PER_IP"`
	MaxInboundConns          int           `yaml:"maxInboundConns"     envconfig:"DINGO_MAX_INBOUND_CONNS"`

	// Cache configuration for the tiered CBOR cache system
	Cache CacheConfig `yaml:"cache"`

	// Chainsync configuration for multi-client support
	Chainsync ChainsyncConfig `yaml:"chainsync"`

	// Genesis bootstrap configuration for from-origin chain selection.
	GenesisBootstrap GenesisBootstrapConfig `yaml:"genesisBootstrap"`

	// History expiry configuration for local immutable block CBOR expiry.
	HistoryExpiry HistoryExpiryConfig `yaml:"historyExpiry"`

	// Off-chain metadata fetcher configuration.
	OffchainMetadata OffchainMetadataConfig `yaml:"offchainMetadata"`

	// Logging configuration (output format and level)
	Logging LoggingConfig `yaml:"logging"`

	// Midnight indexer and gRPC API configuration.
	Midnight MidnightConfig `yaml:"midnight"`

	// KES (Key Evolving Signature) configuration for block production
	// SlotsPerKESPeriod is the number of slots in a KES period.
	// After this many slots, the KES key must be evolved to the next period.
	// Default: 129600 (mainnet value = 1.5 days at 1 second per slot)
	SlotsPerKESPeriod uint64 `yaml:"slotsPerKESPeriod" envconfig:"DINGO_SLOTS_PER_KES_PERIOD"`
	// MaxKESEvolutions is the maximum number of times a KES key can evolve.
	// For Cardano's KES depth of 6, this is 2^6 - 2 = 62 evolutions.
	// After this many evolutions, a new operational certificate must be issued.
	// Default: 62
	MaxKESEvolutions uint64 `yaml:"maxKESEvolutions"  envconfig:"DINGO_MAX_KES_EVOLUTIONS"`

	// Block production configuration (SPO mode)
	// Environment variables match cardano-node naming convention for compatibility
	// Note: envconfig.Process("cardano", ...) adds "CARDANO_" prefix automatically
	BlockProducer                 bool   `yaml:"blockProducer"                 envconfig:"BLOCK_PRODUCER"`
	ShelleyVRFKey                 string `yaml:"shelleyVrfKey"                 envconfig:"SHELLEY_VRF_KEY"`
	ShelleyKESKey                 string `yaml:"shelleyKesKey"                 envconfig:"SHELLEY_KES_KEY"`
	ShelleyOperationalCertificate string `yaml:"shelleyOperationalCertificate" envconfig:"SHELLEY_OPERATIONAL_CERTIFICATE"`
	ForgeSyncToleranceSlots       uint64 `yaml:"forgeSyncToleranceSlots"       envconfig:"DINGO_FORGE_SYNC_TOLERANCE_SLOTS"`
	ForgeStaleGapThresholdSlots   uint64 `yaml:"forgeStaleGapThresholdSlots"   envconfig:"DINGO_FORGE_STALE_GAP_THRESHOLD_SLOTS"`
	ValidateForgedBlock           bool   `yaml:"validateForgedBlock"           envconfig:"DINGO_VALIDATE_FORGED_BLOCK"`

	// Leios voting configuration (experimental, leios runMode only).
	// LeiosVoteSigningKeyFile is the path to a hex-encoded BLS12-381
	// vote signing key. When set on a block producer whose pool is a
	// committee member, the node emits Leios votes for endorser blocks.
	LeiosVoteSigningKeyFile string `yaml:"leiosVoteSigningKeyFile" envconfig:"DINGO_LEIOS_VOTE_SIGNING_KEY_FILE"`
	// LeiosVoterPublicKeys maps hex pool key hashes to hex-encoded
	// BLS12-381 voter public keys for vote signature verification.
	// CIP-0164 key registration is not yet specified, so this static
	// registry stands in for it (devnet-style).
	LeiosVoterPublicKeys map[string]string `yaml:"leiosVoterPublicKeys" envconfig:"DINGO_LEIOS_VOTER_PUBLIC_KEYS"`

	// Blockfrost REST API port (0 = disabled)
	BlockfrostPort uint `yaml:"blockfrostPort" envconfig:"DINGO_BLOCKFROST_PORT"`
	// Mesh (Coinbase Rosetta) API port (0 = disabled)
	MeshPort uint `yaml:"meshPort" envconfig:"DINGO_MESH_PORT"`

	// PeerSharing enables the peer sharing protocol, allowing this node
	// to advertise known peers to other nodes on request. Pointer
	// distinguishes "operator did not set this" (nil) from "explicitly
	// false". On a block producer the resolved default is false unless
	// this field is explicitly set to true.
	PeerSharing *bool `yaml:"peerSharing" envconfig:"DINGO_PEER_SHARING"`

	// Storage mode: "core" (default) or "api".
	// "core" stores only consensus data
	// (UTxOs, certs, pools, pparams).
	// "api" additionally stores witnesses, scripts,
	// datums, redeemers, and tx metadata.
	// APIs (blockfrost, utxorpc, mesh) require
	// "api" mode.
	StorageMode string `yaml:"storageMode" envconfig:"DINGO_STORAGE_MODE"`

	// Mithril snapshot bootstrap configuration
	Mithril MithrilConfig `yaml:"mithril"`
}

func FromContext added in v0.5.0

func FromContext(ctx context.Context) *Config

func GetConfig

func GetConfig() *Config

func LoadConfig

func LoadConfig(configFile string) (*Config, error)

func (*Config) ParseCmdlineArgs added in v0.18.0

func (c *Config) ParseCmdlineArgs(programName string, args []string) error

type GenesisBootstrapConfig added in v0.37.0

type GenesisBootstrapConfig struct {
	// Enabled controls whether Genesis bootstrap mode is used when the node
	// starts from origin.
	Enabled bool `yaml:"enabled" envconfig:"DINGO_GENESIS_BOOTSTRAP_ENABLED"`
	// WindowSlots overrides the Genesis density comparison window in slots.
	// A zero value derives the window from Shelley genesis parameters (3k/f).
	WindowSlots uint64 `yaml:"windowSlots" envconfig:"DINGO_GENESIS_BOOTSTRAP_WINDOW_SLOTS"`
	// PromotionMinDiversityGroups sets the minimum number of diversity groups
	// to prefer while promoting peers during bootstrap.
	PromotionMinDiversityGroups int `yaml:"promotionMinDiversityGroups" envconfig:"DINGO_GENESIS_BOOTSTRAP_PROMOTION_MIN_DIVERSITY_GROUPS"`
}

GenesisBootstrapConfig holds configuration for Genesis-mode chain selection and bootstrap-time peer promotion.

func DefaultGenesisBootstrapConfig added in v0.37.0

func DefaultGenesisBootstrapConfig() GenesisBootstrapConfig

DefaultGenesisBootstrapConfig returns the default Genesis bootstrap configuration values.

type HistoryExpiryConfig added in v0.52.0

type HistoryExpiryConfig struct {
	// Enabled starts the background expiry worker when true.
	Enabled bool `yaml:"enabled" envconfig:"DINGO_HISTORY_EXPIRY_ENABLED"`
	// Frequency controls how often the worker scans for expired block CBOR.
	Frequency time.Duration `yaml:"frequency" envconfig:"DINGO_HISTORY_EXPIRY_FREQUENCY"`
}

HistoryExpiryConfig controls local expiry of immutable block history.

func DefaultHistoryExpiryConfig added in v0.52.0

func DefaultHistoryExpiryConfig() HistoryExpiryConfig

DefaultHistoryExpiryConfig returns the default history expiry settings.

type LoggingConfig added in v0.51.0

type LoggingConfig struct {
	// Format selects the log output handler: "text" (default) or "json".
	// JSON is intended for machine-parseable ingestion (ELK/Loki).
	Format string `yaml:"format" envconfig:"DINGO_LOGGING_FORMAT"`
	// Level is the minimum log level: "debug", "info" (default), "warn",
	// or "error". The --debug flag, when set, overrides this to "debug".
	Level string `yaml:"level"  envconfig:"DINGO_LOGGING_LEVEL"`
}

LoggingConfig holds log output configuration.

func DefaultLoggingConfig added in v0.51.0

func DefaultLoggingConfig() LoggingConfig

DefaultLoggingConfig returns the default logging configuration.

type MidnightConfig added in v0.55.0

type MidnightConfig struct {
	Port uint   `yaml:"port" envconfig:"DINGO_MIDNIGHT_PORT"`
	Host string `yaml:"host" envconfig:"DINGO_MIDNIGHT_HOST"`

	CNightPolicyID              string `yaml:"cnightPolicyId"`
	CNightAssetName             string `yaml:"cnightAssetName"`
	MappingValidatorAddress     string `yaml:"mappingValidatorAddress"`
	AuthTokenPolicyID           string `yaml:"authTokenPolicyId"`
	AuthTokenAssetName          string `yaml:"authTokenAssetName"`
	CommitteeCandidateAddress   string `yaml:"committeeCandidateAddress"`
	TechnicalCommitteeAddress   string `yaml:"technicalCommitteeAddress"`
	TechnicalCommitteePolicyID  string `yaml:"technicalCommitteePolicyId"`
	CouncilAddress              string `yaml:"councilAddress"`
	CouncilPolicyID             string `yaml:"councilPolicyId"`
	PermissionedCandidatePolicy string `yaml:"permissionedCandidatePolicy"`
}

MidnightConfig holds configuration for the Midnight indexer and its optional gRPC API surface. Indexing is only active when Dingo is running in API storage mode; Port 0 disables only the gRPC server.

func DefaultMidnightConfig added in v0.55.0

func DefaultMidnightConfig() MidnightConfig

DefaultMidnightConfig returns the default Midnight indexer settings.

type MithrilConfig added in v0.22.0

type MithrilConfig struct {
	// Enabled controls whether Mithril integration is available.
	Enabled bool `yaml:"enabled"            envconfig:"DINGO_MITHRIL_ENABLED"`
	// AggregatorURL overrides the default aggregator URL for the network.
	// If empty, the URL is auto-detected from the configured network.
	AggregatorURL string `yaml:"aggregatorUrl"      envconfig:"DINGO_MITHRIL_AGGREGATOR_URL"`
	// Backend selects the Mithril artifact backend: "v2" (default) uses
	// incremental Cardano database artifacts; "v1" uses the legacy full
	// snapshot archives, which upstream Mithril is phasing out.
	Backend string `yaml:"backend"            envconfig:"DINGO_MITHRIL_BACKEND"`
	// DownloadDir is the directory where snapshot archives are downloaded.
	// If empty, a randomized temporary directory is created automatically.
	DownloadDir string `yaml:"downloadDir"        envconfig:"DINGO_MITHRIL_DOWNLOAD_DIR"`
	// DownloadIdleTimeout is the maximum idle time to wait for snapshot
	// response headers or body bytes before retrying. Empty uses the
	// downloader default; a negative duration disables idle detection.
	DownloadIdleTimeout string `yaml:"downloadIdleTimeout" envconfig:"DINGO_MITHRIL_DOWNLOAD_IDLE_TIMEOUT"`
	// DownloadMaxIdleRetries is the number of consecutive idle retries
	// allowed without additional bytes. Zero uses the downloader default.
	DownloadMaxIdleRetries int `yaml:"downloadMaxIdleRetries" envconfig:"DINGO_MITHRIL_DOWNLOAD_MAX_IDLE_RETRIES"`
	// CleanupAfterLoad controls whether temporary files are removed
	// after the ImmutableDB has been loaded.
	CleanupAfterLoad bool `yaml:"cleanupAfterLoad"   envconfig:"DINGO_MITHRIL_CLEANUP"`
	// VerifyCertificates enables certificate chain verification
	// during bootstrap. When true, the bootstrap process walks
	// the Mithril certificate chain from the snapshot back to the
	// genesis certificate to verify the chain is unbroken.
	VerifyCertificates bool `yaml:"verifyCertificates" envconfig:"DINGO_MITHRIL_VERIFY_CERTS"`
}

MithrilConfig holds configuration for Mithril snapshot bootstrapping.

type OffchainMetadataConfig added in v0.54.0

type OffchainMetadataConfig struct {
	// Interval controls how often the fetcher discovers and fetches due rows.
	Interval time.Duration `yaml:"interval" envconfig:"DINGO_OFFCHAIN_METADATA_INTERVAL"`
	// RequestTimeout limits each HTTP(S) metadata request.
	RequestTimeout time.Duration `yaml:"requestTimeout" envconfig:"DINGO_OFFCHAIN_METADATA_REQUEST_TIMEOUT"`
	// UserAgent is sent with outbound metadata requests.
	UserAgent string `yaml:"userAgent" envconfig:"DINGO_OFFCHAIN_METADATA_USER_AGENT"`
	// IPFSGatewayURL is the gateway prefix used for ipfs:// URLs.
	IPFSGatewayURL string `yaml:"ipfsGatewayUrl" envconfig:"DINGO_OFFCHAIN_METADATA_IPFS_GATEWAY_URL"`
	// BatchSize bounds the number of due rows claimed per fetcher pass.
	BatchSize int `yaml:"batchSize" envconfig:"DINGO_OFFCHAIN_METADATA_BATCH_SIZE"`
	// MaxBytes bounds the response body bytes read from each document.
	MaxBytes int64 `yaml:"maxBytes" envconfig:"DINGO_OFFCHAIN_METADATA_MAX_BYTES"`
	// AllowPrivateAddresses permits fetching private, loopback, and link-local
	// addresses. Leave false for the default SSRF guard.
	AllowPrivateAddresses bool `yaml:"allowPrivateAddresses" envconfig:"DINGO_OFFCHAIN_METADATA_ALLOW_PRIVATE_ADDRESSES"`
}

OffchainMetadataConfig holds API-mode off-chain metadata fetcher settings. Zero values fall back to the fetcher's internal defaults.

type RunMode added in v0.21.0

type RunMode string

RunMode represents the operational mode of the dingo node

const (
	RunModeServe RunMode = "serve" // Full node with network connectivity (default)
	RunModeLoad  RunMode = "load"  // Batch import from ImmutableDB
	RunModeDev   RunMode = "dev"   // Development mode (isolated, no outbound)
	RunModeLeios RunMode = "leios" // Full node with experimental Leios capabilities
)

func (RunMode) IsDevMode added in v0.21.0

func (m RunMode) IsDevMode() bool

IsDevMode returns true if the mode enables development behaviors (forge blocks, disable outbound, skip topology)

func (RunMode) Valid added in v0.21.0

func (m RunMode) Valid() bool

Valid returns true if the RunMode is a known valid mode

type StartEra added in v0.51.0

type StartEra string

StartEra controls experimental direct startup in a later ledger era.

const (
	StartEraDefault  StartEra = ""
	StartEraDijkstra StartEra = "dijkstra"
)

func (StartEra) IsDijkstra added in v0.51.0

func (e StartEra) IsDijkstra() bool

func (StartEra) Valid added in v0.51.0

func (e StartEra) Valid() bool

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL