config

package
v0.0.1 Latest Latest
Warning

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

Go to latest
Published: Nov 7, 2024 License: GPL-3.0 Imports: 4 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func SanityCheckNodesConfig

func SanityCheckNodesConfig(
	nodesSetup NodesSetupHandler,
	cfg EnableEpochs,
) error

SanityCheckNodesConfig checks if the nodes limit setup is set correctly

Types

type APIPackageConfig

type APIPackageConfig struct {
	Routes []RouteConfig
}

APIPackageConfig holds the configuration for the routes of each package

type ActivationRoundByName

type ActivationRoundByName struct {
	Round   string
	Options []string
}

ActivationRoundByName contains information related to a round activation event

type AntifloodConfig

type AntifloodConfig struct {
	Enabled                             bool
	NumConcurrentResolverJobs           int32
	NumConcurrentResolvingTrieNodesJobs int32
	OutOfSpecs                          FloodPreventerConfig
	FastReacting                        FloodPreventerConfig
	SlowReacting                        FloodPreventerConfig
	PeerMaxOutput                       AntifloodLimitsConfig
	Cache                               CacheConfig
	Topic                               TopicAntifloodConfig
	TxAccumulator                       TxAccumulatorConfig
}

AntifloodConfig will hold all p2p antiflood parameters

type AntifloodDebugConfig

type AntifloodDebugConfig struct {
	Enabled                    bool
	CacheSize                  int
	IntervalAutoPrintInSeconds int
}

AntifloodDebugConfig will hold the antiflood debug configuration

type AntifloodLimitsConfig

type AntifloodLimitsConfig struct {
	BaseMessagesPerInterval uint32
	TotalSizePerInterval    uint64
	IncreaseFactor          IncreaseFactorConfig
}

AntifloodLimitsConfig will hold the maximum antiflood limits in both number of messages and total size of the messages

type ApiLoggingConfig

type ApiLoggingConfig struct {
	LoggingEnabled          bool
	ThresholdInMicroSeconds int
}

ApiLoggingConfig holds the configuration related to API requests logging

type ApiRoutesConfig

type ApiRoutesConfig struct {
	Logging     ApiLoggingConfig
	APIPackages map[string]APIPackageConfig
}

ApiRoutesConfig holds the configuration related to Rest API routes

type BlackListConfig

type BlackListConfig struct {
	ThresholdNumMessagesPerInterval uint32
	ThresholdSizePerInterval        uint64
	NumFloodingRounds               uint32
	PeerBanDurationInSeconds        uint32
}

BlackListConfig will hold the p2p peer black list threshold values

type BlockProcessingCutoffConfig

type BlockProcessingCutoffConfig struct {
	Enabled       bool
	Mode          string
	CutoffTrigger string
	Value         uint64
}

BlockProcessingCutoffConfig holds the configuration for the block processing cutoff

type BlockSizeThrottleConfig

type BlockSizeThrottleConfig struct {
	MinSizeInBytes uint32
	MaxSizeInBytes uint32
}

BlockSizeThrottleConfig will hold the configuration for adaptive block size throttle

type BuiltInFunctionsConfig

type BuiltInFunctionsConfig struct {
	AutomaticCrawlerAddresses     []string
	MaxNumAddressesInTransferRole uint32
	DNSV2Addresses                []string
}

BuiltInFunctionsConfig holds the configuration for the built-in functions

type CacheConfig

type CacheConfig struct {
	Name                 string
	Type                 string
	Capacity             uint32
	SizePerSender        uint32
	SizeInBytes          uint64
	SizeInBytesPerSender uint32
	Shards               uint32
}

CacheConfig will map the cache configuration

type Config

