node

package
v1.3.0 Latest Latest
Warning

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

Go to latest
Published: Jun 14, 2019 License: LGPL-3.0 Imports: 38 Imported by: 0

Documentation

Index

Constants

View Source
const (
	DefaultHTTPHost      = "localhost" // Default host interface for the HTTP RPC server
	DefaultHTTPPort      = 8001        // Default TCP port for the HTTP RPC server
	DefaultWSHost        = "localhost" // Default host interface for the websocket RPC server
	DefaultWSPort        = 8002        // Default TCP port for the websocket RPC server
	DefaultP2PPort       = 60001
	DefaultP2pMaxPeerNum = 1000
)

Variables

View Source
var (
	ErrToName         = errors.New("the length of toName field in transaction is out of max length limit")
	ErrTxMessage      = errors.New("the length of message field in transaction is out of max length limit")
	ErrCreateContract = errors.New("the data of create contract transaction can't be null")
	ErrSpecialTx      = errors.New("the data of special transaction can't be null")
	ErrTxType         = errors.New("the transaction type does not exist")
	ErrLemoAddress    = errors.New("lemoAddress is incorrect")
	ErrAssetId        = errors.New("assetid is incorrect")
	ErrTxExpiration   = errors.New("tx expiration time is out of date")
	ErrNegativeValue  = errors.New("negative value")
	ErrTxChainID      = errors.New("tx chainID is incorrect")
	ErrInputParams    = errors.New("input params incorrect")
	ErrTxTo           = errors.New("transaction to is incorrect")
)
View Source
var (
	ErrAlreadyRunning    = errors.New("already running")
	ErrOpenFileFailed    = errors.New("open file datadir failed")
	ErrServerStartFailed = errors.New("start p2p server failed")
	ErrRpcStartFailed    = errors.New("start rpc failed")
)
View Source
var (
	DataDirFlag = cli.StringFlag{
		Name:  common.DataDir,
		Usage: "Data directory for the databases",
		Value: DefaultDataDir(),
	}
	MaxPeersFlag = cli.IntFlag{
		Name:  common.MaxPeers,
		Usage: "Maximum number of network peers",
		Value: DefaultP2pMaxPeerNum,
	}
	ListenPortFlag = cli.IntFlag{
		Name:  common.ListenPort,
		Usage: "Network listening port",
		Value: DefaultP2PPort,
	}
	ExtraDataFlag = cli.StringFlag{
		Name:  common.ExtraData,
		Usage: "Block extra data set by the miner (default = client version)",
	}
	AutoMineFlag = cli.BoolFlag{
		Name:  common.MiningEnabled,
		Usage: "Enable mining",
	}

	RPCEnabledFlag = cli.BoolFlag{
		Name:  common.RPCEnabled,
		Usage: "Enable the HTTP-RPC server",
	}
	RPCListenAddrFlag = cli.StringFlag{
		Name:  common.RPCListenAddr,
		Usage: "HTTP-RPC server listening interface",
		Value: DefaultHTTPHost,
	}
	RPCPortFlag = cli.IntFlag{
		Name:  common.RPCPort,
		Usage: "HTTP-RPC server listening port",
		Value: DefaultHTTPPort,
	}
	RPCCORSDomainFlag = cli.StringFlag{
		Name:  common.RPCCORSDomain,
		Usage: "Comma separated list of domains from which to accept cross origin requests (browser enforced)",
		Value: "",
	}
	RPCVirtualHostsFlag = cli.StringFlag{
		Name:  common.RPCVirtualHosts,
		Usage: "Comma separated list of virtual hostnames from which to accept requests(server enforced). Accepts '*' wildcard",
		Value: strings.Join(DefaultHTTPVirtualHosts, ","),
	}
	IPCDisabledFlag = cli.BoolFlag{
		Name:  common.IPCDisabled,
		Usage: "Disable the IPC-RPC server",
	}
	IPCPathFlag = cli.StringFlag{
		Name:  common.IPCPath,
		Usage: "Filename for IPC socket/pipe within the datadir",
	}
	WSEnabledFlag = cli.BoolFlag{
		Name:  common.WSEnabled,
		Usage: "Enable the WS-RPC server",
	}
	WSListenAddrFlag = cli.StringFlag{
		Name:  common.WSListenAddr,
		Usage: "WS-RPC server listening interface",
		Value: DefaultWSHost,
	}
	WSPortFlag = cli.IntFlag{
		Name:  common.WSPort,
		Usage: "WS-RPC server listening port",
		Value: DefaultWSPort,
	}
	WSAllowedOriginsFlag = cli.StringFlag{
		Name:  common.WSAllowedOrigins,
		Usage: "Origins from which to accept websockets request.",
	}
	DebugFlag = cli.BoolFlag{
		Name:  common.Debug,
		Usage: "Debug for runtime",
	}
	JSpathFlag = cli.StringFlag{
		Name:  common.JSpath,
		Usage: "JavaScript root path for `loadScript`",
		Value: ".",
	}
	LogLevelFlag = cli.IntFlag{
		Name:  common.LogLevel,
		Usage: "Output log level",
		Value: 4,
	}
)
View Source
var DefaultHTTPVirtualHosts = []string{"localhost"}

