miner

package
v0.4.6-beta Latest Latest
Warning

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

Go to latest
Published: Oct 26, 2015 License: MIT Imports: 15 Imported by: 0

Documentation

Index

Constants

View Source
const (
	// HeaderMemory is the number of previous calls to 'header'
	// that are remembered. Additionally, 'header' will only poll for a
	// new block every 'headerMemory / blockMemory' times it is
	// called. This reduces the amount of memory used, but comes at the cost of
	// not always having the most recent transactions.
	HeaderMemory = 10000

	// BlockMemory is the maximum number of blocks the miner will store
	// Blocks take up to 2 megabytes of memory, which is why this number is
	// limited.
	BlockMemory = 50

	// MaxSourceBlockAge is the maximum amount of time that is allowed to
	// elapse between generating source blocks.
	MaxSourceBlockAge = 60 * time.Second
)

Variables

This section is empty.

Functions

This section is empty.

Types

type Miner

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

Miner struct contains all variables the miner needs in order to create and submit blocks.

func New

func New(cs modules.ConsensusSet, tpool modules.TransactionPool, w modules.Wallet, persistDir string) (*Miner, error)

New returns a ready-to-go miner that is not mining.

func (*Miner) AddBlock

func (m *Miner) AddBlock() (types.Block, error)

AddBlock adds a block to the consensus set.

func (*Miner) BlockForWork added in v0.3.2

func (m *Miner) BlockForWork() (b types.Block, t types.Target, err error)

BlockForWork returns a block that is ready for nonce grinding, along with the root hash of the block.

func (*Miner) BlocksMined

func (m *Miner) BlocksMined() (goodBlocks, staleBlocks int)

BlocksMined returns the number of good blocks and stale blocks that have been mined by the miner.

func (*Miner) CPUHashrate

func (m *Miner) CPUHashrate() int

CPUHashrate returns an estimated cpu hashrate.

func (*Miner) CPUMining

func (m *Miner) CPUMining() bool

CPUMining indicates whether the cpu miner is running.

func (*Miner) FindBlock added in v0.3.1

func (m *Miner) FindBlock() (types.Block, error)

FindBlock finds at most one block that extends the current blockchain.

func (*Miner) HeaderForWork

func (m *Miner) HeaderForWork() (types.BlockHeader, types.Target, error)

HeaderForWork returns a header that is ready for nonce grinding. The miner will store the header in memory for a while, depending on the constants 'HeaderMemory', 'BlockMemory', and 'MaxSourceBlockAge'. On the full network, it is typically safe to assume that headers will be remembered for min(10 minutes, 1000 requests).

func (*Miner) ProcessConsensusDigest

func (m *Miner) ProcessConsensusDigest(revertedIDs, appliedIDs []types.BlockID)

ProcessConsensusDigest will update the miner's most recent block.

func (*Miner) ReceiveUpdatedUnconfirmedTransactions

func (m *Miner) ReceiveUpdatedUnconfirmedTransactions(unconfirmedTransactions []types.Transaction, _ modules.ConsensusChange)

ReceiveUpdatedUnconfirmedTransactions will replace the current unconfirmed set of transactions with the input transactions.

func (*Miner) SolveBlock

func (m *Miner) SolveBlock(b types.Block, target types.Target) (types.Block, bool)

SolveBlock takes a block and a target and tries to solve the block for the target. A bool is returned indicating whether the block was successfully solved.

func (*Miner) StartCPUMining

func (m *Miner) StartCPUMining()

StartCPUMining will start a single threaded cpu miner. If the miner is already running, nothing will happen.

func (*Miner) StopCPUMining

func (m *Miner) StopCPUMining()

StopCPUMining will stop the cpu miner. If the cpu miner is already stopped, nothing will happen.

func (*Miner) SubmitBlock added in v0.3.2

func (m *Miner) SubmitBlock(b types.Block) error

SubmitBlock takes a solved block and submits it to the blockchain. SubmitBlock should not be called with a lock.

func (*Miner) SubmitHeader

func (m *Miner) SubmitHeader(bh types.BlockHeader) error

SubmitHeader accepts a block header.

Jump to

Keyboard shortcuts

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