config

package
v1.0.11 Latest Latest
Warning

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

Go to latest
Published: Aug 7, 2023 License: MIT Imports: 30 Imported by: 1

Documentation

Overview

Package config contains go-spacemesh node configuration definitions

Index

Constants

View Source
const Account1Private = "" /* 130-byte string literal not displayed */

Account1Private is the private key for test account.

View Source
const Account2Private = "" /* 130-byte string literal not displayed */

Account2Private is the private key for second test account.

Variables

This section is empty.

Functions

func LoadConfig

func LoadConfig(config string, vip *viper.Viper) error

LoadConfig load the config file.

func MainnetAccounts added in v1.0.2

func MainnetAccounts() map[string]uint64

MainnetAccounts generated from preimages at https://github.com/spacemeshos/wiki/wiki/Genesis-ledger.

Types

type BaseConfig

type BaseConfig struct {
	DataDirParent string `mapstructure:"data-folder"`
	FileLock      string `mapstructure:"filelock"`

	TestConfig TestConfig `mapstructure:"testing"`
	Standalone bool       `mapstructure:"standalone"`

	ConfigFile string `mapstructure:"config"`

	CollectMetrics bool `mapstructure:"metrics"`
	MetricsPort    int  `mapstructure:"metrics-port"`

	ProfilerName string `mapstructure:"profiler-name"`
	ProfilerURL  string `mapstructure:"profiler-url"`

	LayerDuration  time.Duration `mapstructure:"layer-duration"`
	LayerAvgSize   uint32        `mapstructure:"layer-average-size"`
	LayersPerEpoch uint32        `mapstructure:"layers-per-epoch"`

	PoETServers []string `mapstructure:"poet-server"`

	PprofHTTPServer bool `mapstructure:"pprof-server"`

	TxsPerProposal int    `mapstructure:"txs-per-proposal"`
	BlockGasLimit  uint64 `mapstructure:"block-gas-limit"`
	// if the number of proposals with the same mesh state crosses this threshold (in percentage),
	// then we optimistically filter out infeasible transactions before constructing the block.
	OptFilterThreshold int    `mapstructure:"optimistic-filtering-threshold"`
	TickSize           uint64 `mapstructure:"tick-size"`

	DatabaseConnections     int  `mapstructure:"db-connections"`
	DatabaseLatencyMetering bool `mapstructure:"db-latency-metering"`

	NetworkHRP string `mapstructure:"network-hrp"`
}

BaseConfig defines the default configuration options for spacemesh app.

type Config

type Config struct {
	BaseConfig      `mapstructure:"main"`
	Genesis         *GenesisConfig        `mapstructure:"genesis"`
	PublicMetrics   PublicMetrics         `mapstructure:"public-metrics"`
	Tortoise        tortoise.Config       `mapstructure:"tortoise"`
	P2P             p2p.Config            `mapstructure:"p2p"`
	API             grpcserver.Config     `mapstructure:"api"`
	HARE            hareConfig.Config     `mapstructure:"hare"`
	HareEligibility eligConfig.Config     `mapstructure:"hare-eligibility"`
	Beacon          beacon.Config         `mapstructure:"beacon"`
	TIME            timeConfig.TimeConfig `mapstructure:"time"`
	VM              vm.Config             `mapstructure:"vm"`
	POST            activation.PostConfig `mapstructure:"post"`
	POET            activation.PoetConfig `mapstructure:"poet"`
	SMESHING        SmeshingConfig        `mapstructure:"smeshing"`
	LOGGING         LoggerConfig          `mapstructure:"logging"`
	FETCH           fetch.Config          `mapstructure:"fetch"`
	Bootstrap       bootstrap.Config      `mapstructure:"bootstrap"`
	Sync            syncer.Config         `mapstructure:"syncer"`
	Recovery        checkpoint.Config     `mapstructure:"recovery"`
}

Config defines the top level configuration for a spacemesh node.

func DefaultConfig

func DefaultConfig() Config

DefaultConfig returns the default configuration for a spacemesh node.

func DefaultTestConfig added in v1.0.0

func DefaultTestConfig() Config

DefaultTestConfig returns the default config for tests.

func MainnetConfig added in v1.0.0

func MainnetConfig() Config

func (*Config) DataDir added in v0.1.12

func (cfg *Config) DataDir() string

DataDir returns the absolute path to use for the node's data. This is the tilde-expanded path given in the config with a subfolder named after the network ID.

type GenesisConfig added in v1.0.0

type GenesisConfig struct {
	GenesisTime string            `mapstructure:"genesis-time"`
	ExtraData   string            `mapstructure:"genesis-extra-data"`
	Accounts    map[string]uint64 `mapstructure:"accounts"`
}

GenesisConfig contains immutable parameters for the protocol.

func DefaultGenesisConfig added in v1.0.0

func DefaultGenesisConfig() *GenesisConfig

DefaultGenesisConfig is the default configuration for the node.

func DefaultTestGenesisConfig added in v1.0.0

func DefaultTestGenesisConfig() *GenesisConfig

DefaultTestGenesisConfig is the default test configuration for the node.

func (*GenesisConfig) Diff added in v1.0.0

