miner

package
v4.2.0+incompatible Latest Latest
Warning

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

Go to latest
Published: Jan 3, 2018 License: GPL-3.0 Imports: 21 Imported by: 0

Documentation

Overview

Package miner implements Ethereum block creation and mining.

Index

Constants

This section is empty.

Variables

View Source
var HeaderExtra []byte

HeaderExtra is a freeform description.

Functions

This section is empty.

Types

type Agent

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

Agent can register themself with the worker

type CpuAgent

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

func NewCpuAgent

func NewCpuAgent(index int, pow pow.PoW) *CpuAgent

func (*CpuAgent) GetHashRate

func (self *CpuAgent) GetHashRate() int64

func (*CpuAgent) Pow

func (self *CpuAgent) Pow() pow.PoW

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 {
	MinAcceptedGasPrice *big.Int
	// contains filtered or unexported fields
}

func New

func New(eth core.Backend, config *core.ChainConfig, mux *event.TypeMux, pow pow.PoW) *Miner

func (*Miner) HashRate

func (self *Miner) HashRate() (tot int64)

func (*Miner) Mining

func (self *Miner) Mining() bool

func (*Miner) Pending

func (self *Miner) Pending() (*types.Block, *state.StateDB)

Pending returns the currently pending block and associated state.

func (*Miner) Register

func (self *Miner) Register(agent Agent)

func (*Miner) SetEtherbase

func (self *Miner) SetEtherbase(addr common.Address)

func (*Miner) SetGasPrice

func (m *Miner) SetGasPrice(price *big.Int) error

func (*Miner) Start

func (self *Miner) Start(coinbase common.Address, threads int)

func (*Miner) Stop

func (self *Miner) Stop()

func (*Miner) Unregister

func (self *Miner) Unregister(agent Agent)

type RemoteAgent

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

func NewRemoteAgent

func NewRemoteAgent() *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 uint64, mixDigest, hash common.Hash) bool

Returns true or false, but does not indicate if the PoW was correct

func (*RemoteAgent) Work

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

type Result

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

type Work

type Work struct {
	Block *types.Block // the new block
	// contains filtered or unexported fields
}

environment 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