From 2c7b625daaf062192db2fa604344f79c1bdbb232 Mon Sep 17 00:00:00 2001
From: Maran <maran.hidskes@gmail.com>
Date: Wed, 14 May 2014 13:55:55 +0200
Subject: [PATCH] Make sure we have a coinbase address to mine with

---
 utils/cmd.go | 14 ++++++++++----
 1 file changed, 10 insertions(+), 4 deletions(-)

diff --git a/utils/cmd.go b/utils/cmd.go
index 5a100ca4f..66cfbeff9 100644
--- a/utils/cmd.go
+++ b/utils/cmd.go
@@ -26,6 +26,16 @@ func DoMining(ethereum *eth.Ethereum) {
 	// Set Mining status
 	ethereum.Mining = true
 
+	data, _ := ethutil.Config.Db.Get([]byte("KeyRing"))
+	if len(data) == 0 {
+		log.Println("No address found, can't start mining")
+		return
+	}
+
+	keyRing := ethutil.NewValueFromBytes(data)
+	addr := keyRing.Get(0).Bytes()
+	pair, _ := ethchain.NewKeyPairFromSec(ethutil.FromHex(hex.EncodeToString(addr)))
+
 	go func() {
 		// Give it some time to connect with peers
 		time.Sleep(3 * time.Second)
@@ -35,10 +45,6 @@ func DoMining(ethereum *eth.Ethereum) {
 		}
 		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()
 	}()
-- 
GitLab