From 6f04302a48fe642e96afe7734230743cc59f2fe4 Mon Sep 17 00:00:00 2001
From: Jeromy <jeromyj@gmail.com>
Date: Mon, 4 May 2015 03:12:17 -0700
Subject: [PATCH] remove logging of dup blocks, move to counters for bitswap
 stat

---
 core/commands/bitswap.go    |  2 ++
 exchange/bitswap/bitswap.go | 15 +++++++--------
 exchange/bitswap/stat.go    | 10 +++++++---
 3 files changed, 16 insertions(+), 11 deletions(-)

diff --git a/core/commands/bitswap.go b/core/commands/bitswap.go
index f89f38d7f..cfc522bae 100644
--- a/core/commands/bitswap.go
+++ b/core/commands/bitswap.go
@@ -101,6 +101,8 @@ var bitswapStatCmd = &cmds.Command{
 			buf := new(bytes.Buffer)
 			fmt.Fprintln(buf, "bitswap status")
 			fmt.Fprintf(buf, "\tprovides buffer: %d / %d\n", out.ProvideBufLen, bitswap.HasBlockBufferSize)
+			fmt.Fprintf(buf, "\tblocks received: %d\n", out.BlocksReceived)
+			fmt.Fprintf(buf, "\tdup blocks received: %d\n", out.DupBlksReceived)
 			fmt.Fprintf(buf, "\twantlist [%d keys]\n", len(out.Wantlist))
 			for _, k := range out.Wantlist {
 				fmt.Fprintf(buf, "\t\t%s\n", k.B58String())
diff --git a/exchange/bitswap/bitswap.go b/exchange/bitswap/bitswap.go
index 937ee131e..8b12a4727 100644
--- a/exchange/bitswap/bitswap.go
+++ b/exchange/bitswap/bitswap.go
@@ -127,6 +127,9 @@ type Bitswap struct {
 	newBlocks chan *blocks.Block
 
 	provideKeys chan u.Key
+
+	blocksRecvd    int
+	dupBlocksRecvd int
 }
 
 type blockRequest struct {
@@ -219,14 +222,6 @@ func (bs *Bitswap) HasBlock(ctx context.Context, blk *blocks.Block) error {
 		return errors.New("bitswap is closed")
 	default:
 	}
-	has, err := bs.blockstore.Has(blk.Key())
-	if err != nil {
-		return err
-	}
-
-	if has {
-		log.Error(bs.self, "Dup Block! ", blk.Key())
-	}
 
 	if err := bs.blockstore.Put(blk); err != nil {
 		return err
@@ -351,6 +346,10 @@ func (bs *Bitswap) ReceiveMessage(ctx context.Context, p peer.ID, incoming bsmsg
 	// Should only track *useful* messages in ledger
 
 	for _, block := range incoming.Blocks() {
+		bs.blocksRecvd++
+		if has, err := bs.blockstore.Has(block.Key()); err == nil && has {
+			bs.dupBlocksRecvd++
+		}
 		hasBlockCtx, cancel := context.WithTimeout(ctx, hasBlockTimeout)
 		if err := bs.HasBlock(hasBlockCtx, block); err != nil {
 			log.Debug(err)
diff --git a/exchange/bitswap/stat.go b/exchange/bitswap/stat.go
index 1c5fec62b..ceab4b2ee 100644
--- a/exchange/bitswap/stat.go
+++ b/exchange/bitswap/stat.go
@@ -6,15 +6,19 @@ import (
 )
 
 type Stat struct {
-	ProvideBufLen int
-	Wantlist      []u.Key
-	Peers         []string
+	ProvideBufLen   int
+	Wantlist        []u.Key
+	Peers           []string
+	BlocksReceived  int
+	DupBlksReceived int
 }
 
 func (bs *Bitswap) Stat() (*Stat, error) {
 	st := new(Stat)
 	st.ProvideBufLen = len(bs.newBlocks)
 	st.Wantlist = bs.GetWantlist()
+	st.BlocksReceived = bs.blocksRecvd
+	st.DupBlksReceived = bs.dupBlocksRecvd
 
 	for _, p := range bs.engine.Peers() {
 		st.Peers = append(st.Peers, p.Pretty())
-- 
GitLab