diff options
author | Péter Szilágyi <peterke@gmail.com> | 2017-04-04 16:41:17 +0800 |
---|---|---|
committer | Péter Szilágyi <peterke@gmail.com> | 2017-04-04 16:41:17 +0800 |
commit | fb98a8c6c2964f59ef2be7677c81260181074db7 (patch) | |
tree | 422bfe1451c979fe76deff45b6d903a8f7629cfb /ethstats | |
parent | 96d1a4aee6c21b0cd247513cdd9d3acc78df378d (diff) | |
download | dexon-fb98a8c6c2964f59ef2be7677c81260181074db7.tar dexon-fb98a8c6c2964f59ef2be7677c81260181074db7.tar.gz dexon-fb98a8c6c2964f59ef2be7677c81260181074db7.tar.bz2 dexon-fb98a8c6c2964f59ef2be7677c81260181074db7.tar.lz dexon-fb98a8c6c2964f59ef2be7677c81260181074db7.tar.xz dexon-fb98a8c6c2964f59ef2be7677c81260181074db7.tar.zst dexon-fb98a8c6c2964f59ef2be7677c81260181074db7.zip |
ethstats: cut short unavailable history responses
Diffstat (limited to 'ethstats')
-rw-r--r-- | ethstats/ethstats.go | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/ethstats/ethstats.go b/ethstats/ethstats.go index 3ebbe3fc3..aec8eb8bf 100644 --- a/ethstats/ethstats.go +++ b/ethstats/ethstats.go @@ -537,6 +537,7 @@ func (s *Service) reportHistory(conn *websocket.Conn, list []uint64) error { // Gather the batch of blocks to report history := make([]*blockStats, len(indexes)) for i, number := range indexes { + // Retrieve the next block if it's known to us var block *types.Block if s.eth != nil { block = s.eth.BlockChain().GetBlockByNumber(number) @@ -545,13 +546,20 @@ func (s *Service) reportHistory(conn *websocket.Conn, list []uint64) error { block = types.NewBlockWithHeader(header) } } + // If we do have the block, add to the history and continue if block != nil { history[len(history)-1-i] = s.assembleBlockStats(block) + continue } + // Ran out of blocks, cut the report short and send + history = history[len(history)-i:] } // Assemble the history report and send it to the server - log.Trace("Sending historical blocks to ethstats", "first", history[0].Number, "last", history[len(history)-1].Number) - + if len(history) > 0 { + log.Trace("Sending historical blocks to ethstats", "first", history[0].Number, "last", history[len(history)-1].Number) + } else { + log.Trace("No history to send to stats server") + } stats := map[string]interface{}{ "id": s.node, "history": history, |