|
|
|
@ -8,24 +8,27 @@ import ( |
|
|
|
|
_ "github.com/ethereum/eth-go/ethrpc" |
|
|
|
|
"github.com/ethereum/eth-go/ethutil" |
|
|
|
|
"log" |
|
|
|
|
"time" |
|
|
|
|
) |
|
|
|
|
|
|
|
|
|
func DoMining(ethereum *eth.Ethereum) { |
|
|
|
|
// Set Mining status
|
|
|
|
|
ethereum.Mining = true |
|
|
|
|
|
|
|
|
|
log.Println("Miner started") |
|
|
|
|
|
|
|
|
|
// Fake block mining. It broadcasts a new block every 5 seconds
|
|
|
|
|
go func() { |
|
|
|
|
// Give it some time to connect with peers
|
|
|
|
|
time.Sleep(3 * time.Second) |
|
|
|
|
|
|
|
|
|
for ethereum.IsUpToDate() == false { |
|
|
|
|
time.Sleep(5 * time.Second) |
|
|
|
|
} |
|
|
|
|
log.Println("Miner started") |
|
|
|
|
|
|
|
|
|
data, _ := ethutil.Config.Db.Get([]byte("KeyRing")) |
|
|
|
|
keyRing := ethutil.NewValueFromBytes(data) |
|
|
|
|
addr := keyRing.Get(0).Bytes() |
|
|
|
|
|
|
|
|
|
pair, _ := ethchain.NewKeyPairFromSec(ethutil.FromHex(hex.EncodeToString(addr))) |
|
|
|
|
|
|
|
|
|
miner := ethminer.NewDefaultMiner(pair.Address(), ethereum) |
|
|
|
|
miner.Start() |
|
|
|
|
|
|
|
|
|
}() |
|
|
|
|
} |
|
|
|
|