From 567d41d9363706b4b13ce0903804e8acf214af49 Mon Sep 17 00:00:00 2001 From: Péter Szilágyi Date: Sun, 5 Mar 2017 20:00:01 +0200 Subject: all: swap out the C++ ethash to the pure Go one (mining todo) --- miner/agent.go | 4 ++-- miner/miner.go | 2 +- miner/remote_agent.go | 7 +++---- 3 files changed, 6 insertions(+), 7 deletions(-) (limited to 'miner') diff --git a/miner/agent.go b/miner/agent.go index 21300b5b9..3c407f20b 100644 --- a/miner/agent.go +++ b/miner/agent.go @@ -111,7 +111,7 @@ func (self *CpuAgent) mine(work *Work, stop <-chan struct{}) { log.Debug(fmt.Sprintf("(re)started agent[%d]. mining...\n", self.index)) // Mine - nonce, mixDigest := self.pow.Search(work.Block, stop, self.index) + nonce, mixDigest := self.pow.Search(work.Block, stop) if nonce != 0 { block := work.Block.WithMiningResult(types.EncodeNonce(nonce), common.BytesToHash(mixDigest)) self.returnCh <- &Result{work, block} @@ -121,5 +121,5 @@ func (self *CpuAgent) mine(work *Work, stop <-chan struct{}) { } func (self *CpuAgent) GetHashRate() int64 { - return self.pow.GetHashrate() + return int64(self.pow.Hashrate()) } diff --git a/miner/miner.go b/miner/miner.go index 33d77e174..a91e1ef6b 100644 --- a/miner/miner.go +++ b/miner/miner.go @@ -159,7 +159,7 @@ func (self *Miner) Mining() bool { } func (self *Miner) HashRate() (tot int64) { - tot += self.pow.GetHashrate() + tot += int64(self.pow.Hashrate()) // do we care this might race? is it worth we're rewriting some // aspects of the worker/locking up agents so we can get an accurate // hashrate? diff --git a/miner/remote_agent.go b/miner/remote_agent.go index ec9d2c199..08c5fc6f0 100644 --- a/miner/remote_agent.go +++ b/miner/remote_agent.go @@ -24,7 +24,6 @@ import ( "sync/atomic" "time" - "github.com/ethereum/ethash" "github.com/ethereum/go-ethereum/common" "github.com/ethereum/go-ethereum/core/types" "github.com/ethereum/go-ethereum/log" @@ -115,7 +114,7 @@ func (a *RemoteAgent) GetWork() ([3]string, error) { block := a.currentWork.Block res[0] = block.HashNoNonce().Hex() - seedHash, _ := ethash.GetSeedHash(block.NumberU64()) + seedHash := pow.EthashSeedHash(block.NumberU64()) res[1] = common.BytesToHash(seedHash).Hex() // Calculate the "target" to be returned to the external miner n := big.NewInt(1) @@ -145,8 +144,8 @@ func (a *RemoteAgent) SubmitWork(nonce types.BlockNonce, mixDigest, hash common. } // Make sure the PoW solutions is indeed valid block := work.Block.WithMiningResult(nonce, mixDigest) - if !a.pow.Verify(block) { - log.Warn(fmt.Sprintf("Invalid PoW submitted for %x", hash)) + if err := a.pow.Verify(block); err != nil { + log.Warn(fmt.Sprintf("Invalid PoW submitted for %x: %v", hash, err)) return false } // Solutions seems to be valid, return to the miner and notify acceptance -- cgit