eth

package
v0.9.22 Latest Latest
Warning

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

Go to latest
Published: May 17, 2015 License: LGPL-2.1-or-later Imports: 31 Imported by: 0

Documentation

Index

Constants

View Source
const (
	ProtocolVersion    = 60
	NetworkId          = 0
	ProtocolLength     = uint64(8)
	ProtocolMaxMsgSize = 10 * 1024 * 1024
)
View Source
const (
	StatusMsg = iota
	GetTxMsg  // unused
	TxMsg
	GetBlockHashesMsg
	BlockHashesMsg
	GetBlocksMsg
	BlocksMsg
	NewBlockMsg
)

eth protocol message codes

View Source
const (
	ErrMsgTooLarge = iota
	ErrDecode
	ErrInvalidMsgCode
	ErrProtocolVersionMismatch
	ErrNetworkIdMismatch
	ErrGenesisBlockMismatch
	ErrNoStatusMsg
	ErrExtraStatusMsg
	ErrSuspendedPeer
)

Variables

This section is empty.

Functions

This section is empty.

Types

type Config

type Config struct {
	Name            string
	ProtocolVersion int
	NetworkId       int

	BlockChainVersion  int
	SkipBcVersionCheck bool // e.g. blockchain export

	DataDir   string
	LogFile   string
	Verbosity int
	LogJSON   string
	VmDebug   bool
	NatSpec   bool

	MaxPeers        int
	MaxPendingPeers int
	Port            string

	// Space-separated list of discovery node URLs
	BootNodes string

	// This key is used to identify the node on the network.
	// If nil, an ephemeral key is used.
	NodeKey *ecdsa.PrivateKey

	NAT  nat.Interface
	Shh  bool
	Dial bool

	Etherbase      string
	GasPrice       *big.Int
	MinerThreads   int
	AccountManager *accounts.Manager

	// NewDB is used to create databases.
	// If nil, the default is to create leveldb databases on disk.
	NewDB func(path string) (common.Database, error)
}

type Ethereum

type Ethereum struct {
	Mining       bool
	MinerThreads int
	NatSpec      bool
	DataDir      string
	// contains filtered or unexported fields
}

func New

func New(config *Config) (*Ethereum, error)

func (*Ethereum) AccountManager

func (s *Ethereum) AccountManager() *accounts.Manager

func (*Ethereum) AddPeer added in v0.9.17

func (self *Ethereum) AddPeer(nodeURL string) error

AddPeer connects to the given node and maintains the connection until the server is shut down. If the connection fails for any reason, the server will attempt to reconnect the peer.

func (*Ethereum) BlockDb added in v0.9.17

func (s *Ethereum) BlockDb() common.Database

func (*Ethereum) BlockProcessor added in v0.8.4

func (s *Ethereum) BlockProcessor() *core.BlockProcessor

func (*Ethereum) ChainManager added in v0.8.4

func (s *Ethereum) ChainManager() *core.ChainManager

func (*Ethereum) ClientVersion added in v0.9.17

func (s *Ethereum) ClientVersion() string

func (*Ethereum) Downloader

func (s *Ethereum) Downloader() *downloader.Downloader

func (*Ethereum) EthVersion

func (s *Ethereum) EthVersion() int

func (*Ethereum) Etherbase

func (s *Ethereum) Etherbase() (eb common.Address, err error)

func (*Ethereum) EventMux

func (s *Ethereum) EventMux() *event.TypeMux

func (*Ethereum) ExtraDb added in v0.9.17

func (s *Ethereum) ExtraDb() common.Database

func (*Ethereum) IsListening

func (s *Ethereum) IsListening() bool

func (*Ethereum) IsMining

func (s *Ethereum) IsMining() bool

func (*Ethereum) MaxPeers added in v0.8.4

func (s *Ethereum) MaxPeers() int

func (*Ethereum) Miner

func (s *Ethereum) Miner() *miner.Miner

func (*Ethereum) Name added in v0.8.4

func (s *Ethereum) Name() string

func (s *Ethereum) Logger() logger.LogSystem { return s.logger }

func (*Ethereum) NetVersion

func (s *Ethereum) NetVersion() int

func (*Ethereum) NodeInfo added in v0.9.17

func (s *Ethereum) NodeInfo() *NodeInfo

func (*Ethereum) PeerCount added in v0.8.4

func (s *Ethereum) PeerCount() int

func (*Ethereum) Peers added in v0.8.4

func (s *Ethereum) Peers() []*p2p.Peer

func (*Ethereum) PeersInfo added in v0.9.17

func (s *Ethereum) PeersInfo() (peersinfo []*PeerInfo)

PeersInfo returns an array of PeerInfo objects describing connected peers

func (*Ethereum) ResetWithGenesisBlock

func (s *Ethereum) ResetWithGenesisBlock(gb *types.Block)

func (*Ethereum) ShhVersion added in v0.9.17

func (s *Ethereum) ShhVersion() int

func (*Ethereum) Start

func (s *Ethereum) Start() error

Start the ethereum

func (*Ethereum) StartForTest added in v0.9.17

func (s *Ethereum) StartForTest()

func (*Ethereum) StartMining

func (s *Ethereum) StartMining(threads int) error

func (*Ethereum) StateDb added in v0.9.17

func (s *Ethereum) StateDb() common.Database

func (*Ethereum) Stop

func (s *Ethereum) Stop()

func (*Ethereum) StopMining

func (s *Ethereum) StopMining()

func (*Ethereum) TxPool

func (s *Ethereum) TxPool() *core.TxPool

func (*Ethereum) WaitForShutdown added in v0.8.4

func (s *Ethereum) WaitForShutdown()

This function will wait for a shutdown and resumes main thread execution

func (*Ethereum) Whisper added in v0.8.4

func (s *Ethereum) Whisper() *whisper.Whisper

type NodeInfo

type NodeInfo struct {
	Name       string
	NodeUrl    string
	NodeID     string
	IP         string
	DiscPort   int // UDP listening port for discovery protocol
	TCPPort    int // TCP listening port for RLPx
	Td         string
	ListenAddr string
}

type PeerInfo

type PeerInfo struct {
	ID            string
	Name          string
	Caps          string
	RemoteAddress string
	LocalAddress  string
}

type ProtocolManager

type ProtocolManager struct {
	SubProtocol p2p.Protocol
	// contains filtered or unexported fields
}

func NewProtocolManager

func NewProtocolManager(protocolVersion, networkId int, mux *event.TypeMux, txpool txPool, chainman *core.ChainManager, downloader *downloader.Downloader) *ProtocolManager

NewProtocolManager returns a new ethereum sub protocol manager. The Ethereum sub protocol manages peers capable with the ethereum network.

func (*ProtocolManager) BroadcastBlock

func (pm *ProtocolManager) BroadcastBlock(hash common.Hash, block *types.Block)

BroadcastBlock will propagate the block to its connected peers. It will sort out which peers do not contain the block in their block set and will do a sqrt(peers) to determine the amount of peers we broadcast to.

func (*ProtocolManager) BroadcastTx added in v0.9.17

func (pm *ProtocolManager) BroadcastTx(hash common.Hash, tx *types.Transaction)

BroadcastTx will propagate the block to its connected peers. It will sort out which peers do not contain the block in their block set and will do a sqrt(peers) to determine the amount of peers we broadcast to.

func (*ProtocolManager) Start

func (pm *ProtocolManager) Start()

func (*ProtocolManager) Stop

func (pm *ProtocolManager) Stop()

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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