diff --git a/ethchain/dagger.go b/ethchain/dagger.go index 065d2c8432..478b7e8779 100644 --- a/ethchain/dagger.go +++ b/ethchain/dagger.go @@ -42,6 +42,7 @@ func (pow *EasyPow) Search(block *Block, reactChan chan ethreact.Event) []byte { diff := block.Difficulty i := int64(0) start := time.Now().UnixNano() + t := time.Now() for { select { @@ -50,11 +51,14 @@ func (pow *EasyPow) Search(block *Block, reactChan chan ethreact.Event) []byte { return nil default: i++ - if i%1234567 == 0 { + + if time.Since(t) > (1 * time.Second) { elapsed := time.Now().UnixNano() - start hashes := ((float64(1e9) / float64(elapsed)) * float64(i)) / 1000 pow.HashRate = int64(hashes) powlogger.Infoln("Hashing @", int64(pow.HashRate), "khash") + + t = time.Now() } sha := ethcrypto.Sha3Bin(big.NewInt(r.Int63()).Bytes()) @@ -64,7 +68,7 @@ func (pow *EasyPow) Search(block *Block, reactChan chan ethreact.Event) []byte { } if !pow.turbo { - time.Sleep(500 * time.Millisecond) + time.Sleep(20 * time.Microsecond) } } diff --git a/ethchain/genesis.go b/ethchain/genesis.go index 0ce53a6ee2..8a1219acb6 100644 --- a/ethchain/genesis.go +++ b/ethchain/genesis.go @@ -28,7 +28,7 @@ var GenesisHeader = []interface{}{ "", // Difficulty //ethutil.BigPow(2, 22), - big.NewInt(4096), + big.NewInt(131072), // Number ethutil.Big0, // Block minimum gas price diff --git a/ethminer/miner.go b/ethminer/miner.go index 74f5bc7afa..799db79f1f 100644 --- a/ethminer/miner.go +++ b/ethminer/miner.go @@ -23,6 +23,8 @@ type Miner struct { powChan chan []byte powQuitChan chan ethreact.Event quitChan chan chan error + + turbo bool } func (self *Miner) GetPow() ethchain.PoW { @@ -39,6 +41,12 @@ func NewDefaultMiner(coinbase []byte, ethereum ethchain.EthManager) *Miner { return &miner } +func (self *Miner) ToggleTurbo() { + self.turbo = !self.turbo + + self.pow.Turbo(self.turbo) +} + func (miner *Miner) Start() { miner.reactChan = make(chan ethreact.Event, 1) // This is the channel that receives 'updates' when ever a new transaction or block comes in miner.powChan = make(chan []byte, 1) // This is the channel that receives valid sha hashes for a given block