Documentation
¶
Index ¶
Constants ¶
const ( // ModeProd refers to production mode ModeProd = iota // ModeDev refers to development mode ModeDev // ModeTest refers to test mode ModeTest )
const DefaultNetVersion = "0001"
DefaultNetVersion is the default network version used when no network version is provided.
Variables ¶
var AccountDirName = "accounts"
AccountDirName is the name of the directory for storing accounts
var SeedAddresses = []string{
"ellcrys://12D3KooWKAEhd4DXGPeN71FeSC1ih86Ym2izpoPueaCrME8xu8UM@n1.ellnode.com:9000",
"ellcrys://12D3KooWD276x1ieiV9cmtBdZeVLN5LtFrnUS6AT2uAkHHFNADRx@n2.ellnode.com:9000",
"ellcrys://12D3KooWDdUZny1FagkUregeNQUb8PB6Vg1LMWcwWquqovm7QADb@n3.ellnode.com:9000",
"ellcrys://12D3KooWDWA4g8EXWWBSbWbefSu2RGttNh1QDpQYA7nCDnbVADP1@n4.ellnode.com:9000",
}
SeedAddresses includes addresses to nodes that the client will attempt to synchronize with.
Functions ¶
func SetVersions ¶
func SetVersions(netVersion string)
SetVersions sets the protocol version. All protocol handlers will be prefixed with the version to create a
Types ¶
type EngineConfig ¶
type EngineConfig struct {
// Node holds the node configurations
Node *NodeConfig `json:"node" mapstructure:"node"`
// TxPool holds transaction pool configurations
TxPool *TxPoolConfig `json:"txPool" mapstructure:"txPool"`
// Miner holds mining configurations
Miner *MinerConfig `json:"mining" mapstructure:"mining"`
// RPC holds rpc configurations
RPC *RPCConfig `json:"rpc" mapstructure:"rpc"`
// VersionInfo holds version information
VersionInfo *VersionInfo `json:"-" mapstructure:"-"`
// Log is the application logger
Log logger.Logger `json:"-" mapstructure:"-"`
// contains filtered or unexported fields
}
EngineConfig represents the client's configuration
func InitConfig ¶
func InitConfig(rootCommand *cobra.Command) *EngineConfig
InitConfig reads in config file and ENV variables if set.
func (*EngineConfig) DataDir ¶
func (c *EngineConfig) DataDir() string
DataDir returns the application's data directory
func (*EngineConfig) NetDataDir ¶
func (c *EngineConfig) NetDataDir() string
NetDataDir returns the network's data directory
func (*EngineConfig) SetDataDir ¶
func (c *EngineConfig) SetDataDir(d string)
SetDataDir sets the application's data directory
func (*EngineConfig) SetNetDataDir ¶
func (c *EngineConfig) SetNetDataDir(d string)
SetNetDataDir sets the network's data directory
type MinerConfig ¶
type MinerConfig struct {
// Mode describes the mining mode
Mode uint `json:"-" mapstructure:"-"`
}
MinerConfig defines configuration for mining
type NodeConfig ¶
type NodeConfig struct {
// BootstrapAddresses sets addresses to connect to
BootstrapAddresses []string `json:"bootstrapAddrs" mapstructure:"bootstrapAddrs"`
// ListeningAddr is the address the node binds on to listen to incoming messages
ListeningAddr string `json:"address" mapstructure:"address"`
// Mode determines the current environment type
Mode int `json:"mode" mapstructure:"mode"`
// GetAddrInterval is the interval between GetAddr messages
GetAddrInterval int64 `json:"getAddrInt" mapstructure:"getAddrInt"`
// PingInterval is the interval between Ping messages
PingInterval int64 `json:"pingInt" mapstructure:"pingInt"`
// SelfAdvInterval is the interval self advertisement messages
SelfAdvInterval int64 `json:"selfAdvInt" mapstructure:"selfAdvInt"`
// CleanUpInterval is the interval between address clean ups
CleanUpInterval int64 `json:"cleanUpInt" mapstructure:"cleanUpInt"`
// MaxAddrsExpected is the maximum number addresses
// expected from a remote peer
MaxAddrsExpected int64 `json:"maxAddrsExpected" mapstructure:"maxAddrsExpected"`
// MaxOutboundConnections is the maximum number of outbound
// connections the node is allowed
MaxOutboundConnections int64 `json:"maxOutConnections" mapstructure:"maxOutConnections"`
// MaxOutboundConnections is the maximum number of inbound
// connections the node is allowed
MaxInboundConnections int64 `json:"maxInConnections" mapstructure:"maxInConnections"`
// ConnEstInterval is the time interval when the node
ConnEstInterval int64 `json:"conEstInt" mapstructure:"conEstInt"`
// MessageTimeout is the number of seconds to attempt to
// connect to or read from a peer.
MessageTimeout int64 `json:"messageTimeout" mapstructure:"messageTimeout"`
// Account is the coinbase account
Account string `json:"account" mapstructure:"account"`
}
NodeConfig represents node's configuration
type ProtocolVersions ¶
type ProtocolVersions struct {
// Protocol is the network version supported by this client
Protocol string
// Handshake is the message version for handling wire.Handshake
Handshake string
// Ping is the version for handling wire.Ping messages
Ping string
// GetAddr is the message version for handling wire.GetAddr messages
GetAddr string
// Addr is the message version for handling wire.Addr messages
Addr string
// Tx is the message version for handing wire.Transaction messages
Tx string
// BlockInfo is the message version for handling wire.BlockInfo messages
BlockInfo string
// BlockBody is the message version for handling wire.BlockBody messages
BlockBody string
// GetBlockHashes is the message version for handling wire.BlockHashes messages
GetBlockHashes string
// RequestBlock is the message version for handling wire.RequestBlock messages
RequestBlock string
// GetBlockBodies is the message version for handling wire.GetBlockBodies messages
GetBlockBodies string
}
ProtocolVersions hold protocol message handler versions
func GetVersions ¶
func GetVersions() *ProtocolVersions
GetVersions returns the protocol version object
type RPCConfig ¶
type RPCConfig struct {
// DisableAuth determines whether to
// perform authentication for requests
// attempting to invoke private methods.
DisableAuth bool `json:"disableAuth" mapstructure:"disableAuth"`
// Username is the RPC username
Username string `json:"username" mapstructure:"username"`
// Password is the RPC password
Password string `json:"password" mapstructure:"password"`
// SessionSecretKey is the key used to sign the
// session tokens. Must be kept secret.
SessionSecretKey string `json:"sessionSecretKey" mapstructure:"sessionSecretKey"`
// SessionTTL is the duration a session can
// remain active before it is considered expired.
SessionTTL int64 `json:"sessionTTL" mapstructure:"sessionTTL"`
}
RPCConfig defines configuration for the RPC component
type TxPoolConfig ¶
type TxPoolConfig struct {
// Capacity is the maximum amount of item the transaction pool can hold
Capacity int64 `json:"capacity" mapstructure:"capacity"`
}
TxPoolConfig defines configuration for the transaction pool
type VersionInfo ¶
type VersionInfo struct {
BuildVersion string `json:"buildVersion" mapstructure:"buildVersion"`
BuildCommit string `json:"buildCommit" mapstructure:"buildCommit"`
BuildDate string `json:"buildDate" mapstructure:"buildDate"`
GoVersion string `json:"goVersion" mapstructure:"goVersion"`
}
VersionInfo describes the clients components and runtime version information