type Config struct {
	MiniBlocksStorage               StorageConfig
	PeerBlockBodyStorage            StorageConfig
	BlockHeaderStorage              StorageConfig
	TxStorage                       StorageConfig
	UnsignedTransactionStorage      StorageConfig
	RewardTxStorage                 StorageConfig
	ShardHdrNonceHashStorage        StorageConfig
	MetaHdrNonceHashStorage         StorageConfig
	StatusMetricsStorage            StorageConfig
	ReceiptsStorage                 StorageConfig
	ScheduledSCRsStorage            StorageConfig
	SmartContractsStorage           StorageConfig
	SmartContractsStorageForSCQuery StorageConfig
	TrieEpochRootHashStorage        StorageConfig
	SmartContractsStorageSimulate   StorageConfig

	BootstrapStorage StorageConfig
	MetaBlockStorage StorageConfig

	AccountsTrieStorage      StorageConfig
	PeerAccountsTrieStorage  StorageConfig
	EvictionWaitingList      EvictionWaitingListConfig
	StateTriesConfig         StateTriesConfig
	TrieStorageManagerConfig TrieStorageManagerConfig
	BadBlocksCache           CacheConfig

	TxBlockBodyDataPool         CacheConfig
	PeerBlockBodyDataPool       CacheConfig
	TxDataPool                  CacheConfig
	UnsignedTransactionDataPool CacheConfig
	RewardTransactionDataPool   CacheConfig
	TrieNodesChunksDataPool     CacheConfig
	WhiteListPool               CacheConfig
	WhiteListerVerifiedTxs      CacheConfig
	SmartContractDataPool       CacheConfig
	ValidatorInfoPool           CacheConfig
	TrieSyncStorage             TrieSyncStorageConfig
	EpochStartConfig            EpochStartConfig
	AddressPubkeyConverter      PubkeyConfig
	ValidatorPubkeyConverter    PubkeyConfig
	Hasher                      TypeConfig
	MultisigHasher              TypeConfig
	Marshalizer                 MarshalizerConfig
	VmMarshalizer               TypeConfig
	TxSignMarshalizer           TypeConfig
	TxSignHasher                TypeConfig

	PublicKeyShardId      CacheConfig
	PublicKeyPeerId       CacheConfig
	PeerIdShardId         CacheConfig
	PublicKeyPIDSignature CacheConfig
	PeerHonesty           CacheConfig

	Antiflood            AntifloodConfig
	WebServerAntiflood   WebServerAntifloodConfig
	ResourceStats        ResourceStatsConfig
	HeartbeatV2          HeartbeatV2Config
	ValidatorStatistics  ValidatorStatisticsConfig
	GeneralSettings      GeneralSettingsConfig
	Consensus            ConsensusConfig
	StoragePruning       StoragePruningConfig
	LogsAndEvents        LogsAndEventsConfig
	HardwareRequirements HardwareRequirementsConfig

	NTPConfig               NTPConfig
	HeadersPoolConfig       HeadersPoolConfig
	BlockSizeThrottleConfig BlockSizeThrottleConfig
	VirtualMachine          VirtualMachineServicesConfig
	BuiltInFunctions        BuiltInFunctionsConfig

	Hardfork HardforkConfig
	Debug    DebugConfig
	Health   HealthServiceConfig

	SoftwareVersionConfig SoftwareVersionConfig
	GatewayMetricsConfig  GatewayMetricsConfig
	DbLookupExtensions    DbLookupExtensionsConfig
	Versions              VersionsConfig
	Logs                  LogsConfig
	TrieSync              TrieSyncConfig
	Requesters            RequesterConfig
	VMOutputCacher        CacheConfig

	PeersRatingConfig   PeersRatingConfig
	PoolsCleanersConfig PoolsCleanersConfig
	Redundancy          RedundancyConfig
}

Config will hold the entire application configuration parameters

type Configs

type Configs struct {
	GeneralConfig            *Config
	ApiRoutesConfig          *ApiRoutesConfig
	EconomicsConfig          *EconomicsConfig
	SystemSCConfig           *SystemSmartContractsConfig
	RatingsConfig            *RatingsConfig
	PreferencesConfig        *Preferences
	ExternalConfig           *ExternalConfig
	MainP2pConfig            *p2pConfig.P2PConfig
	FullArchiveP2pConfig     *p2pConfig.P2PConfig
	FlagsConfig              *ContextFlagsConfig
	ImportDbConfig           *ImportDbConfig
	ConfigurationPathsHolder *ConfigurationPathsHolder
	EpochConfig              *EpochConfig
	RoundConfig              *RoundConfig
}

Configs is a holder for the node configuration parameters

type ConfigurationPathsHolder

type ConfigurationPathsHolder struct {
	MainConfig               string
	ApiRoutes                string
	Economics                string
	SystemSC                 string
	Ratings                  string
	Preferences              string
	External                 string
	MainP2p                  string
	FullArchiveP2p           string
	GasScheduleDirectoryName string
	Nodes                    string
	Genesis                  string
	SmartContracts           string
	ValidatorKey             string
	AllValidatorKeys         string
	Epoch                    string
	RoundActivation          string
	P2pKey                   string
}

ConfigurationPathsHolder holds all configuration filenames and configuration paths used to start the node

type ConsensusConfig

type ConsensusConfig struct {
	Type string
}

ConsensusConfig holds the consensus configuration parameters

type ContextFlagsConfig

type ContextFlagsConfig struct {
	WorkingDir                   string
	DbDir                        string
	LogsDir                      string
	EnableGops                   bool
	SaveLogFile                  bool
	EnableLogCorrelation         bool
	EnableLogName                bool
	LogLevel                     string
	DisableAnsiColor             bool
	CleanupStorage               bool
	UseHealthService             bool
	SessionInfoFileOutput        string
	BootstrapRoundIndex          uint64
	RestApiInterface             string
	EnablePprof                  bool
	UseLogView                   bool
	ValidatorKeyIndex            int
	EnableRestAPIServerDebugMode bool
	BaseVersion                  string
	Version                      string
	ForceStartFromNetwork        bool
	DisableConsensusWatchdog     bool
	SerializeSnapshots           bool
	OperationMode                string
	RepopulateTokensSupplies     bool
	P2PPrometheusMetricsEnabled  bool
}

ContextFlagsConfig will keep the values for the cli.Context flags

type CovalentConfig

type CovalentConfig struct {
	Enabled              bool
	URL                  string
	RouteSendData        string
	RouteAcknowledgeData string
}

CovalentConfig will hold the configurations for covalent indexer

type DBConfig

type DBConfig struct {
	FilePath            string
	Type                string
	BatchDelaySeconds   int
	MaxBatchSize        int
	MaxOpenFiles        int
	UseTmpAsFilePath    bool
	ShardIDProviderType string
	NumShards           int32
}

DBConfig will map the database configuration

type DCDTSystemSCConfig

type DCDTSystemSCConfig struct {
	BaseIssuingCost string
	OwnerAddress    string
}

DCDTSystemSCConfig defines a set of constant to initialize the dcdt system smart contract

type DbLookupExtensionsConfig

