Skip to content

API.GetWork

Source (upstream pre-purge) Current
File consensus/ethash/api.go api.go
Symbol API.GetWork API.GetWork
Ref dde2da0ef~1 etc/v1.17.3-full-node

3-way merge — purge → getc ← upstream

pre-purge
// 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
// result[3] - hex encoded block number
func (api *API) GetWork() ([4]string, error) {
if api.ethash.remote == nil {
return [4]string{}, errors.New("not supported")
}
var (
workCh = make(chan [4]string, 1)
errc = make(chan error, 1)
)
select {
case api.ethash.remote.fetchWorkCh <- &sealWork{errc: errc, res: workCh}:
case <-api.ethash.remote.exitCh:
return [4]string{}, errEthashStopped
}
select {
case work := <-workCh:
return work, nil
case err := <-errc:
return [4]string{}, err
}
}
core-geth validation — **Identical** ✅ | | | |---|---| | File | [`api.go`](https://github.com/etclabscore/core-geth/blob/v1.12.20/consensus/ethash/api.go) | | Symbol | `API.GetWork` | | Ref | `v1.12.20` |

← Consensus & Ethash