Functions

func DefaultDataDir

func DefaultDataDir() string

func GetChainDataPath added in v1.2.0

func GetChainDataPath(dataDir string) string

func InitLogConfig added in v1.2.0

func InitLogConfig(logFlag int)

func NewApp

func NewApp(usage string) *cli.App

Types

type CandidateInfo added in v1.1.0

type CandidateInfo struct {
	CandidateAddress string            `json:"address" gencodec:"required"`
	Votes            string            `json:"votes" gencodec:"required"`
	Profile          map[string]string `json:"profile"  gencodec:"required"`
}

func (CandidateInfo) MarshalJSON added in v1.1.0

func (c CandidateInfo) MarshalJSON() ([]byte, error)

MarshalJSON marshals as JSON.

func (*CandidateInfo) UnmarshalJSON added in v1.1.0

func (c *CandidateInfo) UnmarshalJSON(input []byte) error

UnmarshalJSON unmarshals from JSON.

type Config

type Config struct {
	Name    string `toml:"-"`
	Version string `toml:"-"`

	ExtraData []byte `toml:",omitempty"`

	DataDir string
	P2P     p2p.Config
	Chain   chain.Config
	Miner   miner.MineConfig

	IPCPath          string   `toml:",omitempty"`
	HTTPHost         string   `toml:",omitempty"`
	HTTPPort         int      `toml:",omitempty"`
	HTTPCors         []string `toml:",omitempty"`
	HTTPVirtualHosts []string `toml:",omitempty"`
	WSHost           string   `toml:",omitempty"`
	WSPort           int      `toml:",omitempty"`
	WSOrigins        []string `toml:",omitempty"`
	WSExposeAll      bool     `toml:",omitempty"`
}

func (*Config) HTTPEndpoint

func (c *Config) HTTPEndpoint() string

func (*Config) IPCEndpoint

func (c *Config) IPCEndpoint() string

IPCEndpoint

func (*Config) NodeKey

func (c *Config) NodeKey() *ecdsa.PrivateKey

func (*Config) NodeName

func (c *Config) NodeName() string

func (*Config) StaticNodes

func (c *Config) StaticNodes() []string

func (*Config) TrustedNodes

func (c *Config) TrustedNodes() []string

func (*Config) WSEndpoint

func (c *Config) WSEndpoint() string

type LemoAccount added in v1.3.0

type LemoAccount struct {
	Private string         `json:"private"`
	Address common.Address `json:"address"`
}

func (LemoAccount) MarshalJSON added in v1.3.0

func (l LemoAccount) MarshalJSON() ([]byte, error)

MarshalJSON marshals as JSON.

func (*LemoAccount) UnmarshalJSON added in v1.3.0

func (l *LemoAccount) UnmarshalJSON(input []byte) error

UnmarshalJSON unmarshals from JSON.

type NetInfo