type DbLookupExtensionsConfig struct {
	Enabled                            bool
	DbLookupMaxActivePersisters        uint32
	MiniblocksMetadataStorageConfig    StorageConfig
	MiniblockHashByTxHashStorageConfig StorageConfig
	EpochByHashStorageConfig           StorageConfig
	ResultsHashesByTxHashStorageConfig StorageConfig
	DCDTSuppliesStorageConfig          StorageConfig
	RoundHashStorageConfig             StorageConfig
}

DbLookupExtensionsConfig holds the configuration for the db lookup extensions

type DebugConfig

type DebugConfig struct {
	InterceptorResolver InterceptorResolverDebugConfig
	Antiflood           AntifloodDebugConfig
	ShuffleOut          ShuffleOutDebugConfig
	EpochStart          EpochStartDebugConfig
	Process             ProcessDebugConfig
}

DebugConfig will hold debugging configuration

type DelegationManagerSystemSCConfig

type DelegationManagerSystemSCConfig struct {
	MinCreationDeposit  string
	MinStakeAmount      string
	ConfigChangeAddress string
}

DelegationManagerSystemSCConfig defines a set of constants to initialize the delegation manager system smart contract

type DelegationSystemSCConfig

type DelegationSystemSCConfig struct {
	MinServiceFee               uint64
	MaxServiceFee               uint64
	AddTokensWhitelistedAddress string
}

DelegationSystemSCConfig defines a set of constants to initialize the delegation system smart contract

type EconomicsConfig

type EconomicsConfig struct {
	GlobalSettings  GlobalSettings
	RewardsSettings RewardsSettings
	FeeSettings     FeeSettings
}

EconomicsConfig will hold economics config

type ElasticSearchConfig

type ElasticSearchConfig struct {
	Enabled                   bool
	IndexerCacheSize          int
	BulkRequestMaxSizeInBytes int
	URL                       string
	UseKibana                 bool
	Username                  string
	Password                  string
	EnabledIndexes            []string
}

ElasticSearchConfig will hold the configuration for the elastic search

type EnableEpochs

type EnableEpochs struct {
	SCDeployEnableEpoch                                      uint32
	BuiltInFunctionsEnableEpoch                              uint32
	RelayedTransactionsEnableEpoch                           uint32
	PenalizedTooMuchGasEnableEpoch                           uint32
	SwitchJailWaitingEnableEpoch                             uint32
	SwitchHysteresisForMinNodesEnableEpoch                   uint32
	BelowSignedThresholdEnableEpoch                          uint32
	TransactionSignedWithTxHashEnableEpoch                   uint32
	MetaProtectionEnableEpoch                                uint32
	AheadOfTimeGasUsageEnableEpoch                           uint32
	GasPriceModifierEnableEpoch                              uint32
	RepairCallbackEnableEpoch                                uint32
	MaxNodesChangeEnableEpoch                                []MaxNodesChangeConfig
	BlockGasAndFeesReCheckEnableEpoch                        uint32
	StakingV2EnableEpoch                                     uint32
	StakeEnableEpoch                                         uint32
	DoubleKeyProtectionEnableEpoch                           uint32
	DCDTEnableEpoch                                          uint32
	GovernanceEnableEpoch                                    uint32
	DelegationManagerEnableEpoch                             uint32
	DelegationSmartContractEnableEpoch                       uint32
	CorrectLastUnjailedEnableEpoch                           uint32
	BalanceWaitingListsEnableEpoch                           uint32
	ReturnDataToLastTransferEnableEpoch                      uint32
	SenderInOutTransferEnableEpoch                           uint32
	RelayedTransactionsV2EnableEpoch                         uint32
	UnbondTokensV2EnableEpoch                                uint32
	SaveJailedAlwaysEnableEpoch                              uint32
	ValidatorToDelegationEnableEpoch                         uint32
	ReDelegateBelowMinCheckEnableEpoch                       uint32
	IncrementSCRNonceInMultiTransferEnableEpoch              uint32
	ScheduledMiniBlocksEnableEpoch                           uint32
	DCDTMultiTransferEnableEpoch                             uint32
	GlobalMintBurnDisableEpoch                               uint32
	DCDTTransferRoleEnableEpoch                              uint32
	ComputeRewardCheckpointEnableEpoch                       uint32
	SCRSizeInvariantCheckEnableEpoch                         uint32
	BackwardCompSaveKeyValueEnableEpoch                      uint32
	DCDTNFTCreateOnMultiShardEnableEpoch                     uint32
	MetaDCDTSetEnableEpoch                                   uint32
	AddTokensToDelegationEnableEpoch                         uint32
	MultiDCDTTransferFixOnCallBackOnEnableEpoch              uint32
	OptimizeGasUsedInCrossMiniBlocksEnableEpoch              uint32
	CorrectFirstQueuedEpoch                                  uint32
	CorrectJailedNotUnstakedEmptyQueueEpoch                  uint32
	FixOOGReturnCodeEnableEpoch                              uint32
	RemoveNonUpdatedStorageEnableEpoch                       uint32
	DeleteDelegatorAfterClaimRewardsEnableEpoch              uint32
	OptimizeNFTStoreEnableEpoch                              uint32
	CreateNFTThroughExecByCallerEnableEpoch                  uint32
	StopDecreasingValidatorRatingWhenStuckEnableEpoch        uint32
	FrontRunningProtectionEnableEpoch                        uint32
	IsPayableBySCEnableEpoch                                 uint32
	CleanUpInformativeSCRsEnableEpoch                        uint32
	StorageAPICostOptimizationEnableEpoch                    uint32
	TransformToMultiShardCreateEnableEpoch                   uint32
	DCDTRegisterAndSetAllRolesEnableEpoch                    uint32
	DoNotReturnOldBlockInBlockchainHookEnableEpoch           uint32
	AddFailedRelayedTxToInvalidMBsDisableEpoch               uint32
	SCRSizeInvariantOnBuiltInResultEnableEpoch               uint32
	CheckCorrectTokenIDForTransferRoleEnableEpoch            uint32
	DisableExecByCallerEnableEpoch                           uint32
	FailExecutionOnEveryAPIErrorEnableEpoch                  uint32
	ManagedCryptoAPIsEnableEpoch                             uint32
	RefactorContextEnableEpoch                               uint32
	CheckFunctionArgumentEnableEpoch                         uint32
	CheckExecuteOnReadOnlyEnableEpoch                        uint32
	MiniBlockPartialExecutionEnableEpoch                     uint32
	DCDTMetadataContinuousCleanupEnableEpoch                 uint32
	FixAsyncCallBackArgsListEnableEpoch                      uint32
	FixOldTokenLiquidityEnableEpoch                          uint32
	RuntimeMemStoreLimitEnableEpoch                          uint32
	RuntimeCodeSizeFixEnableEpoch                            uint32
	SetSenderInEeiOutputTransferEnableEpoch                  uint32
	RefactorPeersMiniBlocksEnableEpoch                       uint32
	SCProcessorV2EnableEpoch                                 uint32
	MaxBlockchainHookCountersEnableEpoch                     uint32
	WipeSingleNFTLiquidityDecreaseEnableEpoch                uint32
	AlwaysSaveTokenMetaDataEnableEpoch                       uint32
	SetGuardianEnableEpoch                                   uint32
	ScToScLogEventEnableEpoch                                uint32
	RelayedNonceFixEnableEpoch                               uint32
	DeterministicSortOnValidatorsInfoEnableEpoch             uint32
	KeepExecOrderOnCreatedSCRsEnableEpoch                    uint32
	MultiClaimOnDelegationEnableEpoch                        uint32
	ChangeUsernameEnableEpoch                                uint32
	AutoBalanceDataTriesEnableEpoch                          uint32
	MigrateDataTrieEnableEpoch                               uint32
	ConsistentTokensValuesLengthCheckEnableEpoch             uint32
	FixDelegationChangeOwnerOnAccountEnableEpoch             uint32
	DynamicGasCostForDataTrieStorageLoadEnableEpoch          uint32
	NFTStopCreateEnableEpoch                                 uint32
	ChangeOwnerAddressCrossShardThroughSCEnableEpoch         uint32
	FixGasRemainingForSaveKeyValueBuiltinFunctionEnableEpoch uint32
	CurrentRandomnessOnSortingEnableEpoch                    uint32
	StakeLimitsEnableEpoch                                   uint32
	StakingV4Step1EnableEpoch                                uint32
	StakingV4Step2EnableEpoch                                uint32
	StakingV4Step3EnableEpoch                                uint32
	CleanupAuctionOnLowWaitingListEnableEpoch                uint32
	AlwaysMergeContextsInEEIEnableEpoch                      uint32
	UseGasBoundedShouldFailExecutionEnableEpoch              uint32
	BLSMultiSignerEnableEpoch                                []MultiSignerConfig
}

