Turbo mining
This commit is contained in:
parent
854d6d4e5c
commit
732573ba51
|
@ -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)
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
Loading…
Reference in New Issue