config

package
v0.0.0-...-d9fe26e Latest Latest
Warning

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

Go to latest
Published: Feb 14, 2020 License: MIT Imports: 9 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Config

type Config struct {
	HttpServerPort string `json:"httpServerPort" env:"HTTP_SERVER_PORT"`

	// Used to manage the node whilst in live
	ManagementRPCPort string `json:"managementRPCPort" env:"MANAGEMENT_RPC_PORT"`
	UseManagementRPC  bool   `json:"useManagementRPC" env:"USE_MANAGEMENT_RPC"`

	// NOTE: This is what is used for registering on the Ethereum network.
	MainServerAddress          string `json:"mainServerAddress" env:"MAIN_SERVER_ADDRESS"`
	EthConnection              string `json:"ethconnection" env:"ETH_CONNECTION"`
	EthPrivateKey              string `json:"ethprivatekey" env:"ETH_PRIVATE_KEY"`
	BftURI                     string `json:"bfturi" env:"BFT_URI"`
	ABCIServer                 string `json:"abciserver" env:"ABCI_SERVER"`
	TMP2PListenAddress         string `json:"tmp2plistenaddress" env:"TM_P2P_LISTEN_ADDRESS"`
	P2PListenAddress           string `json:"p2plistenaddress" env:"P2P_LISTEN_ADDRESS"`
	NodeListAddress            string `json:"nodelistaddress" env:"NODE_LIST_ADDRESS"`
	KeyBuffer                  int    `json:"keybuffer" env:"KEY_BUFFER"`
	KeysPerEpoch               int    `json:"keysperepoch" env:"KEYS_PER_EPOCH"`
	KeyBufferTriggerPercentage int    `json:"keybuffertriggerpercentage" env:"KEY_BUFFER_TRIGGER_PERCENTAGE"`

	// KeyBufferTriggerPercentage int    `json:"keybuffertriggerpercetage" env:"KEY_BUFFER_TRIGGER_PERCENTAGE"` // percetage threshold of keys left to trigger buffering 90 - 20
	BasePath  string `json:"basepath" env:"BASE_PATH"`
	InitEpoch int    `json:"initepoch" env:"INIT_EPOCH"`

	ShouldRegister          bool   `json:"register" env:"REGISTER"`
	CPUProfileToFile        string `json:"cpuProfile" env:"CPU_PROFILE"`
	IsDebug                 bool   `json:"debug" env:"DEBUG"`
	PprofPort               string `json:"pprofPort" env:"PPROF_PORT"`
	PprofEnabled            bool   `json:"pprofEnabled" env:"PPROF_ENABLED"`
	ProvidedIPAddress       string `json:"ipAddress" env:"IP_ADDRESS"`
	LogLevel                string `json:"loglevel" env:"LOG_LEVEL"`
	TendermintLogging       bool   `json:"tendermintLogging" env:"TENDERMINT_LOGGING"`
	TMMessageQueueProcesses int    `json:"tmMessageQueueProcesses" env:"TM_MESSAGE_QUEUE_PROCESSES"`
	MaxBftConnections       int    `json:"maxBftConnections" env:"MAX_BFT_CONNECTIONS"`
	StackImpactEnabled      bool   `json:"stackImpactEnabled" env:"STACK_IMPACT_ENABLED"`
	StackImpactKey          string `json:"stackImpactKey" env:"STACK_IMPACT_KEY"`

	ServeUsingTLS     bool   `json:"useTLS" env:"USE_TLS"`
	UseAutoCert       bool   `json:"useAutoCert" env:"USE_AUTO_CERT"`
	AutoCertCacheDir  string `json:"autoCertCacheDir" env:"AUTO_CERT_CACHE_DIR"`
	PublicURL         string `json:"publicURL" env:"PUBLIC_URL"`
	ServerCert        string `json:"serverCert" env:"SERVER_CERT"`
	ServerKey         string `json:"serverKey" env:"SERVER_KEY"`
	EthPollFreq       int    `json:"ethPollFreq" env:"ETH_POLL_FREQ"`
	TendermintMetrics bool   `json:"tendermintMetrics" env:"TENDERMINT_METRICS"`

	// IDs used for oauth verification.
	GoogleClientID       string `json:"googleClientID" env:"GOOGLE_CLIENT_ID" mutable:"yes"`
	FacebookAppID        string `json:"facebookAppID" env:"FACEBOOK_APP_ID" mutable:"yes"`
	FacebookAppSecret    string `json:"facebookAppSecret" env:"FACEBOOK_APP_SECRET" mutable:"yes"`
	TwitchClientID       string `json:"twitchClientID" env:"TWITCH_CLIENT_ID" mutable:"yes"`
	RedditClientID       string `json:"redditClientID" env:"REDDIT_CLIENT_ID" mutable:"yes"`
	DiscordClientID      string `json:"discordClientID" env:"DISCORD_CLIENT_ID" mutable:"yes"`
	TorusVerifierPubKeyX string `json:"torusVerifierPubKeyX" env:"TORUS_VERIFIER_PUB_KEY_X" mutable:"yes"`
	TorusVerifierPubKeyY string `json:"torusVerifierPubKeyY" env:"TORUS_VERIFIER_PUB_KEY_Y" mutable:"yes"`
	EncryptShares        bool   `json:"encryptShares" env:"ENCRYPT_SHARES" mutable:"yes"`
	ValidateDealer       bool   `json:"validateDealer" env:"VALIDATE_DEALER" mutable:"yes"`

	JRPCAuth        bool   `json:"jrpcAuth" env:"JRPC_AUTH" mutable:"yes"`
	JRPCAuthPubKeyX string `json:"jrpcAuthPubKeyX" env:"JRPC_AUTH_PUB_KEY_X" mutable:"yes"`
	JRPCAuthPubKeyY string `json:"jrpcAuthPubKeyY" env:"JRPC_AUTH_PUB_KEY_Y" mutable:"yes"`

	PSSShareDelayMS         int  `json:"pssShareDelayMS" env:"PSS_SHARE_DELAY_MS" mutable:"yes"`
	DiskQueueReadRateMS     int  `json:"diskQueueReadRateMS" env:"DISK_QUEUE_READ_RATE_MS" mutable:"yes"`
	DiskQueueHWMMB          int  `json:"diskQueueHWMMB" env:"DISK_QUEUE_HWM_MB" mutable:"yes"`
	DiskQueueWriteToDB      bool `json:"diskQueueWriteToDB" env:"DISK_QUEUE_WRITE_TO_DB" mutable:"yes"`
	DiskQueueLogLevel       int  `json:"diskQueueLogLeve" env:"DISK_QUEUE_LOG_LEVEL" mutable:"yes"`
	StaggerDelay            int  `json:"staggerDelay" env:"STAGGER_DELAY"`
	OSFreeMemoryMS          int  `json:"osFreeMemoryMS" env:"OS_FREE_MEMORY_MS" mutable:"yes"`
	IgnoreEpochForKeyAssign bool `json:"ignoreEpochForKeyAssign" env:"IGNORE_EPOCH_FOR_KEY_ASSIGN" mutable:"yes"`
}
var GlobalConfig *Config

func DefaultConfigSettings

func DefaultConfigSettings() Config

func LoadConfig

func LoadConfig(configPath string) *Config

type MutableConfig

type MutableConfig struct {
	sync.Map
}
var GlobalMutableConfig *MutableConfig

func InitMutableConfig

func InitMutableConfig(c *Config) *MutableConfig

func (*MutableConfig) Exists

func (m *MutableConfig) Exists(key string) bool

func (*MutableConfig) GetB

func (m *MutableConfig) GetB(key string) bool

func (*MutableConfig) GetI

func (m *MutableConfig) GetI(key string) int

func (*MutableConfig) GetS

func (m *MutableConfig) GetS(key string) string

func (*MutableConfig) ListMutableConfigs

func (m *MutableConfig) ListMutableConfigs() string

func (*MutableConfig) SetB

func (m *MutableConfig) SetB(key string, value bool)

func (*MutableConfig) SetI

func (m *MutableConfig) SetI(key string, value int)

func (*MutableConfig) SetS

func (m *MutableConfig) SetS(key string, value string)

Jump to

Keyboard shortcuts

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