EnableEpochs will hold the configuration for activation epochs

type EndpointsThrottlersConfig

type EndpointsThrottlersConfig struct {
	Endpoint         string
	MaxNumGoRoutines int32
}

EndpointsThrottlersConfig holds a pair of an endpoint and its maximum number of simultaneous go routines

type EpochConfig

type EpochConfig struct {
	EnableEpochs EnableEpochs
	GasSchedule  GasScheduleConfig
}

EpochConfig will hold epoch configurations

type EpochRewardSettings

type EpochRewardSettings struct {
	LeaderPercentage                 float64
	DeveloperPercentage              float64
	ProtocolSustainabilityPercentage float64
	ProtocolSustainabilityAddress    string
	TopUpGradientPoint               string
	TopUpFactor                      float64
	EpochEnable                      uint32
}

EpochRewardSettings holds the economics rewards settings for a specific epoch

type EpochStartConfig

type EpochStartConfig struct {
	MinRoundsBetweenEpochs                      int64
	RoundsPerEpoch                              int64
	MinShuffledOutRestartThreshold              float64
	MaxShuffledOutRestartThreshold              float64
	MinNumConnectedPeersToStart                 int
	MinNumOfPeersToConsiderBlockValid           int
	ExtraDelayForRequestBlockInfoInMilliseconds int
	GenesisEpoch                                uint32
}

EpochStartConfig will hold the configuration of EpochStart settings

type EpochStartDebugConfig

type EpochStartDebugConfig struct {
	GoRoutineAnalyserEnabled     bool
	ProcessDataTrieOnCommitEpoch bool
}

EpochStartDebugConfig will hold the epoch debug configuration

type EventNotifierConfig

type EventNotifierConfig struct {
	Enabled           bool
	UseAuthorization  bool
	ProxyUrl          string
	Username          string
	Password          string
	RequestTimeoutSec int
	MarshallerType    string
}

EventNotifierConfig will hold the configuration for the events notifier driver

type EvictionWaitingListConfig

type EvictionWaitingListConfig struct {
	RootHashesSize uint
	HashesSize     uint
	DB             DBConfig
}

EvictionWaitingListConfig will hold the configuration for the EvictionWaitingList

