miner

package
v0.0.0-...-9fbb145 Latest Latest
Warning

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

Go to latest
Published: Oct 13, 2021 License: MIT Imports: 20 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Agent

type Agent interface {
	Work() chan<- *Work
	SetReturnCh(chan<- *Result)
	Start()
	Stop()
}

Agent can register themself with the worker

type Backend

type Backend interface {
	AccountManager() *accounts.Manager
	BlockChain() *core.BlockChain
	KeyBlockChain() *core.KeyBlockChain
	CandidatePool() *core.CandidatePool
	TxPool() *core.TxPool
	ChainDb() cphdb.Database
}

Backend wraps all methods required for mining.

type CpuAgent

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

func NewCpuAgent

func NewCpuAgent(chain types.ChainReader, engine pow.Engine) *CpuAgent

func (*CpuAgent) SetReturnCh

func (self *CpuAgent) SetReturnCh(ch chan<- *Result)

func (*CpuAgent) Start

func (self *CpuAgent) Start()

func (*CpuAgent) Stop

func (self *CpuAgent) Stop()

func (*CpuAgent) Work

func (self *CpuAgent) Work() chan<- *Work

type Miner

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

Miner creates candidate from current head keyblock and searches for proof-of-work values.

func New

func New(cph Backend, config *params.ChainConfig, mux *event.TypeMux, engine pow.Engine, extIP net.IP) *Miner

func (*Miner) GetCoinbase

func (self *Miner) GetCoinbase() common.Address

func (*Miner) GetPubKey

func (self *Miner) GetPubKey() ed25519.PublicKey

func (*Miner) HashRate

func (self *Miner) HashRate() uint64

func (*Miner) MinerDoWork

func (self *Miner) MinerDoWork()

func (*Miner) Mining

func (self *Miner) Mining() bool

func (*Miner) Quit

func (self *Miner) Quit()

func (*Miner) Register

func (self *Miner) Register(agent Agent)

func (*Miner) SetCoinbase

func (self *Miner) SetCoinbase(eb common.Address)

func (*Miner) SetPubKey

func (self *Miner) SetPubKey(pubKey ed25519.PublicKey)

func (*Miner) Start

func (self *Miner) Start(pubKey ed25519.PublicKey, eb common.Address)

func (*Miner) Stop

func (self *Miner) Stop()

func (*Miner) SuspendMiner

func (self *Miner) SuspendMiner()

func (*Miner) Unregister

func (self *Miner) Unregister(agent Agent)

type RemoteAgent

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

func NewRemoteAgent

func NewRemoteAgent(chain types.KeyChainReader, engine pow.Engine) *RemoteAgent

func (*RemoteAgent) GetHashRate

func (a *RemoteAgent) GetHashRate() (tot int64)

GetHashRate returns the accumulated hashrate of all identifier combined

func (*RemoteAgent) GetWork

func (a *RemoteAgent) GetWork() ([3]string, error)

func (*RemoteAgent) SetReturnCh

func (a *RemoteAgent) SetReturnCh(returnCh chan<- *Result)

func (*RemoteAgent) Start

func (a *RemoteAgent) Start()

func (*RemoteAgent) Stop

func (a *RemoteAgent) Stop()

func (*RemoteAgent) SubmitHashrate

func (a *RemoteAgent) SubmitHashrate(id common.Hash, rate uint64)

func (*RemoteAgent) SubmitWork

func (a *RemoteAgent) SubmitWork(nonce types.BlockNonce, mixDigest, hash common.Hash) bool

SubmitWork tries to inject a pow solution into the remote agent, returning whether the solution was accepted or not (not can be both a bad pow as well as any other error, like no work pending).

func (*RemoteAgent) Work

func (a *RemoteAgent) Work() chan<- *Work

type Result

type Result struct {
	Work      *Work
	Candidate *types.Candidate
}

type Work

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

Work is the workers current environment and holds all of the current state information

Jump to

Keyboard shortcuts

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