node

package
v2.5.0+incompatible Latest Latest
Warning

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

Go to latest
Published: Aug 27, 2019 License: GPL-3.0 Imports: 33 Imported by: 6

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (
	ErrDataDirUsed             = errors.New("dataDir already used by another process")
	ErrNodeStopped             = errors.New("node not started")
	ErrNodeRunning             = errors.New("node already running")
	ErrServiceUnknown          = errors.New("unknown service")
	ErrWalletConfigNil         = errors.New("wallet config is nil")
	ErrEntropyStorePathInvalid = errors.New("entropyStorePath is invalid")
	ErrViteConfigNil           = errors.New("vite config is nil")
	ErrP2PConfigNil            = errors.New("p2p config is nil")
)
View Source
var DefaultNodeConfig = Config{
	IPCPath:     "gvite.ipc",
	DataDir:     DefaultDataDir(),
	KeyStoreDir: DefaultDataDir(),
	HttpPort:    common.DefaultHTTPPort,
	WSPort:      common.DefaultWSPort,

	LogLevel:      "info",
	WSOrigins:     []string{"*"},
	WSExposeAll:   true,
	HttpExposeAll: true,

	Single:          config.DefaultSingle,
	Identity:        config.DefaultNodeName,
	NetID:           config.DefaultNetID,
	ListenInterface: config.DefaultListenInterface,
	Port:            config.DefaultPort,
	FilePort:        config.DefaultFilePort,
	Discover:        config.DefaultDiscover,
	MaxPeers:        config.DefaultMaxPeers,
	MaxInboundRatio: config.DefaultMaxInboundRatio,
	MinPeers:        config.DefaultMinPeers,
	MaxPendingPeers: config.DefaultMaxPendingPeers,
	ForwardStrategy: config.DefaultForwardStrategy,
	AccessControl:   config.DefaultAccessControl,
}

Functions

func DefaultDataDir

func DefaultDataDir() string

DefaultDataDir is the default data directory to use for the databases and other persistence requirements.

Types

type Config

type Config struct {
	NetSelect string

	DataDir string `json:"DataDir"`

	KeyStoreDir string `json:"KeyStoreDir"`

	// template:["broker1,broker2,...|topic",""]
	KafkaProducers []string `json:"KafkaProducers"`

	// chain
	LedgerGcRetain uint64          `json:"LedgerGcRetain"`
	LedgerGc       *bool           `json:"LedgerGc"`
	OpenPlugins    *bool           `json:"OpenPlugins"`
	VmLogWhiteList []types.Address `json:"vmLogWhiteList"` // contract address white list which save VM logs
	VmLogAll       *bool           `json:"vmLogAll"`       // save all VM logs, it will cost more disk space

	// genesis
	GenesisFile string `json:"GenesisFile"`

	// net
	Single             bool
	ListenInterface    string
	Port               int
	FilePort           int
	PublicAddress      string
	FilePublicAddress  string
	Identity           string
	NetID              int
	PeerKey            string `json:"PrivateKey"`
	Discover           bool
	MaxPeers           int
	MinPeers           int
	MaxInboundRatio    int
	MaxPendingPeers    int
	BootNodes          []string
	BootSeeds          []string
	StaticNodes        []string
	AccessControl      string
	AccessAllowKeys    []string
	AccessDenyKeys     []string
	BlackBlockHashList []string // from high to low, like: "xxxxxx-11111"
	WhiteBlockList     []string // from high to low, like: "xxxxxx-10001"
	ForwardStrategy    string

	//producer
	EntropyStorePath     string `json:"EntropyStorePath"`
	EntropyStorePassword string `json:"EntropyStorePassword"`
	CoinBase             string `json:"CoinBase"`
	MinerEnabled         bool   `json:"Miner"`
	MinerInterval        int    `json:"MinerInterval"`

	//rpc
	RPCEnabled  bool  `json:"RPCEnabled"`
	IPCEnabled  bool  `json:"IPCEnabled"`
	WSEnabled   bool  `json:"WSEnabled"`
	TxDexEnable *bool `json:"TxDexEnable"`

	IPCPath          string   `json:"IPCPath"`
	HttpHost         string   `json:"HttpHost"`
	HttpPort         int      `json:"HttpPort"`
	HttpVirtualHosts []string `json:"HttpVirtualHosts"`
	WSHost           string   `json:"WSHost"`
	WSPort           int      `json:"WSPort"`

	HTTPCors            []string `json:"HTTPCors"`
	WSOrigins           []string `json:"WSOrigins"`
	PublicModules       []string `json:"PublicModules"`
	WSExposeAll         bool     `json:"WSExposeAll"`
	HttpExposeAll       bool     `json:"HttpExposeAll"`
	TestTokenHexPrivKey string   `json:"TestTokenHexPrivKey"`
	TestTokenTti        string   `json:"TestTokenTti"`

	PowServerUrl string `json:"PowServerUrl"`

	//Log level
	LogLevel    string `json:"LogLevel"`
	ErrorLogDir string `json:"ErrorLogDir"`

	//VM
	VMTestEnabled         bool `json:"VMTestEnabled"`
	VMTestParamEnabled    bool `json:"VMTestParamEnabled"`
	QuotaTestParamEnabled bool `json:"QuotaTestParamEnabled"`
	VMDebug               bool `json:"VMDebug"`

	// subscribe
	SubscribeEnabled bool `json:"SubscribeEnabled"`

	// dashboard
	DashboardTargetURL string

	// reward
	RewardAddr string `json:"RewardAddr"`

	//metrics
	MetricsEnable    *bool   `json:"MetricsEnable"`
	InfluxDBEnable   *bool   `json:"InfluxDBEnable"`
	InfluxDBEndpoint *string `json:"InfluxDBEndpoint"`
	InfluxDBDatabase *string `json:"InfluxDBDatabase"`
	InfluxDBUsername *string `json:"InfluxDBUsername"`
	InfluxDBPassword *string `json:"InfluxDBPassword"`
	InfluxDBHostTag  *string `json:"InfluxDBHostTag"`
}