type ExternalConfig

type ExternalConfig struct {
	ElasticSearchConnector ElasticSearchConfig
	EventNotifierConnector EventNotifierConfig
	HostDriversConfig      []HostDriversConfig
}

ExternalConfig will hold the configurations for external tools, such as Explorer or Elasticsearch

type FacadeConfig

type FacadeConfig struct {
	RestApiInterface            string
	PprofEnabled                bool
	P2PPrometheusMetricsEnabled bool
}

FacadeConfig will hold different configuration option that will be passed to the node facade

type FeeSettings

type FeeSettings struct {
	GasLimitSettings       []GasLimitSetting
	GasPerDataByte         string
	MinGasPrice            string
	GasPriceModifier       float64
	MaxGasPriceSetGuardian string
}

FeeSettings will hold economics fee settings

type FloodPreventerConfig

type FloodPreventerConfig struct {
	IntervalInSeconds uint32
	ReservedPercent   float32
	PeerMaxInput      AntifloodLimitsConfig
	BlackList         BlackListConfig
}

FloodPreventerConfig will hold all flood preventer parameters

type GasLimitSetting

type GasLimitSetting struct {
	EnableEpoch                 uint32
	MaxGasLimitPerBlock         string
	MaxGasLimitPerMiniBlock     string
	MaxGasLimitPerMetaBlock     string
	MaxGasLimitPerMetaMiniBlock string
	MaxGasLimitPerTx            string
	MinGasLimit                 string
	ExtraGasLimitGuardedTx      string
}

GasLimitSetting will hold gas limit setting for a specific epoch

type GasScheduleByEpochs

type GasScheduleByEpochs struct {
	StartEpoch uint32
	FileName   string
}

GasScheduleByEpochs represents a gas schedule toml entry that will be applied from the provided epoch

type GasScheduleConfig

type GasScheduleConfig struct {
	GasScheduleByEpochs []GasScheduleByEpochs
}

GasScheduleConfig represents the versioning config area for the gas schedule toml

type GatewayMetricsConfig

type GatewayMetricsConfig struct {
	URL string
}

GatewayMetricsConfig will hold the configuration for gateway endpoint configuration

type General

type General struct {
	StartRating           uint32
	MaxRating             uint32
	MinRating             uint32
	SignedBlocksThreshold float32
	SelectionChances      []*SelectionChance
}

General will hold ratings settings both for metachain and shardChain

type GeneralSettingsConfig

type GeneralSettingsConfig struct {
	StatusPollingIntervalSec             int
	MaxComputableRounds                  uint64
	MaxConsecutiveRoundsOfRatingDecrease uint64
	StartInEpochEnabled                  bool
	ChainID                              string
	MinTransactionVersion                uint32
	GenesisString                        string
	GenesisMaxNumberOfShards             uint32
	SyncProcessTimeInMillis              uint32
	SetGuardianEpochsDelay               uint32
}

GeneralSettingsConfig will hold the general settings for a node

type GlobalSettings

type GlobalSettings struct {
	GenesisTotalSupply          string
	MinimumInflation            float64
	YearSettings                []*YearSetting
	Denomination                int
	GenesisMintingSenderAddress string
}

GlobalSettings will hold general economic values

type GovernanceSystemSCConfig

type GovernanceSystemSCConfig struct {
	V1           GovernanceSystemSCConfigV1
	Active       GovernanceSystemSCConfigActive
	OwnerAddress string
}

GovernanceSystemSCConfig defines the set of constants to initialize the governance system smart contract

type GovernanceSystemSCConfigActive

type GovernanceSystemSCConfigActive struct {
	ProposalCost     string
	LostProposalFee  string
	MinQuorum        float64
	MinPassThreshold float64
	MinVetoThreshold float64
}

GovernanceSystemSCConfigActive defines the set of configuration values used by the governance system smart contract once it activates

type GovernanceSystemSCConfigV1

type GovernanceSystemSCConfigV1 struct {
	NumNodes         int64
	ProposalCost     string
	MinQuorum        int32
	MinPassThreshold int32
	MinVetoThreshold int32
}

GovernanceSystemSCConfigV1 holds the initial set of values that were used to initialise the governance system smart contract at genesis time

type HardforkConfig

type HardforkConfig struct {
	ExportStateStorageConfig     StorageConfig
	ExportKeysStorageConfig      StorageConfig
	ExportTriesStorageConfig     StorageConfig
	ImportStateStorageConfig     StorageConfig
	ImportKeysStorageConfig      StorageConfig
	PublicKeyToListenFrom        string
	ImportFolder                 string
	GenesisTime                  int64
	StartRound                   uint64
	StartNonce                   uint64
	CloseAfterExportInMinutes    uint32
	StartEpoch                   uint32
	ValidatorGracePeriodInEpochs uint32
	EnableTrigger                bool
	EnableTriggerFromP2P         bool
	MustImport                   bool
	AfterHardFork                bool
}

HardforkConfig holds the configuration for the hardfork trigger

type HardwareRequirementsConfig

type HardwareRequirementsConfig struct {
	CPUFlags []string
}

HardwareRequirementsConfig will hold the hardware requirements config

type HeadersPoolConfig

type HeadersPoolConfig struct {
	MaxHeadersPerShard            int
	NumElementsToRemoveOnEviction int
}

HeadersPoolConfig will map the headers cache configuration

type HealthServiceConfig

