config

package
v0.10.5 Latest Latest
Warning

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

Go to latest
Published: Oct 17, 2023 License: Apache-2.0 Imports: 9 Imported by: 4

Documentation

Index

Constants

View Source
const (
	// DefaultListenAddress is a default listen address for P2P client.
	DefaultListenAddress = "/ip4/0.0.0.0/tcp/7676"
	Version              = "0.4.0"
)

Variables

View Source
var DefaultNodeConfig = NodeConfig{
	P2P: P2PConfig{
		ListenAddress: DefaultListenAddress,
		Seeds:         "",
	},
	Aggregator:     false,
	LazyAggregator: false,
	BlockManagerConfig: BlockManagerConfig{
		BlockTime:   1 * time.Second,
		DABlockTime: 15 * time.Second,
		NamespaceID: types.NamespaceID{},
	},
	DALayer:  "mock",
	DAConfig: "",
	Light:    false,
	HeaderConfig: HeaderConfig{
		TrustedHash: "",
	},
}

DefaultNodeConfig keeps default values of NodeConfig

Functions

func AddFlags

func AddFlags(cmd *cobra.Command)

AddFlags adds Rollkit specific configuration options to cobra Command.

This function is called in cosmos-sdk.

func GetMultiAddr added in v0.10.5

func GetMultiAddr(addr string) (multiaddr.Multiaddr, error)

GetMultiAddr converts single Cosmos-style network address into Multiaddr. Input format: [protocol://][<NODE_ID>@]<IPv4>:<PORT>

func GetNodeConfig added in v0.10.5

func GetNodeConfig(nodeConf *NodeConfig, cmConf *cmcfg.Config)

GetNodeConfig translates Tendermint's configuration into Rollkit configuration.

This method only translates configuration, and doesn't verify it. If some option is missing in Tendermint's config, it's skipped during translation.

func TranslateAddresses added in v0.10.5

func TranslateAddresses(conf *NodeConfig) error

TranslateAddresses updates conf by changing Cosmos-style addresses to Multiaddr format.

Types

type BlockManagerConfig

type BlockManagerConfig struct {
	// BlockTime defines how often new blocks are produced
	BlockTime time.Duration `mapstructure:"block_time"`
	// DABlockTime informs about block time of underlying data availability layer
	DABlockTime time.Duration `mapstructure:"da_block_time"`
	// DAStartHeight allows skipping first DAStartHeight-1 blocks when querying for blocks.
	DAStartHeight uint64            `mapstructure:"da_start_height"`
	NamespaceID   types.NamespaceID `mapstructure:"namespace_id"`
}

BlockManagerConfig consists of all parameters required by BlockManagerConfig

type HeaderConfig added in v0.7.0

type HeaderConfig struct {
	TrustedHash string `mapstructure:"trusted_hash"`
}

HeaderConfig allows node to pass the initial trusted header hash to start the header exchange service

type NodeConfig

type NodeConfig struct {
	// parameters below are translated from existing config
	RootDir string
	DBPath  string
	P2P     P2PConfig
	RPC     RPCConfig
	// parameters below are Rollkit specific and read from config
	Aggregator         bool `mapstructure:"aggregator"`
	BlockManagerConfig `mapstructure:",squash"`
	DALayer            string `mapstructure:"da_layer"`
	DAConfig           string `mapstructure:"da_config"`
	Light              bool   `mapstructure:"light"`
	HeaderConfig       `mapstructure:",squash"`
	LazyAggregator     bool `mapstructure:"lazy_aggregator"`
}

NodeConfig stores Rollkit node configuration.

func (*NodeConfig) GetViperConfig

func (nc *NodeConfig) GetViperConfig(v *viper.Viper) error

GetViperConfig reads configuration parameters from Viper instance.

This method is called in cosmos-sdk.

type P2PConfig

type P2PConfig struct {
	ListenAddress string // Address to listen for incoming connections
	Seeds         string // Comma separated list of seed nodes to connect to
	BlockedPeers  string // Comma separated list of nodes to ignore
	AllowedPeers  string // Comma separated list of nodes to whitelist
}

P2PConfig stores configuration related to peer-to-peer networking.

type RPCConfig

type RPCConfig struct {
	ListenAddress string

	// Cross Origin Resource Sharing settings
	CORSAllowedOrigins []string
	CORSAllowedMethods []string
	CORSAllowedHeaders []string

	// 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

	// 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"`
}

RPCConfig holds RPC configuration params.

Jump to

Keyboard shortcuts

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