server

package
v0.0.1 Latest Latest
Warning

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

Go to latest
Published: Jun 7, 2021 License: Apache-2.0 Imports: 51 Imported by: 0

Documentation

Overview

The commands from the SDK are defined with `cobra` and configured with the `viper` package.

This takes place in the `InterceptConfigsPreRunHandler` function. Since the `viper` package is used for configuration the precedence is dictated by that package. That is

1. Command line switches 2. Environment variables 3. Files from configuration values 4. Default values

The global configuration instance exposed by the `viper` package is not used by Chain SDK in this function. A new instance of `viper.Viper` is created and the following is performed. The environmental variable prefix is set to the current program name. Environmental variables consider the underscore to be equivalent to the `.` or `-` character. This means that an configuration value called `rpc.laddr` would be read from an environmental variable called `MYTOOL_RPC_LADDR` if the current program name is `mytool`.

Running the `InterceptConfigsPreRunHandler` also reads `app.toml` and `config.toml` from the home directory under the `config` directory. If `config.toml` or `app.toml` do not exist then those files are created and populated with default values.

Index

Constants

View Source
const (
	FlagHeight           = "height"
	FlagForZeroHeight    = "for-zero-height"
	FlagJailAllowedAddrs = "jail-allowed-addrs"
)
View Source
const (
	FlagMinGasPrices       = "minimum-gas-prices"
	FlagHaltHeight         = "halt-height"
	FlagHaltTime           = "halt-time"
	FlagInterBlockCache    = "inter-block-cache"
	FlagUnsafeSkipUpgrades = "unsafe-skip-upgrades"
	FlagTrace              = "trace"
	FlagInvCheckPeriod     = "inv-check-period"

	FlagPruning           = "pruning"
	FlagPruningKeepRecent = "pruning-keep-recent"
	FlagPruningKeepEvery  = "pruning-keep-every"
	FlagPruningInterval   = "pruning-interval"
	FlagIndexEvents       = "index-events"
	FlagMinRetainBlocks   = "min-retain-blocks"
)

Tendermint full-node start flags

View Source
const (
	FlagStateSyncSnapshotInterval   = "state-sync.snapshot-interval"
	FlagStateSyncSnapshotKeepRecent = "state-sync.snapshot-keep-recent"
)

State sync-related flags.

View Source
const ServerContextKey = sdk.ContextKey("server.context")

ServerContextKey defines the context key used to retrieve a server.Context from a command's Context.

Variables

This section is empty.

Functions

func AddCommands

func AddCommands(rootCmd *cobra.Command, defaultNodeHome string, appCreator types.AppCreator, appExport types.AppExporter, addStartFlags types.ModuleInitFlags)

add server commands

func ExportCmd

func ExportCmd(appExporter types.AppExporter, defaultNodeHome string) *cobra.Command

ExportCmd dumps app state to JSON.

func ExternalIP

func ExternalIP() (string, error)

https://stackoverflow.com/questions/23558425/how-do-i-get-the-local-ip-address-in-go TODO there must be a better way to get external IP

func FreeTCPAddr

func FreeTCPAddr() (addr, port string, err error)

Get a free address for a test tendermint server protocol is either tcp, http, etc

func GenerateCoinKey

func GenerateCoinKey(algo keyring.SignatureAlgo) (sdk.AccAddress, string, error)

GenerateCoinKey returns the address of a public key, along with the secret phrase to recover the private key.

func GenerateSaveCoinKey

func GenerateSaveCoinKey(keybase keyring.Keyring, keyName string, overwrite bool, algo keyring.SignatureAlgo) (sdk.AccAddress, string, error)

GenerateSaveCoinKey returns the address of a public key, along with the secret phrase to recover the private key.

func GetPruningOptionsFromFlags

func GetPruningOptionsFromFlags(appOpts types.AppOptions) (storetypes.PruningOptions, error)

GetPruningOptionsFromFlags parses command flags and returns the correct PruningOptions. If a pruning strategy is provided, that will be parsed and returned, otherwise, it is assumed custom pruning options are provided.