func (g *GenesisConfig) Diff(other *GenesisConfig) string

Diff returns difference between two configs.

func (*GenesisConfig) GenesisID added in v1.0.0

func (g *GenesisConfig) GenesisID() types.Hash20

GenesisID computes genesis id from GenesisTime and ExtraData.

func (*GenesisConfig) GoldenATX added in v1.0.0

func (g *GenesisConfig) GoldenATX() types.Hash32

func (*GenesisConfig) LoadFromFile added in v1.0.0

func (g *GenesisConfig) LoadFromFile(filename string) error

LoadFromFile loads config from file.

func (*GenesisConfig) ToAccounts added in v1.0.0

func (g *GenesisConfig) ToAccounts() []types.Account

ToAccounts creates list of types.Account instance from config.

func (*GenesisConfig) Validate added in v1.0.0

func (g *GenesisConfig) Validate() error

Validate GenesisConfig.

func (*GenesisConfig) WriteToFile added in v1.0.0

func (g *GenesisConfig) WriteToFile(filename string) error

WriteToFile writes config content to file.

type LogEncoder added in v1.0.0

type LogEncoder = string

LogEncoder defines a log encoder kind.

const (

	// ConsoleLogEncoder represents logging with plain text.
	ConsoleLogEncoder LogEncoder = "console"
	// JSONLogEncoder represents logging with JSON.
	JSONLogEncoder LogEncoder = "json"
)

type LoggerConfig

type LoggerConfig struct {
	Encoder                   LogEncoder `mapstructure:"log-encoder"`
	AppLoggerLevel            string     `mapstructure:"app"`
	P2PLoggerLevel            string     `mapstructure:"p2p"`
	PostLoggerLevel           string     `mapstructure:"post"`
	StateDbLoggerLevel        string     `mapstructure:"stateDb"`
	StateLoggerLevel          string     `mapstructure:"state"`
	AtxDbStoreLoggerLevel     string     `mapstructure:"atxDbStore"`
	BeaconLoggerLevel         string     `mapstructure:"beacon"`
	WeakCoinLoggerLevel       string     `mapstructure:"weakCoin"`
	PoetDbStoreLoggerLevel    string     `mapstructure:"poetDbStore"`
	StoreLoggerLevel          string     `mapstructure:"store"`
	PoetDbLoggerLevel         string     `mapstructure:"poetDb"`
	MeshDBLoggerLevel         string     `mapstructure:"meshDb"`
	TrtlLoggerLevel           string     `mapstructure:"trtl"`
	AtxDbLoggerLevel          string     `mapstructure:"atxDb"`
	BlkEligibilityLoggerLevel string     `mapstructure:"block-eligibility"`
	MeshLoggerLevel           string     `mapstructure:"mesh"`
	SyncLoggerLevel           string     `mapstructure:"sync"`
	BlockOracleLevel          string     `mapstructure:"block-oracle"`
	HareOracleLoggerLevel     string     `mapstructure:"hare-oracle"`
	HareLoggerLevel           string     `mapstructure:"hare"`
	BlockBuilderLoggerLevel   string     `mapstructure:"block-builder"`
	BlockListenerLoggerLevel  string     `mapstructure:"block-listener"`
	PoetListenerLoggerLevel   string     `mapstructure:"poet"`
	NipostBuilderLoggerLevel  string     `mapstructure:"nipostBuilder"`
	AtxBuilderLoggerLevel     string     `mapstructure:"atxBuilder"`
	HareBeaconLoggerLevel     string     `mapstructure:"hare-beacon"`
	TimeSyncLoggerLevel       string     `mapstructure:"timesync"`
	VMLogLevel                string     `mapstructure:"vm"`
}

LoggerConfig holds the logging level for each module.

type PublicMetrics added in v1.0.4

type PublicMetrics struct {
	MetricsURL        string            `mapstructure:"metrics-url"`
	MetricsPushPeriod time.Duration     `mapstructure:"metrics-push-period"`
	MetricsPushUser   string            `mapstructure:"metrics-push-user"`
	MetricsPushPass   string            `mapstructure:"metrics-push-pass"`
	MetricsPushHeader map[string]string `mapstructure:"metrics-push-header"`
}

type SmeshingConfig added in v1.0.0

type SmeshingConfig struct {
	Start           bool                              `mapstructure:"smeshing-start"`
	CoinbaseAccount string                            `mapstructure:"smeshing-coinbase"`
	Opts            activation.PostSetupOpts          `mapstructure:"smeshing-opts"`
	ProvingOpts     activation.PostProvingOpts        `mapstructure:"smeshing-proving-opts"`
	VerifyingOpts   activation.PostProofVerifyingOpts `mapstructure:"smeshing-verifying-opts"`
}

SmeshingConfig defines configuration for the node's smeshing (mining).

func DefaultSmeshingConfig added in v1.0.0

func DefaultSmeshingConfig() SmeshingConfig

DefaultSmeshingConfig returns the node's default smeshing configuration.

type TestConfig added in v1.0.0

type TestConfig struct {
	SmesherKey string `mapstructure:"testing-smesher-key"`
}

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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