forked from cerc-io/plugeth
ethstats: cut short unavailable history responses
This commit is contained in:
parent
96d1a4aee6
commit
fb98a8c6c2
@ -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,
|
||||
|
Loading…
Reference in New Issue
Block a user