func InterceptConfigsPreRunHandler

func InterceptConfigsPreRunHandler(cmd *cobra.Command) error

InterceptConfigsPreRunHandler performs a pre-run function for the root daemon application command. It will create a Viper literal and a default server Context. The server Tendermint configuration will either be read and parsed or created and saved to disk, where the server Context is updated to reflect the Tendermint configuration. The Viper literal is used to read and parse the application configuration. Command handlers can fetch the server Context to get the Tendermint configuration or to get access to Viper.

func SetCmdServerContext

func SetCmdServerContext(cmd *cobra.Command, serverCtx *Context) error

SetCmdServerContext sets a command's Context value to the provided argument.

func ShowAddressCmd

func ShowAddressCmd() *cobra.Command

ShowAddressCmd - show this node's validator address

func ShowNodeIDCmd

func ShowNodeIDCmd() *cobra.Command

ShowNodeIDCmd - ported from Tendermint, dump node ID to stdout

func ShowValidatorCmd

func ShowValidatorCmd() *cobra.Command

ShowValidatorCmd - ported from Tendermint, show this node's validator info

func StartCmd

func StartCmd(appCreator types.AppCreator, defaultNodeHome string) *cobra.Command

StartCmd runs the service passed in, either stand-alone or in-process with Tendermint.

func TrapSignal

func TrapSignal(cleanupFunc func())

TrapSignal traps SIGINT and SIGTERM and terminates the server correctly.

func UnsafeResetAllCmd

func UnsafeResetAllCmd() *cobra.Command

UnsafeResetAllCmd - extension of the tendermint command, resets initialization

func VersionCmd

func VersionCmd() *cobra.Command

VersionCmd prints tendermint and ABCI version numbers.

Types

type Context

type Context struct {
	Viper  *viper.Viper
	Config *tmcfg.Config
	Logger tmlog.Logger
}

server context

func GetServerContextFromCmd

func GetServerContextFromCmd(cmd *cobra.Command) *Context

GetServerContextFromCmd returns a Context from a command or an empty Context if it has not been set.

func NewContext

func NewContext(v *viper.Viper, config *tmcfg.Config, logger tmlog.Logger) *Context

func NewDefaultContext

func NewDefaultContext() *Context

type ErrorCode

type ErrorCode struct {
	Code int
}

ErrorCode contains the exit code for server exit.

func WaitForQuitSignals

func WaitForQuitSignals() ErrorCode

WaitForQuitSignals waits for SIGINT and SIGTERM and returns.

func (ErrorCode) Error

func (e ErrorCode) Error() string

type ZeroLogWrapper

type ZeroLogWrapper struct {
	zerolog.Logger
}

ZeroLogWrapper provides a wrapper around a zerolog.Logger instance. It implements Tendermint's Logger interface.

func (ZeroLogWrapper) Debug

func (z ZeroLogWrapper) Debug(msg string, keyVals ...interface{})

Debug implements Tendermint's Logger interface and logs with level DEBUG. A set of key/value tuples may be provided to add context to the log. The number of tuples must be even and the key of the tuple must be a string.

func (ZeroLogWrapper) Error

func (z ZeroLogWrapper) Error(msg string, keyVals ...interface{})

Error implements Tendermint's Logger interface and logs with level ERR. A set of key/value tuples may be provided to add context to the log. The number of tuples must be even and the key of the tuple must be a string.

func (ZeroLogWrapper) Info

func (z ZeroLogWrapper) Info(msg string, keyVals ...interface{})

Info implements Tendermint's Logger interface and logs with level INFO. A set of key/value tuples may be provided to add context to the log. The number of tuples must be even and the key of the tuple must be a string.

func (ZeroLogWrapper) With

func (z ZeroLogWrapper) With(keyVals ...interface{}) tmlog.Logger

With returns a new wrapped logger with additional context provided by a set of key/value tuples. The number of tuples must be even and the key of the tuple must be a string.

Directories

Path Synopsis
nolint
nolint

Jump to

Keyboard shortcuts

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