From 59c0d014189db1b85f45ef17f458bcbc20c267b2 Mon Sep 17 00:00:00 2001
From: obscuren <geffobscura@gmail.com>
Date: Mon, 18 May 2015 16:04:10 +0200
Subject: [PATCH] core: chain manager no longer exports genesis block

---
 cmd/geth/js_test.go   | 2 ++
 core/chain_manager.go | 4 ++--
 2 files changed, 4 insertions(+), 2 deletions(-)

diff --git a/cmd/geth/js_test.go b/cmd/geth/js_test.go
index e02e8f704..6368efbfc 100644
--- a/cmd/geth/js_test.go
+++ b/cmd/geth/js_test.go
@@ -172,6 +172,8 @@ func TestBlockChain(t *testing.T) {
 	tmpfile := filepath.Join(extmp, "export.chain")
 	tmpfileq := strconv.Quote(tmpfile)
 
+	ethereum.ChainManager().Reset()
+
 	checkEvalJSON(t, repl, `admin.export(`+tmpfileq+`)`, `true`)
 	if _, err := os.Stat(tmpfile); err != nil {
 		t.Fatal(err)
diff --git a/core/chain_manager.go b/core/chain_manager.go
index 355e203c7..7dff7dffd 100644
--- a/core/chain_manager.go
+++ b/core/chain_manager.go
@@ -348,7 +348,7 @@ func (self *ChainManager) Export(w io.Writer) error {
 
 	last := self.currentBlock.NumberU64()
 
-	for nr := uint64(0); nr <= last; nr++ {
+	for nr := uint64(1); nr <= last; nr++ {
 		block := self.GetBlockByNumber(nr)
 		if block == nil {
 			return fmt.Errorf("export failed on #%d: not found", nr)
@@ -789,7 +789,7 @@ func verifyNonces(pow pow.PoW, blocks []*types.Block) error {
 func verifyNonce(pow pow.PoW, in <-chan *types.Block, done chan<- error) {
 	for block := range in {
 		if !pow.Verify(block) {
-			done <- ValidationError("Block's nonce is invalid (= %x)", block.Nonce)
+			done <- ValidationError("Block(#%v) nonce is invalid (= %x)", block.Number(), block.Nonce)
 		} else {
 			done <- nil
 		}
-- 
GitLab