type HealthServiceConfig struct {
	IntervalVerifyMemoryInSeconds             int
	IntervalDiagnoseComponentsInSeconds       int
	IntervalDiagnoseComponentsDeeplyInSeconds int
	MemoryUsageToCreateProfiles               int
	NumMemoryUsageRecordsToKeep               int
	FolderPath                                string
}

HealthServiceConfig will hold health service (monitoring) configuration

type HeartbeatV2Config

type HeartbeatV2Config struct {
	PeerAuthenticationTimeBetweenSendsInSec          int64
	PeerAuthenticationTimeBetweenSendsWhenErrorInSec int64
	PeerAuthenticationTimeThresholdBetweenSends      float64
	HeartbeatTimeBetweenSendsInSec                   int64
	HeartbeatTimeBetweenSendsDuringBootstrapInSec    int64
	HeartbeatTimeBetweenSendsWhenErrorInSec          int64
	HeartbeatTimeThresholdBetweenSends               float64
	HeartbeatExpiryTimespanInSec                     int64
	MinPeersThreshold                                float32
	DelayBetweenPeerAuthenticationRequestsInSec      int64
	PeerAuthenticationMaxTimeoutForRequestsInSec     int64
	PeerShardTimeBetweenSendsInSec                   int64
	PeerShardTimeThresholdBetweenSends               float64
	MaxMissingKeysInRequest                          uint32
	MaxDurationPeerUnresponsiveInSec                 int64
	HideInactiveValidatorIntervalInSec               int64
	HeartbeatPool                                    CacheConfig
	HardforkTimeBetweenSendsInSec                    int64
	TimeBetweenConnectionsMetricsUpdateInSec         int64
	TimeToReadDirectConnectionsInSec                 int64
	PeerAuthenticationTimeBetweenChecksInSec         int64
}

HeartbeatV2Config will hold the configuration for heartbeat v2

type HostDriversConfig

type HostDriversConfig struct {
	Enabled                    bool
	WithAcknowledge            bool
	BlockingAckOnError         bool
	DropMessagesIfNoConnection bool
	URL                        string
	MarshallerType             string
	Mode                       string
	RetryDurationInSec         int
	AcknowledgeTimeoutInSec    int
	Version                    uint32
}

HostDriversConfig will hold the configuration for WebSocket driver

type ImportDbConfig

type ImportDbConfig struct {
	IsImportDBMode                bool
	ImportDBTargetShardID         uint32
	ImportDBWorkingDir            string
	ImportDbNoSigCheckFlag        bool
	ImportDbSaveTrieEpochRootHash bool
}

ImportDbConfig will hold the import-db parameters

type IncreaseFactorConfig

type IncreaseFactorConfig struct {
	Threshold uint32
	Factor    float32
}

IncreaseFactorConfig defines the configurations used to increase the set values of a flood preventer

type InterceptorResolverDebugConfig

type InterceptorResolverDebugConfig struct {
	Enabled                    bool
	EnablePrint                bool
	CacheSize                  int
	IntervalAutoPrintInSeconds int
	NumRequestsThreshold       int
	NumResolveFailureThreshold int
	DebugLineExpiration        int
}

InterceptorResolverDebugConfig will hold the interceptor-resolver debug configuration

type LogsAndEventsConfig

type LogsAndEventsConfig struct {
	SaveInStorageEnabled bool
	TxLogsStorage        StorageConfig
}

LogsAndEventsConfig hold the configuration for the logs and events

type LogsConfig

type LogsConfig struct {
	LogFileLifeSpanInSec int
	LogFileLifeSpanInMB  int
}

LogsConfig will hold settings related to the logging sub-system

type MarshalizerConfig

type MarshalizerConfig struct {
	Type string
	// TODO check if we still need this
	SizeCheckDelta uint32
}

MarshalizerConfig holds the marshalizer related configuration

type MaxNodesChangeConfig

type MaxNodesChangeConfig struct {
	EpochEnable            uint32
	MaxNumNodes            uint32
	NodesToShufflePerShard uint32
}

MaxNodesChangeConfig defines a config change tuple, with a maximum number enabled in a certain epoch number

type MetaChain

type MetaChain struct {
	RatingSteps
}

MetaChain will hold RatingSteps for the Meta

type MultiSignerConfig

type MultiSignerConfig struct {
	EnableEpoch uint32
	Type        string
}

MultiSignerConfig defines a config tuple for a BLS multi-signer that activates in a certain epoch

type NTPConfig

type NTPConfig struct {
	Hosts               []string
	Port                int
	TimeoutMilliseconds int
	SyncPeriodSeconds   int
	Version             int
}

NTPConfig will hold the configuration for NTP queries

type NamedIdentity

type NamedIdentity struct {
	Identity string
	NodeName string
	BLSKeys  []string
}

NamedIdentity will hold the fields which are node named identities

type NodesSetupHandler

type NodesSetupHandler interface {
	MinNumberOfNodesWithHysteresis() uint32
	NumberOfShards() uint32
}

NodesSetupHandler provides nodes setup information

type OverridableConfig

type OverridableConfig struct {
	File  string
	Path  string
	Value string
}

OverridableConfig holds the path and the new value to be updated in the configuration

type PeerHonestyConfig

type PeerHonestyConfig struct {
	DecayCoefficient             float64
	DecayUpdateIntervalInSeconds uint32
	MaxScore                     float64
	MinScore                     float64
	BadPeerThreshold             float64
	UnitValue                    float64
}

PeerHonestyConfig holds the parameters for the peer honesty handler

type PeersRatingConfig

