Documentation ¶
Index ¶
- type APIPackageConfig
- type AntifloodConfig
- type AntifloodDebugConfig
- type AntifloodLimitsConfig
- type ApiRoutesConfig
- type BlackListConfig
- type BlockSizeThrottleConfig
- type BloomFilterConfig
- type CacheConfig
- type Config
- type DBConfig
- type DCTSystemSCConfig
- type DebugConfig
- type EconomicsConfig
- type ElasticSearchConfig
- type EndpointsThrottlersConfig
- type EpochStartConfig
- type EvictionWaitingListConfig
- type ExternalConfig
- type FacadeConfig
- type FeeSettings
- type FloodPreventerConfig
- type FullHistoryConfig
- type General
- type GeneralSettingsConfig
- type GlobalSettings
- type GovernanceSystemSCConfig
- type HardforkConfig
- type HeadersPoolConfig
- type HealthServiceConfig
- type HeartbeatConfig
- type IncreaseFactorConfig
- type InterceptorResolverDebugConfig
- type KadDhtPeerDiscoveryConfig
- type MarshalizerConfig
- type MetaChain
- type NTPConfig
- type NodeConfig
- type P2PConfig
- type PeerHonestyConfig
- type Preferences
- type PreferencesConfig
- type PubkeyConfig
- type RatingSteps
- type RatingValue
- type RatingsConfig
- type ResourceStatsConfig
- type RewardsSettings
- type RouteConfig
- type SelectionChance
- type ShardChain
- type ShardingConfig
- type SoftwareVersionConfig
- type StakingSystemSCConfig
- type StateTriesConfig
- type StorageConfig
- type StoragePruningConfig
- type SystemSmartContractsConfig
- type TopicAntifloodConfig
- type TopicMaxMessagesConfig
- type TrieStorageManagerConfig
- type TxAccumulatorConfig
- type TypeConfig
- type ValidatorStatisticsConfig
- type VirtualMachineConfig
- type VirtualMachineOutOfProcessConfig
- type WebServerAntifloodConfig
- type YearSetting
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type APIPackageConfig ¶
type APIPackageConfig struct {
Routes []RouteConfig
}
APIPackageConfig holds the configuration for the routes of each package
type AntifloodConfig ¶
type AntifloodConfig struct { Enabled bool NumConcurrentResolverJobs int32 OutOfSpecs FloodPreventerConfig FastReacting FloodPreventerConfig SlowReacting FloodPreventerConfig PeerMaxOutput AntifloodLimitsConfig Cache CacheConfig WebServer WebServerAntifloodConfig Topic TopicAntifloodConfig TxAccumulator TxAccumulatorConfig }
AntifloodConfig will hold all p2p antiflood parameters
type AntifloodDebugConfig ¶
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 ApiRoutesConfig ¶
type ApiRoutesConfig struct {
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 BlockSizeThrottleConfig ¶
BlockSizeThrottleConfig will hold the configuration for adaptive block size throttle
type BloomFilterConfig ¶
BloomFilterConfig will map the json bloom filter configuration
type CacheConfig ¶
type CacheConfig struct { Name string Type string Capacity uint32 SizePerSender uint32 SizeInBytes uint64 SizeInBytesPerSender uint32 Shards uint32 }
CacheConfig will map the json 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 BootstrapStorage StorageConfig MetaBlockStorage StorageConfig AccountsTrieStorage StorageConfig PeerAccountsTrieStorage StorageConfig TrieSnapshotDB DBConfig EvictionWaitingList EvictionWaitingListConfig StateTriesConfig StateTriesConfig TrieStorageManagerConfig TrieStorageManagerConfig BadBlocksCache CacheConfig TxBlockBodyDataPool CacheConfig PeerBlockBodyDataPool CacheConfig TxDataPool CacheConfig UnsignedTransactionDataPool CacheConfig RewardTransactionDataPool CacheConfig TrieNodesDataPool CacheConfig WhiteListPool CacheConfig WhiteListerVerifiedTxs CacheConfig EpochStartConfig EpochStartConfig AddressPubkeyConverter PubkeyConfig ValidatorPubkeyConverter PubkeyConfig Hasher TypeConfig MultisigHasher TypeConfig Marshalizer MarshalizerConfig VmMarshalizer TypeConfig TxSignMarshalizer TypeConfig PublicKeyShardId CacheConfig PublicKeyPeerId CacheConfig PeerIdShardId CacheConfig PublicKeyPIDSignature CacheConfig PeerHonesty CacheConfig Antiflood AntifloodConfig ResourceStats ResourceStatsConfig Heartbeat HeartbeatConfig ValidatorStatistics ValidatorStatisticsConfig GeneralSettings GeneralSettingsConfig Consensus TypeConfig StoragePruning StoragePruningConfig TxLogsStorage StorageConfig NTPConfig NTPConfig HeadersPoolConfig HeadersPoolConfig BlockSizeThrottleConfig BlockSizeThrottleConfig VirtualMachineConfig VirtualMachineConfig Hardfork HardforkConfig Debug DebugConfig Health HealthServiceConfig SoftwareVersionConfig SoftwareVersionConfig FullHistory FullHistoryConfig }
Config will hold the entire application configuration parameters
type DBConfig ¶
type DBConfig struct { FilePath string Type string BatchDelaySeconds int MaxBatchSize int MaxOpenFiles int }
DBConfig will map the json db configuration
type DCTSystemSCConfig ¶
DCTSystemSCConfig defines a set of constant to initialize the dct system smart contract
type DebugConfig ¶
type DebugConfig struct { InterceptorResolver InterceptorResolverDebugConfig Antiflood AntifloodDebugConfig }
DebugConfig will hold debugging configuration
type EconomicsConfig ¶
type EconomicsConfig struct { GlobalSettings GlobalSettings RewardsSettings RewardsSettings FeeSettings FeeSettings }
EconomicsConfig will hold economics config
type ElasticSearchConfig ¶
ElasticSearchConfig will hold the configuration for the elastic search
type EndpointsThrottlersConfig ¶
EndpointsThrottlersConfig holds a pair of an endpoint and its maximum number of simultaneous go routines
type EpochStartConfig ¶
type EpochStartConfig struct { MinRoundsBetweenEpochs int64 RoundsPerEpoch int64 MinShuffledOutRestartThreshold float64 MaxShuffledOutRestartThreshold float64 MinNumConnectedPeersToStart int MinNumOfPeersToConsiderBlockValid int }
EpochStartConfig will hold the configuration of EpochStart settings
type EvictionWaitingListConfig ¶
EvictionWaitingListConfig will hold the configuration for the EvictionWaitingList
type ExternalConfig ¶
type ExternalConfig struct {
ElasticSearchConnector ElasticSearchConfig
}
ExternalConfig will hold the configurations for external tools, such as Explorer or Elastic Search
type FacadeConfig ¶
FacadeConfig will hold different configuration option that will be passed to the main DharitriFacade
type FeeSettings ¶
type FeeSettings struct { MaxGasLimitPerBlock string MaxGasLimitPerMetaBlock string GasPerDataByte string DataLimitForBaseCalc string MinGasPrice string MinGasLimit 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 FullHistoryConfig ¶ added in v0.0.2
type FullHistoryConfig struct { Enabled bool HistoryTransactionStorageConfig StorageConfig HashEpochStorageConfig StorageConfig }
FullHistoryConfig holds the configuration for the full history node
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 StartInEpochEnabled bool DisableDeploy bool DisableBuiltInFunctions bool DisableRelayedTx bool GenesisString string }
GeneralSettingsConfig will hold the general settings for a node
type GlobalSettings ¶
type GlobalSettings struct { GenesisTotalSupply string MinimumInflation float64 YearSettings []*YearSetting Denomination int }
GlobalSettings will hold general economic values
type GovernanceSystemSCConfig ¶
type GovernanceSystemSCConfig struct { ProposalCost string NumNodes int64 MinQuorum int32 MinPassThreshold int32 MinVetoThreshold int32 Disabled bool }
GovernanceSystemSCConfig defines the set of constants to initialize the governance system smart contract
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 HeadersPoolConfig ¶
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 HeartbeatConfig ¶
type HeartbeatConfig struct { MinTimeToWaitBetweenBroadcastsInSec int MaxTimeToWaitBetweenBroadcastsInSec int DurationToConsiderUnresponsiveInSec int HeartbeatRefreshIntervalInSec uint32 HideInactiveValidatorIntervalInSec uint32 HeartbeatStorage StorageConfig }
HeartbeatConfig will hold all heartbeat settings
type IncreaseFactorConfig ¶
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 KadDhtPeerDiscoveryConfig ¶
type KadDhtPeerDiscoveryConfig struct { Enabled bool RefreshIntervalInSec uint32 ProtocolID string InitialPeerList []string BucketSize uint32 RoutingTableRefreshIntervalInSec uint32 }
KadDhtPeerDiscoveryConfig will hold the kad-dht discovery config settings
type MarshalizerConfig ¶
type MarshalizerConfig struct { Type string //TODO check if we still need this SizeCheckDelta uint32 }
MarshalizerConfig holds the marshalizer related configuration
type NTPConfig ¶
type NTPConfig struct { Hosts []string Port int TimeoutMilliseconds int SyncPeriodSeconds int Version int }
NTPConfig will hold the configuration for NTP queries
type NodeConfig ¶
NodeConfig will hold basic p2p settings
type P2PConfig ¶
type P2PConfig struct { Node NodeConfig KadDhtPeerDiscovery KadDhtPeerDiscoveryConfig Sharding ShardingConfig }
P2PConfig will hold all the P2P settings
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 Preferences ¶
type Preferences struct {
Preferences PreferencesConfig
}
Preferences will hold the configuration related to node's preferences
type PreferencesConfig ¶
type PreferencesConfig struct { DestinationShardAsObserver string NodeDisplayName string Identity string }
PreferencesConfig will hold the fields which are node specific such as the display name
type PubkeyConfig ¶
PubkeyConfig will map the json public key configuration
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 ¶
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 ResourceStatsConfig ¶
ResourceStatsConfig will hold all resource stats settings
type RewardsSettings ¶
type RewardsSettings struct { LeaderPercentage float64 DeveloperPercentage float64 ProtocolSustainabilityPercentage float64 ProtocolSustainabilityAddress string }
RewardsSettings will hold economics rewards settings
type RouteConfig ¶
RouteConfig holds the configuration for a single route
type SelectionChance ¶
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 ShardingConfig ¶
type ShardingConfig struct { TargetPeerCount int MaxIntraShardValidators uint32 MaxCrossShardValidators uint32 MaxIntraShardObservers uint32 MaxCrossShardObservers uint32 Type string }
ShardingConfig will hold the network sharding config settings
type SoftwareVersionConfig ¶
SoftwareVersionConfig will hold the configuration for software version checker
type StakingSystemSCConfig ¶ added in v0.0.2
type StakingSystemSCConfig struct { GenesisNodePrice string MinStakeValue string UnJailValue string MinStepValue string UnBondPeriod uint64 AuctionEnableNonce uint64 StakeEnableNonce uint64 NumRoundsWithoutBleed uint64 MaximumPercentageToBleed float64 BleedPercentagePerRound float64 MaxNumberOfNodesForStake uint64 NodesToSelectInAuction uint64 ActivateBLSPubKeyMessageVerification bool }
StakingSystemSCConfig will hold the staking system smart contract settings
type StateTriesConfig ¶
type StateTriesConfig struct { CheckpointRoundsModulus uint AccountsStatePruningEnabled bool PeerStatePruningEnabled bool MaxStateTrieLevelInMemory uint MaxPeerTrieLevelInMemory uint }
StateTriesConfig will hold information about state tries
type StorageConfig ¶
type StorageConfig struct { Cache CacheConfig DB DBConfig Bloom BloomFilterConfig }
StorageConfig will map the json storage unit configuration
type StoragePruningConfig ¶
type StoragePruningConfig struct { Enabled bool CleanOldEpochsData bool NumEpochsToKeep uint64 NumActivePersisters uint64 }
StoragePruningConfig will hold settings relates to storage pruning
type SystemSmartContractsConfig ¶
type SystemSmartContractsConfig struct { DCTSystemSCConfig DCTSystemSCConfig GovernanceSystemSCConfig GovernanceSystemSCConfig StakingSystemSCConfig StakingSystemSCConfig }
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 ¶
TopicMaxMessagesConfig will hold the maximum number of messages/sec per topic value
type TrieStorageManagerConfig ¶
type TrieStorageManagerConfig struct { PruningBufferLen uint32 SnapshotsBufferLen uint32 MaxSnapshots uint8 }
TrieStorageManagerConfig will hold config information about trie storage manager
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 json string type configuration
type ValidatorStatisticsConfig ¶
type ValidatorStatisticsConfig struct {
CacheRefreshIntervalInSec uint32
}
ValidatorStatisticsConfig will hold validator statistics specific settings
type VirtualMachineConfig ¶
type VirtualMachineConfig struct { OutOfProcessEnabled bool OutOfProcessConfig VirtualMachineOutOfProcessConfig }
VirtualMachineConfig holds configuration for the Virtual Machine(s)
type VirtualMachineOutOfProcessConfig ¶
type VirtualMachineOutOfProcessConfig struct { LogsMarshalizer string MessagesMarshalizer string MaxLoopTime int }
VirtualMachineOutOfProcessConfig holds configuration for out-of-process virtual machine(s)
type WebServerAntifloodConfig ¶
type WebServerAntifloodConfig struct { SimultaneousRequests uint32 SameSourceRequests uint32 SameSourceResetIntervalInSec uint32 EndpointsThrottlers []EndpointsThrottlersConfig }
WebServerAntifloodConfig will hold the anti-flooding parameters for the web server
type YearSetting ¶
YearSetting will hold the maximum inflation rate for year