type NetInfo struct {
	Port     uint32 `json:"port"        gencodec:"required"`
	NodeName string `json:"nodeName"    gencodec:"required"`
	Version  string `json:"nodeVersion" gencodec:"required"`
	OS       string `json:"os"          gencodec:"required"`
	Go       string `json:"runtime"     gencodec:"required"`
}

func (NetInfo) MarshalJSON

func (n NetInfo) MarshalJSON() ([]byte, error)

MarshalJSON marshals as JSON.

func (*NetInfo) UnmarshalJSON

func (n *NetInfo) UnmarshalJSON(input []byte) error

UnmarshalJSON unmarshals from JSON.

type Node

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

func New

func New(flags flag.CmdFlags) *Node

func (*Node) AccountManager

func (n *Node) AccountManager() *account.Manager

func (*Node) Attach

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

func (*Node) ChainID added in v1.0.2

func (n *Node) ChainID() uint16

func (*Node) DataDir

func (n *Node) DataDir() string

func (*Node) Db

func (n *Node) Db() protocol.ChainDB

func (*Node) Start

func (n *Node) Start() error

func (*Node) StartMining

func (n *Node) StartMining() error

func (*Node) Stop

func (n *Node) Stop() error

Stop

func (*Node) Wait

func (n *Node) Wait()

Wait wait for stop

type PrivateAccountAPI

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

Private

func NewPrivateAccountAPI

func NewPrivateAccountAPI(m *account.Manager) *PrivateAccountAPI

NewPrivateAccountAPI

func (*PrivateAccountAPI) NewKeyPair

func (a *PrivateAccountAPI) NewKeyPair() (*LemoAccount, error)

NewAccount get lemo address api

type PrivateMineAPI

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

PrivateMineAPI

func NewPrivateMinerAPI

func NewPrivateMinerAPI(miner *miner.Miner) *PrivateMineAPI

NewPrivateMinerAPI

func (*PrivateMineAPI) MineStart

func (m *PrivateMineAPI) MineStart()

MineStart

func (*PrivateMineAPI) MineStop

func (m *PrivateMineAPI) MineStop()

MineStop

type PrivateNetAPI

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

PrivateNetAPI

func NewPrivateNetAPI

func NewPrivateNetAPI(node *Node) *PrivateNetAPI

NewPrivateNetAPI

func (*PrivateNetAPI) Connect

func (n *PrivateNetAPI) Connect(node string)

Connect (node = nodeID@IP:Port)

func (*PrivateNetAPI) Connections

func (n *PrivateNetAPI) Connections() []p2p.PeerConnInfo

Connections

func (*PrivateNetAPI) Disconnect

func (n *PrivateNetAPI) Disconnect(node string) bool

Disconnect

type PublicAccountAPI

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

PublicAccountAPI API for access to account information

func NewPublicAccountAPI

func NewPublicAccountAPI(m *account.Manager) *PublicAccountAPI

NewPublicAccountAPI

func (*PublicAccountAPI) GetAccount

func (a *PublicAccountAPI) GetAccount(LemoAddress string) (types.AccountAccessor, error)

GetAccount return the struct of the &AccountData{}

func (*PublicAccountAPI) GetAllRewardValue added in v1.1.1

func (a *PublicAccountAPI) GetAllRewardValue() ([]*params.Reward, error)

GetAllRewardValue get the value for each bonus

func (*PublicAccountAPI) GetAssetEquityByAssetId added in v1.2.0

func (a *PublicAccountAPI) GetAssetEquityByAssetId(LemoAddress string, assetId common.Hash) (*types.AssetEquity, error)

GetAssetEquity returns asset equity

func (*PublicAccountAPI) GetBalance

func (a *PublicAccountAPI) GetBalance(LemoAddress string) (string, error)

GetBalance get balance in mo

func (*PublicAccountAPI) GetVoteFor added in v1.1.0

func (a *PublicAccountAPI) GetVoteFor(LemoAddress string) (string, error)

GetVoteFor

type PublicChainAPI

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

ChainAPI

func NewPublicChainAPI

func NewPublicChainAPI(chain *chain.BlockChain) *PublicChainAPI

NewChainAPI API for access to chain information