type PeersRatingConfig struct {
	TopRatedCacheCapacity int
	BadRatedCacheCapacity int
}

PeersRatingConfig will hold settings related to peers rating

type PoolsCleanersConfig

type PoolsCleanersConfig struct {
	MaxRoundsToKeepUnprocessedMiniBlocks   int64
	MaxRoundsToKeepUnprocessedTransactions int64
}

PoolsCleanersConfig represents the config options to be used by the pools cleaners

type Preferences

type Preferences struct {
	Preferences           PreferencesConfig
	BlockProcessingCutoff BlockProcessingCutoffConfig
	NamedIdentity         []NamedIdentity
}

Preferences will hold the configuration related to node's preferences

type PreferencesConfig

type PreferencesConfig struct {
	DestinationShardAsObserver  string
	NodeDisplayName             string
	Identity                    string
	RedundancyLevel             int64
	PreferredConnections        []string
	ConnectionWatcherType       string
	OverridableConfigTomlValues []OverridableConfig
	FullArchive                 bool
}

PreferencesConfig will hold the fields which are node specific such as the display name

type ProcessDebugConfig

type ProcessDebugConfig struct {
	Enabled                     bool
	GoRoutinesDump              bool
	DebuggingLogLevel           string
	PollingTimeInSeconds        int
	RevertLogLevelTimeInSeconds int
}

ProcessDebugConfig will hold the process debug configuration

type PubkeyConfig

type PubkeyConfig struct {
	Length          int
	Type            string
	SignatureLength int
	Hrp             string
}

PubkeyConfig will map the public key configuration

type QueryVirtualMachineConfig

type QueryVirtualMachineConfig struct {
	VirtualMachineConfig
	NumConcurrentVMs int
}

QueryVirtualMachineConfig holds the configuration for the virtual machine(s) used in query process

type RatingSteps

type RatingSteps struct {
	HoursToMaxRatingFromStartRating uint32
	ProposerValidatorImportance     float32
	ProposerDecreaseFactor          float32
	ValidatorDecreaseFactor         float32
	ConsecutiveMissedBlocksPenalty  float32
}

RatingSteps holds the necessary increases and decreases of the rating steps

type RatingValue

type RatingValue struct {
	Name  string
	Value int32
}

RatingValue will hold different rating options with increase and decrease steps

type RatingsConfig

type RatingsConfig struct {
	General     General
	ShardChain  ShardChain
	MetaChain   MetaChain
	PeerHonesty PeerHonestyConfig
}

RatingsConfig will hold the configuration data needed for the ratings

type RedundancyConfig

type RedundancyConfig struct {
	MaxRoundsOfInactivityAccepted int
}

RedundancyConfig represents the config options to be used when setting the redundancy configuration

type RequesterConfig

type RequesterConfig struct {
	NumCrossShardPeers  uint32
	NumTotalPeers       uint32
	NumFullHistoryPeers uint32
}

RequesterConfig represents the config options to be used when setting up the requester instances

type ResourceStatsConfig

type ResourceStatsConfig struct {
	Enabled              bool
	RefreshIntervalInSec int
}

ResourceStatsConfig will hold all resource stats settings

type RewardsSettings

type RewardsSettings struct {
	RewardsConfigByEpoch []EpochRewardSettings
}

RewardsSettings holds the economics rewards config changes by epoch

type RoundConfig

type RoundConfig struct {
	RoundActivations map[string]ActivationRoundByName
}

RoundConfig contains round activation configurations

type RouteConfig

type RouteConfig struct {
	Name string
	Open bool
}

RouteConfig holds the configuration for a single route

type SelectionChance

type SelectionChance struct {
	MaxThreshold  uint32
	ChancePercent uint32
}

SelectionChance will hold the percentage modifier for up to the specified threshold

type ShardChain

type ShardChain struct {
	RatingSteps
}

ShardChain will hold RatingSteps for the Shard

type ShuffleOutDebugConfig

type ShuffleOutDebugConfig struct {
	CallGCWhenShuffleOut    bool
	ExtraPrintsOnShuffleOut bool
	DoProfileOnShuffleOut   bool
}

ShuffleOutDebugConfig will hold the shuffle out debug configuration

type SoftAuctionConfig

type SoftAuctionConfig struct {
	TopUpStep             string
	MinTopUp              string
	MaxTopUp              string
	MaxNumberOfIterations uint64
}

SoftAuctionConfig represents the config options for soft auction selecting used in staking v4

type SoftwareVersionConfig

type SoftwareVersionConfig struct {
	StableTagLocation        string
	PollingIntervalInMinutes int
}

SoftwareVersionConfig will hold the configuration for software version checker

type StakingSystemSCConfig

type StakingSystemSCConfig struct {
	GenesisNodePrice                     string
	MinStakeValue                        string
	MinUnstakeTokensValue                string
	UnJailValue                          string
	MinStepValue                         string
	UnBondPeriod                         uint64
	UnBondPeriodInEpochs                 uint32
	NumRoundsWithoutBleed                uint64
	MaximumPercentageToBleed             float64
	BleedPercentagePerRound              float64
	MaxNumberOfNodesForStake             uint64
	ActivateBLSPubKeyMessageVerification bool
	StakeLimitPercentage                 float64
	NodeLimitPercentage                  float64
}

StakingSystemSCConfig will hold the staking system smart contract settings

type StateTriesConfig

