Documentation ¶
Index ¶
- Constants
- Variables
- func DefaultDBProvider(ctx *DBContext) (dbm.DB, error)
- func EnsureRoot(rootDir string)
- func WriteConfigFile(rootDir string, config *Config) error
- type BaseConfig
- func (cfg BaseConfig) ChainID() string
- func (cfg BaseConfig) DBDir() string
- func (cfg BaseConfig) GenesisFile() string
- func (cfg BaseConfig) LoadNodeKeyID() (types.NodeID, error)
- func (cfg BaseConfig) LoadOrGenNodeKeyID() (types.NodeID, error)
- func (cfg BaseConfig) NodeKeyFile() string
- func (cfg BaseConfig) ValidateBasic() error
- type BlockSyncConfig
- type Config
- type ConsensusConfig
- func (cfg *ConsensusConfig) Commit(t time.Time) time.Time
- func (cfg *ConsensusConfig) Precommit(round int32) time.Duration
- func (cfg *ConsensusConfig) Prevote(round int32) time.Duration
- func (cfg *ConsensusConfig) Propose(round int32) time.Duration
- func (cfg *ConsensusConfig) SetWalFile(walFile string)
- func (cfg *ConsensusConfig) ValidateBasic() error
- func (cfg *ConsensusConfig) WaitForTxs() bool
- func (cfg *ConsensusConfig) WalFile() string
- type DBContext
- type DBProvider
- type InstrumentationConfig
- type MempoolConfig
- type P2PConfig
- type PrivValidatorConfig
- func (cfg *PrivValidatorConfig) AreSecurityOptionsPresent() bool
- func (cfg *PrivValidatorConfig) ClientCertificateFile() string
- func (cfg *PrivValidatorConfig) ClientKeyFile() string
- func (cfg *PrivValidatorConfig) KeyFile() string
- func (cfg *PrivValidatorConfig) RootCAFile() string
- func (cfg *PrivValidatorConfig) StateFile() string
- type RPCConfig
- type ServiceProvider
- type StateSyncConfig
- type TxIndexConfig
Constants ¶
const ( // FuzzModeDrop is a mode in which we randomly drop reads/writes, connections or sleep FuzzModeDrop = iota // FuzzModeDelay is a mode in which we randomly sleep FuzzModeDelay // DefaultLogLevel defines a default log level as INFO. DefaultLogLevel = "info" ModeFull = "full" ModeValidator = "validator" ModeSeed = "seed" BlockSyncV0 = "v0" BlockSyncV2 = "v2" MempoolV0 = "v0" MempoolV1 = "v1" )
const DefaultDirPerm = 0700
DefaultDirPerm is the default permissions used when creating directories.
Variables ¶
var (
DefaultTendermintDir = ".tendermint"
)
NOTE: Most of the structs & relevant comments + the default configuration options were used to manually generate the config.toml. Please reflect any changes made here in the defaultConfigTemplate constant in config/toml.go NOTE: libs/cli must know to look in the config dir!
Functions ¶
func DefaultDBProvider ¶ added in v0.35.0
DefaultDBProvider returns a database using the DBBackend and DBDir specified in the Config.
func EnsureRoot ¶
func EnsureRoot(rootDir string)
EnsureRoot creates the root, config, and data directories if they don't exist, and panics if it fails.
func WriteConfigFile ¶
WriteConfigFile renders config using the template and writes it to configFilePath. This function is called by cmd/tendermint/commands/init.go
Types ¶
type BaseConfig ¶
type BaseConfig struct { // The root directory for all data. // This should be set in viper so it can unmarshal into this struct RootDir string `mapstructure:"home"` // TCP or UNIX socket address of the ABCI application, // or the name of an ABCI application compiled in with the Tendermint binary ProxyApp string `mapstructure:"proxy-app"` // A custom human readable name for this node Moniker string `mapstructure:"moniker"` // Mode of Node: full | validator | seed // * validator // - all reactors // - with priv_validator_key.json, priv_validator_state.json // * full // - all reactors // - No priv_validator_key.json, priv_validator_state.json // * seed // - only P2P, PEX Reactor // - No priv_validator_key.json, priv_validator_state.json Mode string `mapstructure:"mode"` // Database backend: goleveldb | cleveldb | boltdb | rocksdb // * goleveldb (github.com/syndtr/goleveldb - most popular implementation) // - pure go // - stable // * cleveldb (uses levigo wrapper) // - fast // - requires gcc // - use cleveldb build tag (go build -tags cleveldb) // * boltdb (uses etcd's fork of bolt - github.com/etcd-io/bbolt) // - EXPERIMENTAL // - may be faster is some use-cases (random reads - indexer) // - use boltdb build tag (go build -tags boltdb) // * rocksdb (uses github.com/tecbot/gorocksdb) // - EXPERIMENTAL // - requires gcc // - use rocksdb build tag (go build -tags rocksdb) // * badgerdb (uses github.com/dgraph-io/badger) // - EXPERIMENTAL // - use badgerdb build tag (go build -tags badgerdb) DBBackend string `mapstructure:"db-backend"` // Database directory DBPath string `mapstructure:"db-dir"` // Output level for logging LogLevel string `mapstructure:"log-level"` // Output format: 'plain' (colored text) or 'json' LogFormat string `mapstructure:"log-format"` // Path to the JSON file containing the initial validator set and other meta data Genesis string `mapstructure:"genesis-file"` // A JSON file containing the private key to use for p2p authenticated encryption NodeKey string `mapstructure:"node-key-file"` // Mechanism to connect to the ABCI application: socket | grpc ABCI string `mapstructure:"abci"` // If true, query the ABCI app on connecting to a new peer // so the app can decide if we should keep the connection or not FilterPeers bool `mapstructure:"filter-peers"` // false Other map[string]interface{} `mapstructure:",remain"` // contains filtered or unexported fields }
BaseConfig defines the base configuration for a Tendermint node
func DefaultBaseConfig ¶
func DefaultBaseConfig() BaseConfig
DefaultBaseConfig returns a default base configuration for a Tendermint node
func TestBaseConfig ¶
func TestBaseConfig() BaseConfig
TestBaseConfig returns a base configuration for testing a Tendermint node
func (BaseConfig) ChainID ¶
func (cfg BaseConfig) ChainID() string
func (BaseConfig) DBDir ¶
func (cfg BaseConfig) DBDir() string
DBDir returns the full path to the database directory
func (BaseConfig) GenesisFile ¶
func (cfg BaseConfig) GenesisFile() string
GenesisFile returns the full path to the genesis.json file
func (BaseConfig) LoadNodeKeyID ¶ added in v0.35.0
func (cfg BaseConfig) LoadNodeKeyID() (types.NodeID, error)
LoadNodeKey loads NodeKey located in filePath.
func (BaseConfig) LoadOrGenNodeKeyID ¶ added in v0.35.0
func (cfg BaseConfig) LoadOrGenNodeKeyID() (types.NodeID, error)
LoadOrGenNodeKey attempts to load the NodeKey from the given filePath. If the file does not exist, it generates and saves a new NodeKey.
func (BaseConfig) NodeKeyFile ¶
func (cfg BaseConfig) NodeKeyFile() string
NodeKeyFile returns the full path to the node_key.json file
func (BaseConfig) ValidateBasic ¶
func (cfg BaseConfig) ValidateBasic() error
ValidateBasic performs basic validation (checking param bounds, etc.) and returns an error if any check fails.
type BlockSyncConfig ¶ added in v0.35.0
type BlockSyncConfig struct { Enable bool `mapstructure:"enable"` Version string `mapstructure:"version"` }
BlockSyncConfig (formerly known as FastSync) defines the configuration for the Tendermint block sync service If this node is many blocks behind the tip of the chain, BlockSync allows them to catchup quickly by downloading blocks in parallel and verifying their commits.
func DefaultBlockSyncConfig ¶ added in v0.35.0
func DefaultBlockSyncConfig() *BlockSyncConfig
DefaultBlockSyncConfig returns a default configuration for the block sync service
func TestBlockSyncConfig ¶ added in v0.35.0
func TestBlockSyncConfig() *BlockSyncConfig
TestBlockSyncConfig returns a default configuration for the block sync.
func (*BlockSyncConfig) ValidateBasic ¶ added in v0.35.0
func (cfg *BlockSyncConfig) ValidateBasic() error
ValidateBasic performs basic validation.
type Config ¶
type Config struct { // Top level options use an anonymous struct BaseConfig `mapstructure:",squash"` // Options for services RPC *RPCConfig `mapstructure:"rpc"` P2P *P2PConfig `mapstructure:"p2p"` Mempool *MempoolConfig `mapstructure:"mempool"` StateSync *StateSyncConfig `mapstructure:"statesync"` BlockSync *BlockSyncConfig `mapstructure:"blocksync"` Consensus *ConsensusConfig `mapstructure:"consensus"` TxIndex *TxIndexConfig `mapstructure:"tx-index"` Instrumentation *InstrumentationConfig `mapstructure:"instrumentation"` PrivValidator *PrivValidatorConfig `mapstructure:"priv-validator"` }
Config defines the top level configuration for a Tendermint node
func DefaultConfig ¶
func DefaultConfig() *Config
DefaultConfig returns a default configuration for a Tendermint node
func DefaultValidatorConfig ¶ added in v0.35.0
func DefaultValidatorConfig() *Config
DefaultValidatorConfig returns default config with mode as validator
func ResetTestRoot ¶
func TestConfig ¶
func TestConfig() *Config
TestConfig returns a configuration that can be used for testing
func (*Config) ValidateBasic ¶
ValidateBasic performs basic validation (checking param bounds, etc.) and returns an error if any check fails.
func (*Config) WriteToTemplate ¶ added in v0.35.0
WriteToTemplate writes the config to the exact file specified by the path, in the default toml template and does not mangle the path or filename at all.
type ConsensusConfig ¶
type ConsensusConfig struct { RootDir string `mapstructure:"home"` WalPath string `mapstructure:"wal-file"` // TODO: remove timeout configs, these should be global not local // How long we wait for a proposal block before prevoting nil TimeoutPropose time.Duration `mapstructure:"timeout-propose"` // How much timeout-propose increases with each round TimeoutProposeDelta time.Duration `mapstructure:"timeout-propose-delta"` // How long we wait after receiving +2/3 prevotes for “anything” (ie. not a single block or nil) TimeoutPrevote time.Duration `mapstructure:"timeout-prevote"` // How much the timeout-prevote increases with each round TimeoutPrevoteDelta time.Duration `mapstructure:"timeout-prevote-delta"` // How long we wait after receiving +2/3 precommits for “anything” (ie. not a single block or nil) TimeoutPrecommit time.Duration `mapstructure:"timeout-precommit"` // How much the timeout-precommit increases with each round TimeoutPrecommitDelta time.Duration `mapstructure:"timeout-precommit-delta"` // How long we wait after committing a block, before starting on the new // height (this gives us a chance to receive some more precommits, even // though we already have +2/3). TimeoutCommit time.Duration `mapstructure:"timeout-commit"` // Make progress as soon as we have all the precommits (as if TimeoutCommit = 0) SkipTimeoutCommit bool `mapstructure:"skip-timeout-commit"` // EmptyBlocks mode and possible interval between empty blocks CreateEmptyBlocks bool `mapstructure:"create-empty-blocks"` CreateEmptyBlocksInterval time.Duration `mapstructure:"create-empty-blocks-interval"` // Reactor sleep duration parameters PeerGossipSleepDuration time.Duration `mapstructure:"peer-gossip-sleep-duration"` PeerQueryMaj23SleepDuration time.Duration `mapstructure:"peer-query-maj23-sleep-duration"` DoubleSignCheckHeight int64 `mapstructure:"double-sign-check-height"` // contains filtered or unexported fields }
ConsensusConfig defines the configuration for the Tendermint consensus service, including timeouts and details about the WAL and the block structure.
func DefaultConsensusConfig ¶
func DefaultConsensusConfig() *ConsensusConfig
DefaultConsensusConfig returns a default configuration for the consensus service
func TestConsensusConfig ¶
func TestConsensusConfig() *ConsensusConfig
TestConsensusConfig returns a configuration for testing the consensus service
func (*ConsensusConfig) Commit ¶
func (cfg *ConsensusConfig) Commit(t time.Time) time.Time
Commit returns the amount of time to wait for straggler votes after receiving +2/3 precommits for a single block (ie. a commit).
func (*ConsensusConfig) Precommit ¶
func (cfg *ConsensusConfig) Precommit(round int32) time.Duration
Precommit returns the amount of time to wait for straggler votes after receiving any +2/3 precommits
func (*ConsensusConfig) Prevote ¶
func (cfg *ConsensusConfig) Prevote(round int32) time.Duration
Prevote returns the amount of time to wait for straggler votes after receiving any +2/3 prevotes
func (*ConsensusConfig) Propose ¶
func (cfg *ConsensusConfig) Propose(round int32) time.Duration
Propose returns the amount of time to wait for a proposal
func (*ConsensusConfig) SetWalFile ¶
func (cfg *ConsensusConfig) SetWalFile(walFile string)
SetWalFile sets the path to the write-ahead log file
func (*ConsensusConfig) ValidateBasic ¶
func (cfg *ConsensusConfig) ValidateBasic() error
ValidateBasic performs basic validation (checking param bounds, etc.) and returns an error if any check fails.
func (*ConsensusConfig) WaitForTxs ¶
func (cfg *ConsensusConfig) WaitForTxs() bool
WaitForTxs returns true if the consensus should wait for transactions before entering the propose step
func (*ConsensusConfig) WalFile ¶
func (cfg *ConsensusConfig) WalFile() string
WalFile returns the full path to the write-ahead log file
type DBProvider ¶ added in v0.35.0
DBProvider takes a DBContext and returns an instantiated DB.
type InstrumentationConfig ¶
type InstrumentationConfig struct { // When true, Prometheus metrics are served under /metrics on // PrometheusListenAddr. // Check out the documentation for the list of available metrics. Prometheus bool `mapstructure:"prometheus"` // Address to listen for Prometheus collector(s) connections. PrometheusListenAddr string `mapstructure:"prometheus-listen-addr"` // Maximum number of simultaneous connections. // If you want to accept a larger number than the default, make sure // you increase your OS limits. // 0 - unlimited. MaxOpenConnections int `mapstructure:"max-open-connections"` // Instrumentation namespace. Namespace string `mapstructure:"namespace"` }
InstrumentationConfig defines the configuration for metrics reporting.
func DefaultInstrumentationConfig ¶
func DefaultInstrumentationConfig() *InstrumentationConfig
DefaultInstrumentationConfig returns a default configuration for metrics reporting.
func TestInstrumentationConfig ¶
func TestInstrumentationConfig() *InstrumentationConfig
TestInstrumentationConfig returns a default configuration for metrics reporting.
func (*InstrumentationConfig) ValidateBasic ¶
func (cfg *InstrumentationConfig) ValidateBasic() error
ValidateBasic performs basic validation (checking param bounds, etc.) and returns an error if any check fails.
type MempoolConfig ¶
type MempoolConfig struct { Version string `mapstructure:"version"` RootDir string `mapstructure:"home"` Recheck bool `mapstructure:"recheck"` Broadcast bool `mapstructure:"broadcast"` // Maximum number of transactions in the mempool Size int `mapstructure:"size"` // Limit the total size of all txs in the mempool. // This only accounts for raw transactions (e.g. given 1MB transactions and // max-txs-bytes=5MB, mempool will only accept 5 transactions). MaxTxsBytes int64 `mapstructure:"max-txs-bytes"` // Size of the cache (used to filter transactions we saw earlier) in transactions CacheSize int `mapstructure:"cache-size"` // Do not remove invalid transactions from the cache (default: false) // Set to true if it's not possible for any invalid transaction to become // valid again in the future. KeepInvalidTxsInCache bool `mapstructure:"keep-invalid-txs-in-cache"` // Maximum size of a single transaction // NOTE: the max size of a tx transmitted over the network is {max-tx-bytes}. MaxTxBytes int `mapstructure:"max-tx-bytes"` // Maximum size of a batch of transactions to send to a peer // Including space needed by encoding (one varint per transaction). // XXX: Unused due to https://github.com/tendermint/tendermint/issues/5796 MaxBatchBytes int `mapstructure:"max-batch-bytes"` // TTLDuration, if non-zero, defines the maximum amount of time a transaction // can exist for in the mempool. // // Note, if TTLNumBlocks is also defined, a transaction will be removed if it // has existed in the mempool at least TTLNumBlocks number of blocks or if it's // insertion time into the mempool is beyond TTLDuration. TTLDuration time.Duration `mapstructure:"ttl-duration"` // TTLNumBlocks, if non-zero, defines the maximum number of blocks a transaction // can exist for in the mempool. // // Note, if TTLDuration is also defined, a transaction will be removed if it // has existed in the mempool at least TTLNumBlocks number of blocks or if // it's insertion time into the mempool is beyond TTLDuration. TTLNumBlocks int64 `mapstructure:"ttl-num-blocks"` }
MempoolConfig defines the configuration options for the Tendermint mempool.
func DefaultMempoolConfig ¶
func DefaultMempoolConfig() *MempoolConfig
DefaultMempoolConfig returns a default configuration for the Tendermint mempool.
func TestMempoolConfig ¶
func TestMempoolConfig() *MempoolConfig
TestMempoolConfig returns a configuration for testing the Tendermint mempool
func (*MempoolConfig) ValidateBasic ¶
func (cfg *MempoolConfig) ValidateBasic() error
ValidateBasic performs basic validation (checking param bounds, etc.) and returns an error if any check fails.
type P2PConfig ¶
type P2PConfig struct { RootDir string `mapstructure:"home"` // Address to listen for incoming connections ListenAddress string `mapstructure:"laddr"` // Address to advertise to peers for them to dial ExternalAddress string `mapstructure:"external-address"` // Comma separated list of seed nodes to connect to // We only use these if we can’t connect to peers in the addrbook // // Deprecated: This value is not used by the new PEX reactor. Use // BootstrapPeers instead. // // TODO(#5670): Remove once the p2p refactor is complete. Seeds string `mapstructure:"seeds"` // Comma separated list of peers to be added to the peer store // on startup. Either BootstrapPeers or PersistentPeers are // needed for peer discovery BootstrapPeers string `mapstructure:"bootstrap-peers"` // Comma separated list of nodes to keep persistent connections to PersistentPeers string `mapstructure:"persistent-peers"` // UPNP port forwarding UPNP bool `mapstructure:"upnp"` // Path to address book AddrBook string `mapstructure:"addr-book-file"` // Set true for strict address routability rules // Set false for private or local networks AddrBookStrict bool `mapstructure:"addr-book-strict"` // Maximum number of inbound peers // // TODO: Remove once p2p refactor is complete in favor of MaxConnections. // ref: https://github.com/tendermint/tendermint/issues/5670 MaxNumInboundPeers int `mapstructure:"max-num-inbound-peers"` // Maximum number of outbound peers to connect to, excluding persistent peers. // // TODO: Remove once p2p refactor is complete in favor of MaxConnections. // ref: https://github.com/tendermint/tendermint/issues/5670 MaxNumOutboundPeers int `mapstructure:"max-num-outbound-peers"` // MaxConnections defines the maximum number of connected peers (inbound and // outbound). MaxConnections uint16 `mapstructure:"max-connections"` // MaxOutgoingConnections defines the maximum number of connected peers (inbound and // outbound). MaxOutgoingConnections uint16 `mapstructure:"max-outgoing-connections"` // MaxIncomingConnectionAttempts rate limits the number of incoming connection // attempts per IP address. MaxIncomingConnectionAttempts uint `mapstructure:"max-incoming-connection-attempts"` // List of node IDs, to which a connection will be (re)established ignoring any existing limits UnconditionalPeerIDs string `mapstructure:"unconditional-peer-ids"` // Maximum pause when redialing a persistent peer (if zero, exponential backoff is used) PersistentPeersMaxDialPeriod time.Duration `mapstructure:"persistent-peers-max-dial-period"` // Time to wait before flushing messages out on the connection FlushThrottleTimeout time.Duration `mapstructure:"flush-throttle-timeout"` // Maximum size of a message packet payload, in bytes MaxPacketMsgPayloadSize int `mapstructure:"max-packet-msg-payload-size"` // Rate at which packets can be sent, in bytes/second SendRate int64 `mapstructure:"send-rate"` // Rate at which packets can be received, in bytes/second RecvRate int64 `mapstructure:"recv-rate"` // Set true to enable the peer-exchange reactor PexReactor bool `mapstructure:"pex"` // Comma separated list of peer IDs to keep private (will not be gossiped to // other peers) PrivatePeerIDs string `mapstructure:"private-peer-ids"` // Toggle to disable guard against peers connecting from the same ip. AllowDuplicateIP bool `mapstructure:"allow-duplicate-ip"` // Peer connection configuration. HandshakeTimeout time.Duration `mapstructure:"handshake-timeout"` DialTimeout time.Duration `mapstructure:"dial-timeout"` // Testing params. // Force dial to fail TestDialFail bool `mapstructure:"test-dial-fail"` // UseLegacy enables the "legacy" P2P implementation and // disables the newer default implementation. This flag will // be removed in a future release. UseLegacy bool `mapstructure:"use-legacy"` // Makes it possible to configure which queue backend the p2p // layer uses. Options are: "fifo", "simple-priority", "priority", and "wdrr", // with the default being "priority". QueueType string `mapstructure:"queue-type"` }
P2PConfig defines the configuration options for the Tendermint peer-to-peer networking layer
func DefaultP2PConfig ¶
func DefaultP2PConfig() *P2PConfig
DefaultP2PConfig returns a default configuration for the peer-to-peer layer
func TestP2PConfig ¶
func TestP2PConfig() *P2PConfig
TestP2PConfig returns a configuration for testing the peer-to-peer layer
func (*P2PConfig) AddrBookFile ¶
AddrBookFile returns the full path to the address book
func (*P2PConfig) ValidateBasic ¶
ValidateBasic performs basic validation (checking param bounds, etc.) and returns an error if any check fails.
type PrivValidatorConfig ¶ added in v0.35.0
type PrivValidatorConfig struct { RootDir string `mapstructure:"home"` // Path to the JSON file containing the private key to use as a validator in the consensus protocol Key string `mapstructure:"key-file"` // Path to the JSON file containing the last sign state of a validator State string `mapstructure:"state-file"` // TCP or UNIX socket address for Tendermint to listen on for // connections from an external PrivValidator process ListenAddr string `mapstructure:"laddr"` // Client certificate generated while creating needed files for secure connection. // If a remote validator address is provided but no certificate, the connection will be insecure ClientCertificate string `mapstructure:"client-certificate-file"` // Client key generated while creating certificates for secure connection ClientKey string `mapstructure:"client-key-file"` // Path Root Certificate Authority used to sign both client and server certificates RootCA string `mapstructure:"root-ca-file"` }
PrivValidatorConfig defines the configuration parameters for running a validator
func DefaultPrivValidatorConfig ¶ added in v0.35.0
func DefaultPrivValidatorConfig() *PrivValidatorConfig
DefaultBaseConfig returns a default private validator configuration for a Tendermint node.
func (*PrivValidatorConfig) AreSecurityOptionsPresent ¶ added in v0.35.0
func (cfg *PrivValidatorConfig) AreSecurityOptionsPresent() bool
func (*PrivValidatorConfig) ClientCertificateFile ¶ added in v0.35.0
func (cfg *PrivValidatorConfig) ClientCertificateFile() string
ClientCertificateFile returns the full path to the priv_validator_key.json file
func (*PrivValidatorConfig) ClientKeyFile ¶ added in v0.35.0
func (cfg *PrivValidatorConfig) ClientKeyFile() string
ClientKeyFile returns the full path to the priv_validator_key.json file
func (*PrivValidatorConfig) KeyFile ¶ added in v0.35.0
func (cfg *PrivValidatorConfig) KeyFile() string
KeyFile returns the full path to the priv_validator_key.json file
func (*PrivValidatorConfig) RootCAFile ¶ added in v0.35.0
func (cfg *PrivValidatorConfig) RootCAFile() string
CertificateAuthorityFile returns the full path to the priv_validator_key.json file
func (*PrivValidatorConfig) StateFile ¶ added in v0.35.0
func (cfg *PrivValidatorConfig) StateFile() string
StateFile returns the full path to the priv_validator_state.json file
type RPCConfig ¶
type RPCConfig struct { RootDir string `mapstructure:"home"` // TCP or UNIX socket address for the RPC server to listen on ListenAddress string `mapstructure:"laddr"` // A list of origins a cross-domain request can be executed from. // If the special '*' value is present in the list, all origins will be allowed. // An origin may contain a wildcard (*) to replace 0 or more characters (i.e.: http://*.domain.com). // Only one wildcard can be used per origin. CORSAllowedOrigins []string `mapstructure:"cors-allowed-origins"` // A list of methods the client is allowed to use with cross-domain requests. CORSAllowedMethods []string `mapstructure:"cors-allowed-methods"` // A list of non simple headers the client is allowed to use with cross-domain requests. CORSAllowedHeaders []string `mapstructure:"cors-allowed-headers"` // TCP or UNIX socket address for the gRPC server to listen on // NOTE: This server only supports /broadcast_tx_commit // Deprecated: gRPC in the RPC layer of Tendermint will be removed in 0.36. GRPCListenAddress string `mapstructure:"grpc-laddr"` // Maximum number of simultaneous connections. // Does not include RPC (HTTP&WebSocket) connections. See max-open-connections // If you want to accept a larger number than the default, make sure // you increase your OS limits. // 0 - unlimited. // Deprecated: gRPC in the RPC layer of Tendermint will be removed in 0.36. GRPCMaxOpenConnections int `mapstructure:"grpc-max-open-connections"` // Activate unsafe RPC commands like /dial-persistent-peers and /unsafe-flush-mempool Unsafe bool `mapstructure:"unsafe"` // Maximum number of simultaneous connections (including WebSocket). // Does not include gRPC connections. See grpc-max-open-connections // If you want to accept a larger number than the default, make sure // you increase your OS limits. // 0 - unlimited. // Should be < {ulimit -Sn} - {MaxNumInboundPeers} - {MaxNumOutboundPeers} - {N of wal, db and other open files} // 1024 - 40 - 10 - 50 = 924 = ~900 MaxOpenConnections int `mapstructure:"max-open-connections"` // Maximum number of unique clientIDs that can /subscribe // If you're using /broadcast_tx_commit, set to the estimated maximum number // of broadcast_tx_commit calls per block. MaxSubscriptionClients int `mapstructure:"max-subscription-clients"` // Maximum number of unique queries a given client can /subscribe to // If you're using GRPC (or Local RPC client) and /broadcast_tx_commit, set // to the estimated maximum number of broadcast_tx_commit calls per block. MaxSubscriptionsPerClient int `mapstructure:"max-subscriptions-per-client"` // The number of events that can be buffered per subscription before // returning `ErrOutOfCapacity`. SubscriptionBufferSize int `mapstructure:"experimental-subscription-buffer-size"` // The maximum number of responses that can be buffered per WebSocket // client. If clients cannot read from the WebSocket endpoint fast enough, // they will be disconnected, so increasing this parameter may reduce the // chances of them being disconnected (but will cause the node to use more // memory). // // Must be at least the same as `SubscriptionBufferSize`, otherwise // connections may be dropped unnecessarily. WebSocketWriteBufferSize int `mapstructure:"experimental-websocket-write-buffer-size"` // If a WebSocket client cannot read fast enough, at present we may // silently drop events instead of generating an error or disconnecting the // client. // // Enabling this parameter will cause the WebSocket connection to be closed // instead if it cannot read fast enough, allowing for greater // predictability in subscription behavior. CloseOnSlowClient bool `mapstructure:"experimental-close-on-slow-client"` // How long to wait for a tx to be committed during /broadcast_tx_commit // WARNING: Using a value larger than 10s will result in increasing the // global HTTP write timeout, which applies to all connections and endpoints. // See https://github.com/tendermint/tendermint/issues/3435 TimeoutBroadcastTxCommit time.Duration `mapstructure:"timeout-broadcast-tx-commit"` // Maximum size of request body, in bytes MaxBodyBytes int64 `mapstructure:"max-body-bytes"` // Maximum size of request header, in bytes MaxHeaderBytes int `mapstructure:"max-header-bytes"` // The path to a file containing certificate that is used to create the HTTPS server. // Might be either absolute path or path related to Tendermint's config directory. // // If the certificate is signed by a certificate authority, // the certFile should be the concatenation of the server's certificate, any intermediates, // and the CA's certificate. // // NOTE: both tls-cert-file and tls-key-file must be present for Tendermint to create HTTPS server. // Otherwise, HTTP server is run. TLSCertFile string `mapstructure:"tls-cert-file"` // The path to a file containing matching private key that is used to create the HTTPS server. // Might be either absolute path or path related to tendermint's config directory. // // NOTE: both tls-cert-file and tls-key-file must be present for Tendermint to create HTTPS server. // Otherwise, HTTP server is run. TLSKeyFile string `mapstructure:"tls-key-file"` // pprof listen address (https://golang.org/pkg/net/http/pprof) PprofListenAddress string `mapstructure:"pprof-laddr"` }
RPCConfig defines the configuration options for the Tendermint RPC server
func DefaultRPCConfig ¶
func DefaultRPCConfig() *RPCConfig
DefaultRPCConfig returns a default configuration for the RPC server
func TestRPCConfig ¶
func TestRPCConfig() *RPCConfig
TestRPCConfig returns a configuration for testing the RPC server
func (*RPCConfig) IsCorsEnabled ¶
IsCorsEnabled returns true if cross-origin resource sharing is enabled.
func (RPCConfig) IsTLSEnabled ¶ added in v0.31.1
func (*RPCConfig) ValidateBasic ¶
ValidateBasic performs basic validation (checking param bounds, etc.) and returns an error if any check fails.
type ServiceProvider ¶ added in v0.35.0
ServiceProvider takes a config and a logger and returns a ready to go Node.
type StateSyncConfig ¶ added in v0.34.0
type StateSyncConfig struct { // State sync rapidly bootstraps a new node by discovering, fetching, and restoring a // state machine snapshot from peers instead of fetching and replaying historical // blocks. Requires some peers in the network to take and serve state machine // snapshots. State sync is not attempted if the node has any local state // (LastBlockHeight > 0). The node will have a truncated block history, starting from // the height of the snapshot. Enable bool `mapstructure:"enable"` // State sync uses light client verification to verify state. This can be done either // through the P2P layer or the RPC layer. Set this to true to use the P2P layer. If // false (default), the RPC layer will be used. UseP2P bool `mapstructure:"use-p2p"` // If using RPC, at least two addresses need to be provided. They should be compatible // with net.Dial, for example: "host.example.com:2125". RPCServers []string `mapstructure:"rpc-servers"` // The hash and height of a trusted block. Must be within the trust-period. TrustHeight int64 `mapstructure:"trust-height"` TrustHash string `mapstructure:"trust-hash"` // The trust period should be set so that Tendermint can detect and gossip // misbehavior before it is considered expired. For chains based on the Cosmos SDK, // one day less than the unbonding period should suffice. TrustPeriod time.Duration `mapstructure:"trust-period"` // Time to spend discovering snapshots before initiating a restore. DiscoveryTime time.Duration `mapstructure:"discovery-time"` // Temporary directory for state sync snapshot chunks, defaults to os.TempDir(). // The synchronizer will create a new, randomly named directory within this directory // and remove it when the sync is complete. TempDir string `mapstructure:"temp-dir"` // The timeout duration before re-requesting a chunk, possibly from a different // peer (default: 15 seconds). ChunkRequestTimeout time.Duration `mapstructure:"chunk-request-timeout"` // The number of concurrent chunk and block fetchers to run (default: 4). Fetchers int32 `mapstructure:"fetchers"` }
StateSyncConfig defines the configuration for the Tendermint state sync service
func DefaultStateSyncConfig ¶ added in v0.34.0
func DefaultStateSyncConfig() *StateSyncConfig
DefaultStateSyncConfig returns a default configuration for the state sync service
func TestStateSyncConfig ¶ added in v0.34.0
func TestStateSyncConfig() *StateSyncConfig
TestStateSyncConfig returns a default configuration for the state sync service
func (*StateSyncConfig) TrustHashBytes ¶ added in v0.34.0
func (cfg *StateSyncConfig) TrustHashBytes() []byte
func (*StateSyncConfig) ValidateBasic ¶ added in v0.34.0
func (cfg *StateSyncConfig) ValidateBasic() error
ValidateBasic performs basic validation.
type TxIndexConfig ¶
type TxIndexConfig struct { // The backend database list to back the indexer. // If list contains `null`, meaning no indexer service will be used. // // Options: // 1) "null" - no indexer services. // 2) "kv" (default) - the simplest possible indexer, // backed by key-value storage (defaults to levelDB; see DBBackend). // 3) "psql" - the indexer services backed by PostgreSQL. Indexer []string `mapstructure:"indexer"` // The PostgreSQL connection configuration, the connection format: // postgresql://<user>:<password>@<host>:<port>/<db>?<opts> PsqlConn string `mapstructure:"psql-conn"` }
----------------------------------------------------------------------------- TxIndexConfig Remember that Event has the following structure: type: [
key: value, ...
]
CompositeKeys are constructed by `type.key` TxIndexConfig defines the configuration for the transaction indexer, including composite keys to index.
func DefaultTxIndexConfig ¶
func DefaultTxIndexConfig() *TxIndexConfig
DefaultTxIndexConfig returns a default configuration for the transaction indexer.
func TestTxIndexConfig ¶
func TestTxIndexConfig() *TxIndexConfig
TestTxIndexConfig returns a default configuration for the transaction indexer.