Documentation ¶
Index ¶
- Constants
- type Miner
- func (m *Miner) AddBlock() (types.Block, error)
- func (m *Miner) BlockForWork() (b types.Block, t types.Target, err error)
- func (m *Miner) BlocksMined() (goodBlocks, staleBlocks int)
- func (m *Miner) CPUHashrate() int
- func (m *Miner) CPUMining() bool
- func (m *Miner) FindBlock() (types.Block, error)
- func (m *Miner) HeaderForWork() (types.BlockHeader, types.Target, error)
- func (m *Miner) ProcessConsensusDigest(revertedIDs, appliedIDs []types.BlockID)
- func (m *Miner) ReceiveUpdatedUnconfirmedTransactions(unconfirmedTransactions []types.Transaction, _ modules.ConsensusChange)
- func (m *Miner) SolveBlock(b types.Block, target types.Target) (types.Block, bool)
- func (m *Miner) StartCPUMining()
- func (m *Miner) StopCPUMining()
- func (m *Miner) SubmitBlock(b types.Block) error
- func (m *Miner) SubmitHeader(bh types.BlockHeader) error
Constants ¶
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) BlockForWork ¶ added in v0.3.2
BlockForWork returns a block that is ready for nonce grinding, along with the root hash of the block.
func (*Miner) BlocksMined ¶
BlocksMined returns the number of good blocks and stale blocks that have been mined by the miner.
func (*Miner) CPUHashrate ¶
CPUHashrate returns an estimated cpu hashrate.
func (*Miner) FindBlock ¶ added in v0.3.1
FindBlock finds at most one block that extends the current blockchain.
func (*Miner) HeaderForWork ¶
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 ¶
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 ¶
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
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.