type StateTriesConfig struct {
	SnapshotsEnabled            bool
	AccountsStatePruningEnabled bool
	PeerStatePruningEnabled     bool
	MaxStateTrieLevelInMemory   uint
	MaxPeerTrieLevelInMemory    uint
	StateStatisticsEnabled      bool
}

StateTriesConfig will hold information about state tries

type StorageConfig

type StorageConfig struct {
	Cache CacheConfig
	DB    DBConfig
}

StorageConfig will map the storage unit configuration

type StoragePruningConfig

type StoragePruningConfig struct {
	Enabled                              bool
	ValidatorCleanOldEpochsData          bool
	ObserverCleanOldEpochsData           bool
	AccountsTrieCleanOldEpochsData       bool
	AccountsTrieSkipRemovalCustomPattern string
	NumEpochsToKeep                      uint64
	NumActivePersisters                  uint64
	FullArchiveNumActivePersisters       uint32
}

StoragePruningConfig will hold settings related to storage pruning

type SystemSmartContractsConfig

type SystemSmartContractsConfig struct {
	DCDTSystemSCConfig              DCDTSystemSCConfig
	GovernanceSystemSCConfig        GovernanceSystemSCConfig
	StakingSystemSCConfig           StakingSystemSCConfig
	DelegationManagerSystemSCConfig DelegationManagerSystemSCConfig
	DelegationSystemSCConfig        DelegationSystemSCConfig
	SoftAuctionConfig               SoftAuctionConfig
}

SystemSmartContractsConfig defines the system smart contract configs

type TopicAntifloodConfig

type TopicAntifloodConfig struct {
	DefaultMaxMessagesPerSec uint32
	MaxMessages              []TopicMaxMessagesConfig
}

TopicAntifloodConfig will hold the maximum values per second to be used in certain topics

type TopicMaxMessagesConfig

type TopicMaxMessagesConfig struct {
	Topic             string
	NumMessagesPerSec uint32
}

TopicMaxMessagesConfig will hold the maximum number of messages/sec per topic value

type TrieStorageManagerConfig

type TrieStorageManagerConfig struct {
	PruningBufferLen      uint32
	SnapshotsBufferLen    uint32
	SnapshotsGoroutineNum uint32
}

TrieStorageManagerConfig will hold config information about trie storage manager

type TrieSyncConfig

type TrieSyncConfig struct {
	NumConcurrentTrieSyncers  int
	MaxHardCapForMissingNodes int
	TrieSyncerVersion         int
	CheckNodesOnDisk          bool
}

TrieSyncConfig represents the trie synchronization configuration area

type TrieSyncStorageConfig

type TrieSyncStorageConfig struct {
	Capacity    uint32
	SizeInBytes uint64
	EnableDB    bool
	DB          DBConfig
}

TrieSyncStorageConfig will map trie sync storage configuration

type TxAccumulatorConfig

type TxAccumulatorConfig struct {
	MaxAllowedTimeInMilliseconds   uint32
	MaxDeviationTimeInMilliseconds uint32
}

TxAccumulatorConfig will hold the tx accumulator config values

type TypeConfig

type TypeConfig struct {
	Type string
}

TypeConfig will map the string type configuration

type ValidatorStatisticsConfig

type ValidatorStatisticsConfig struct {
	CacheRefreshIntervalInSec uint32
}

ValidatorStatisticsConfig will hold validator statistics specific settings

type VersionByEpochs

type VersionByEpochs struct {
	StartEpoch uint32
	Version    string
}

VersionByEpochs represents a version entry that will be applied between the provided epochs

type VersionsConfig

type VersionsConfig struct {
	DefaultVersion   string
	VersionsByEpochs []VersionByEpochs
	Cache            CacheConfig
}

VersionsConfig represents the versioning config area

type VirtualMachineConfig

type VirtualMachineConfig struct {
	WasmVMVersions                      []WasmVMVersionByEpoch
	TimeOutForSCExecutionInMilliseconds uint32
	WasmerSIGSEGVPassthrough            bool
}

VirtualMachineConfig holds configuration for a Virtual Machine service

type VirtualMachineGasConfig

type VirtualMachineGasConfig struct {
	ShardMaxGasPerVmQuery uint64
	MetaMaxGasPerVmQuery  uint64
}

VirtualMachineGasConfig holds the configuration for the virtual machine(s) gas operations

type VirtualMachineServicesConfig

type VirtualMachineServicesConfig struct {
	Execution VirtualMachineConfig
	Querying  QueryVirtualMachineConfig
	GasConfig VirtualMachineGasConfig
}

VirtualMachineServicesConfig holds configuration for the Virtual Machine(s): both querying and execution services.

type WasmVMVersionByEpoch

type WasmVMVersionByEpoch struct {
	StartEpoch uint32
	Version    string
}

WasmVMVersionByEpoch represents the Wasm VM version to be used starting with an epoch

type WebServerAntifloodConfig

type WebServerAntifloodConfig struct {
	WebServerAntifloodEnabled          bool
	SimultaneousRequests               uint32
	SameSourceRequests                 uint32
	SameSourceResetIntervalInSec       uint32
	TrieOperationsDeadlineMilliseconds uint32
	GetAddressesBulkMaxSize            uint32
	VmQueryDelayAfterStartInSec        uint32
	EndpointsThrottlers                []EndpointsThrottlersConfig
}

WebServerAntifloodConfig will hold the anti-flooding parameters for the web server

type YearSetting

type YearSetting struct {
	Year             uint32
	MaximumInflation float64
}

YearSetting will hold the maximum inflation rate for year

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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