Documentation
¶
Overview ¶
Package miner implements Ethereum block creation and mining.
Index ¶
- type Agent
- type CpuAgent
- type Miner
- func (self *Miner) HashRate() (tot int64)
- func (self *Miner) Mining() bool
- func (self *Miner) PendingBlock() *types.Block
- func (self *Miner) PendingState() *state.StateDB
- func (self *Miner) Register(agent Agent)
- func (self *Miner) SetEtherbase(addr common.Address)
- func (self *Miner) SetExtra(extra []byte) error
- func (m *Miner) SetGasPrice(price *big.Int)
- func (self *Miner) Start(coinbase common.Address, threads int)
- func (self *Miner) Stop()
- func (self *Miner) Unregister(agent Agent)
- type PublicMinerAPI
- type RemoteAgent
- func (a *RemoteAgent) GetHashRate() (tot int64)
- func (a *RemoteAgent) GetWork() ([3]string, error)
- func (a *RemoteAgent) SetReturnCh(returnCh chan<- *Result)
- func (a *RemoteAgent) Start()
- func (a *RemoteAgent) Stop()
- func (a *RemoteAgent) SubmitHashrate(id common.Hash, rate uint64)
- func (a *RemoteAgent) SubmitWork(nonce uint64, mixDigest, hash common.Hash) bool
- func (a *RemoteAgent) Work() chan<- *Work
- type Result
- type Work
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) Stop() Start() GetHashRate() int64 }
Agent can register themself with the worker
type CpuAgent ¶
type CpuAgent struct {
// contains filtered or unexported fields
}
func (*CpuAgent) GetHashRate ¶
func (*CpuAgent) SetReturnCh ¶
type Miner ¶
func (*Miner) PendingBlock ¶
func (*Miner) PendingState ¶
func (*Miner) SetEtherbase ¶
func (*Miner) SetGasPrice ¶
func (*Miner) Unregister ¶
type PublicMinerAPI ¶
type PublicMinerAPI struct {
// contains filtered or unexported fields
}
PublicMinerAPI provides an API to control the miner. It offers only methods that operate on data that pose no security risk when it is publicly accessible.
func NewPublicMinerAPI ¶
func NewPublicMinerAPI(miner *Miner) *PublicMinerAPI
NewPublicMinerAPI create a new PublicMinerAPI instance.
func (*PublicMinerAPI) GetWork ¶
func (s *PublicMinerAPI) GetWork() ([]string, error)
GetWork returns a work package for external miner. The work package consists of 3 strings result[0], 32 bytes hex encoded current block header pow-hash result[1], 32 bytes hex encoded seed hash used for DAG result[2], 32 bytes hex encoded boundary condition ("target"), 2^256/difficulty
func (*PublicMinerAPI) Mining ¶
func (s *PublicMinerAPI) Mining() bool
Mining returns an indication if this node is currently mining.
func (*PublicMinerAPI) SubmitHashrate ¶
SubmitHashrate can be used for remote miners to submit their hash rate. This enables the node to report the combined hash rate of all miners which submit work through this node. It accepts the miner hash rate and an identifier which must be unique between nodes.
func (*PublicMinerAPI) SubmitWork ¶
SubmitWork can be used by external miner to submit their POW solution. It returns an indication if the work was accepted. Note, this is not an indication if the provided work was valid!
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