func (*PublicChainAPI) ChainID

func (c *PublicChainAPI) ChainID() uint16

ChainID get chain id

func (*PublicChainAPI) CurrentBlock

func (c *PublicChainAPI) CurrentBlock(withBody bool) *types.Block

CurrentBlock get the latest block.

func (*PublicChainAPI) CurrentHeight

func (c *PublicChainAPI) CurrentHeight() uint32

CurrentHeight

func (*PublicChainAPI) Genesis

func (c *PublicChainAPI) Genesis() *types.Block

Genesis get the creation block

func (*PublicChainAPI) GetBlockByHash

func (c *PublicChainAPI) GetBlockByHash(hash string, withBody bool) *types.Block

GetBlockByHash get block information by hash

func (*PublicChainAPI) GetBlockByHeight

func (c *PublicChainAPI) GetBlockByHeight(height uint32, withBody bool) *types.Block

GetBlockByNumber get block information by height

func (*PublicChainAPI) GetCandidateTop30 added in v1.1.0

func (c *PublicChainAPI) GetCandidateTop30() []*CandidateInfo

GetCandidateTop30 get top 30 candidate node

func (*PublicChainAPI) GetDeputyNodeList added in v1.1.0

func (c *PublicChainAPI) GetDeputyNodeList() []string

GetDeputyNodeList

func (*PublicChainAPI) NodeVersion

func (n *PublicChainAPI) NodeVersion() string

NodeVersion

func (*PublicChainAPI) UnstableBlock added in v1.2.0

func (c *PublicChainAPI) UnstableBlock(withBody bool) *types.Block

CurrentBlock get the latest block. It may not be confirmed by enough deputy nodes

func (*PublicChainAPI) UnstableHeight added in v1.2.0

func (c *PublicChainAPI) UnstableHeight() uint32

UnstableHeight

type PublicMineAPI

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

PublicMineAPI

func NewPublicMineAPI

func NewPublicMineAPI(miner *miner.Miner) *PublicMineAPI

NewPublicMineAPI

func (*PublicMineAPI) IsMining

func (m *PublicMineAPI) IsMining() bool

IsMining

func (*PublicMineAPI) Miner added in v1.0.1

func (m *PublicMineAPI) Miner() string

Miner

type PublicNetAPI

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

PublicNetAPI

func NewPublicNetAPI

func NewPublicNetAPI(node *Node) *PublicNetAPI

NewPublicNetAPI

func (*PublicNetAPI) Info

func (n *PublicNetAPI) Info() *NetInfo

Info

func (*PublicNetAPI) NodeID added in v1.3.0

func (n *PublicNetAPI) NodeID() string

NodeID

func (*PublicNetAPI) PeersCount

func (n *PublicNetAPI) PeersCount() string

PeersCount return peers number

type PublicTxAPI

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

TXAPI

func NewPublicTxAPI

func NewPublicTxAPI(node *Node) *PublicTxAPI

NewTxAPI API for send a transaction

func (*PublicTxAPI) EstimateCreateContractGas added in v1.0.2

func (t *PublicTxAPI) EstimateCreateContractGas(data hexutil.Bytes) (uint64, error)

EstimateContractGas returns an estimate of the amount of gas needed to create a smart contract. Todo will delete

func (*PublicTxAPI) EstimateGas added in v1.0.2

func (t *PublicTxAPI) EstimateGas(to *common.Address, txType uint16, data hexutil.Bytes) (string, error)

EstimateGas returns an estimate of the amount of gas needed to execute the given transaction.

func (*PublicTxAPI) PendingTx

func (t *PublicTxAPI) PendingTx(size int) []*types.Transaction

PendingTx

func (*PublicTxAPI) ReadContract added in v1.0.2

func (t *PublicTxAPI) ReadContract(to *common.Address, data hexutil.Bytes) (string, error)

ReadContract read variables in a contract includes the return value of a function.

func (*PublicTxAPI) SendTx

func (t *PublicTxAPI) SendTx(tx *types.Transaction) (common.Hash, error)

Send send a transaction

Jump to

Keyboard shortcuts

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