Turbo mode

This commit is contained in:
obscuren 2014-08-21 18:14:41 +02:00
parent cc6ad034f1
commit 0eb08693e9

View File

@ -1,15 +1,16 @@
package ethchain package ethchain
import ( import (
"hash"
"math/big"
"math/rand"
"time"
"github.com/ethereum/eth-go/ethcrypto" "github.com/ethereum/eth-go/ethcrypto"
"github.com/ethereum/eth-go/ethlog" "github.com/ethereum/eth-go/ethlog"
"github.com/ethereum/eth-go/ethreact" "github.com/ethereum/eth-go/ethreact"
"github.com/ethereum/eth-go/ethutil" "github.com/ethereum/eth-go/ethutil"
"github.com/obscuren/sha3" "github.com/obscuren/sha3"
"hash"
"math/big"
"math/rand"
"time"
) )
var powlogger = ethlog.NewLogger("POW") var powlogger = ethlog.NewLogger("POW")
@ -18,17 +19,23 @@ type PoW interface {
Search(block *Block, reactChan chan ethreact.Event) []byte Search(block *Block, reactChan chan ethreact.Event) []byte
Verify(hash []byte, diff *big.Int, nonce []byte) bool Verify(hash []byte, diff *big.Int, nonce []byte) bool
GetHashrate() int64 GetHashrate() int64
Turbo(bool)
} }
type EasyPow struct { type EasyPow struct {
hash *big.Int hash *big.Int
HashRate int64 HashRate int64
turbo bool
} }
func (pow *EasyPow) GetHashrate() int64 { func (pow *EasyPow) GetHashrate() int64 {
return pow.HashRate return pow.HashRate
} }
func (pow *EasyPow) Turbo(on bool) {
pow.turbo = on
}
func (pow *EasyPow) Search(block *Block, reactChan chan ethreact.Event) []byte { func (pow *EasyPow) Search(block *Block, reactChan chan ethreact.Event) []byte {
r := rand.New(rand.NewSource(time.Now().UnixNano())) r := rand.New(rand.NewSource(time.Now().UnixNano()))
hash := block.HashNoNonce() hash := block.HashNoNonce()
@ -55,6 +62,10 @@ func (pow *EasyPow) Search(block *Block, reactChan chan ethreact.Event) []byte {
return sha return sha
} }
} }
if !pow.turbo {
time.Sleep(500 * time.Millisecond)
}
} }
return nil return nil