Documentation
¶
Index ¶
- Constants
- Variables
- func ApplyFlags(cmd *cobra.Command, cfg *Config) error
- func GetTopologyConfig() *topology.TopologyConfig
- func LoadTopologyConfig() (*topology.TopologyConfig, error)
- func LoadTopologyConfigFor(cfg *Config) (*topology.TopologyConfig, error)
- func RegisterFlags(cmd *cobra.Command)
- func ValidateNetworkName(network string) error
- func WithContext(ctx context.Context, cfg *Config) context.Context
- type CacheConfig
- type ChainsyncConfig
- type Config
- type GenesisBootstrapConfig
- type HistoryExpiryConfig
- type LoggingConfig
- type MidnightConfig
- type MithrilConfig
- type OffchainMetadataConfig
- type RunMode
- type StartEra
Constants ¶
const ( DefaultBlobPlugin = "badger" DefaultMetadataPlugin = "sqlite" DefaultEvictionWatermark = 0.90 DefaultRejectionWatermark = 0.95 DefaultForgeSyncToleranceSlots = 100 DefaultForgeStaleGapThresholdSlots = 1000 DefaultMempoolCapacityPraos = 1048576 // 1 MiB DefaultMempoolCapacityLeios = 26214400 // 25 MiB )
const DefaultLedgerCatchupTimeout = "30m"
DefaultLedgerCatchupTimeout is the maximum time LoadWithDB will wait for the ledger to process all blocks before returning an error.
const DefaultShutdownTimeout = "30s"
Variables ¶
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
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
RegisterFlags registers persistent CLI flags for every Config field.
func ValidateNetworkName ¶ added in v0.22.0
ValidateNetworkName checks that a network name contains only permitted characters and returns an error if it does not.
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 LoadConfig ¶
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 )
type StartEra ¶ added in v0.51.0
type StartEra string
StartEra controls experimental direct startup in a later ledger era.