func (*Config) DataDirPathAbs

func (c *Config) DataDirPathAbs() error

resolve the dataDir so future changes to the current working directory don't affect the node

func (*Config) GetPrivateKey

func (c *Config) GetPrivateKey() ed25519.PrivateKey

func (*Config) HTTPEndpoint

func (c *Config) HTTPEndpoint() string

func (*Config) IPCEndpoint

func (c *Config) IPCEndpoint() string

func (*Config) RunErrorLogHandler

func (c *Config) RunErrorLogHandler() log15.Handler

func (*Config) RunLogDir

func (c *Config) RunLogDir() string

func (*Config) RunLogHandler

func (c *Config) RunLogHandler() log15.Handler

func (*Config) SetPrivateKey

func (c *Config) SetPrivateKey(privateKey string)

func (*Config) WSEndpoint

func (c *Config) WSEndpoint() string

type Node

type Node struct {
	// contains filtered or unexported fields
}

Node is chain container that manages p2p、rpc、vite modules

func New

func New(conf *Config) (*Node, error)

func (*Node) Attach

func (node *Node) Attach() (*rpc.Client, error)

func (*Node) Config

func (node *Node) Config() *Config

func (*Node) GetHttpApis

func (node *Node) GetHttpApis() []rpc.API

Http apis

func (*Node) GetInProcessApis

func (node *Node) GetInProcessApis() []rpc.API

In-proc apis

func (*Node) GetIpcApis

func (node *Node) GetIpcApis() []rpc.API

Ipc apis

func (*Node) GetWSApis

func (node *Node) GetWSApis() []rpc.API

WS apis

func (*Node) Prepare

func (node *Node) Prepare() (err error)

func (*Node) Start

func (node *Node) Start() error

func (*Node) Stop

func (node *Node) Stop() error

func (*Node) Vite

func (node *Node) Vite() *vite.Vite

func (*Node) ViteConfig added in v1.3.0

func (node *Node) ViteConfig() *config.Config

func (*Node) ViteServer

func (node *Node) ViteServer() *vite.Vite

func (*Node) Wait

func (node *Node) Wait()

func (*Node) WalletManager

func (node *Node) WalletManager() *wallet.Manager

Jump to

Keyboard shortcuts

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