From 1deeb05627fcdf7562ac8c255f8f9387385b895d Mon Sep 17 00:00:00 2001
From: Dave Collins <davec@conformal.com>
Date: Wed, 24 Jul 2013 12:31:14 -0500
Subject: [PATCH] Add a few log error messages.

In addition to returning errors to the caller, log the error with a prefix
in a few key places that helps identify the origin for errors.  In some
cases, the underlying error comes from a different subsystem such as the
SQL database driver and the error messages can be fairly generic.
---
 accept.go | 4 ++++
 chain.go  | 1 +
 2 files changed, 5 insertions(+)

diff --git a/accept.go b/accept.go
index 94fa73c7..58a7d150 100644
--- a/accept.go
+++ b/accept.go
@@ -19,6 +19,7 @@ func (b *BlockChain) maybeAcceptBlock(block *btcutil.Block) error {
 	// if this is the genesis block.
 	prevNode, err := b.getPrevNodeFromBlock(block)
 	if err != nil {
+		log.Errorf("getPrevNodeFromBlock: %v", err)
 		return err
 	}
 
@@ -34,6 +35,7 @@ func (b *BlockChain) maybeAcceptBlock(block *btcutil.Block) error {
 	blockHeader := block.MsgBlock().Header
 	expectedDifficulty, err := b.calcNextRequiredDifficulty(prevNode, block)
 	if err != nil {
+		log.Errorf("calcNextRequiredDifficulty: %v", err)
 		return err
 	}
 	blockDifficulty := blockHeader.Bits
@@ -47,6 +49,7 @@ func (b *BlockChain) maybeAcceptBlock(block *btcutil.Block) error {
 	// the last several blocks (medianTimeBlocks).
 	medianTime, err := b.calcPastMedianTime(prevNode)
 	if err != nil {
+		log.Errorf("calcPastMedianTime: %v", err)
 		return err
 	}
 	if !blockHeader.Timestamp.After(medianTime) {
@@ -147,6 +150,7 @@ func (b *BlockChain) maybeAcceptBlock(block *btcutil.Block) error {
 	// also handles validation of the transaction scripts.
 	err = b.connectBestChain(newNode, block)
 	if err != nil {
+		log.Errorf("connectBestChain: %v", err)
 		return err
 	}
 
diff --git a/chain.go b/chain.go
index 4113c914..b9a6efe3 100644
--- a/chain.go
+++ b/chain.go
@@ -413,6 +413,7 @@ func (b *BlockChain) calcPastMedianTime(startNode *blockNode) (time.Time, error)
 		var err error
 		iterNode, err = b.getPrevNodeFromNode(iterNode)
 		if err != nil {
+			log.Errorf("getPrevNodeFromNode: %v", err)
 			return time.Time{}, err
 		}
 	}