OSDN Git Service

4f7bea02ae0eb1c06aae47a86cdf2c03302e9501
[bytom/bytom.git] / blockchain / miner.go
1 package blockchain
2
3 import (
4         "github.com/bytom/protocol/bc"
5         "github.com/bytom/protocol/bc/types"
6 )
7
8 // GetWorkResp is resp struct for API
9 type GetWorkResp struct {
10         BlockHeader *types.BlockHeader `json:"block_header"`
11         Seed        *bc.Hash           `json:"seed"`
12 }
13
14 func (bcr *BlockchainReactor) GetWork() (*GetWorkResp, error) {
15         bh, err := bcr.miningPool.GetWork()
16         if err != nil {
17                 return nil, err
18         }
19
20         seed, err := bcr.chain.GetSeed(bh.Height, &bh.PreviousBlockHash)
21         if err != nil {
22                 return nil, err
23         }
24
25         return &GetWorkResp{
26                 BlockHeader: bh,
27                 Seed:        seed,
28         }, nil
29 }
30
31 func (bcr *BlockchainReactor) SubmitWork(bh *types.BlockHeader) bool {
32         return bcr.miningPool.SubmitWork(bh)
33 }