aboutsummaryrefslogtreecommitdiffstats
path: root/core
diff options
context:
space:
mode:
authorMartin Holst Swende <martin@swende.se>2018-06-11 16:03:40 +0800
committerPéter Szilágyi <peterke@gmail.com>2018-06-11 16:03:40 +0800
commiteac16f98243206bee99c3daaa8aef08695f5b69e (patch)
treeb309897f09113b703e2ddd2bdd55352522cb6f6a /core
parent69c52bde3f5e48a3b74264bf4854e9768ede75b2 (diff)
downloaddexon-eac16f98243206bee99c3daaa8aef08695f5b69e.tar.gz
dexon-eac16f98243206bee99c3daaa8aef08695f5b69e.tar.zst
dexon-eac16f98243206bee99c3daaa8aef08695f5b69e.zip
core: improve getBadBlocks to return full block rlp (#16902)
* core: improve getBadBlocks to return full block rlp * core, eth, ethapi: changes to getBadBlocks formatting * ethapi: address review concerns
Diffstat (limited to 'core')
-rw-r--r--core/blockchain.go20
1 files changed, 7 insertions, 13 deletions
diff --git a/core/blockchain.go b/core/blockchain.go
index bf1bbe6cb..ea26fa034 100644
--- a/core/blockchain.go
+++ b/core/blockchain.go
@@ -1392,27 +1392,21 @@ func (bc *BlockChain) update() {
}
}
-// BadBlockArgs represents the entries in the list returned when bad blocks are queried.
-type BadBlockArgs struct {
- Hash common.Hash `json:"hash"`
- Header *types.Header `json:"header"`
-}
-
// BadBlocks returns a list of the last 'bad blocks' that the client has seen on the network
-func (bc *BlockChain) BadBlocks() ([]BadBlockArgs, error) {
- headers := make([]BadBlockArgs, 0, bc.badBlocks.Len())
+func (bc *BlockChain) BadBlocks() []*types.Block {
+ blocks := make([]*types.Block, 0, bc.badBlocks.Len())
for _, hash := range bc.badBlocks.Keys() {
- if hdr, exist := bc.badBlocks.Peek(hash); exist {
- header := hdr.(*types.Header)
- headers = append(headers, BadBlockArgs{header.Hash(), header})
+ if blk, exist := bc.badBlocks.Peek(hash); exist {
+ block := blk.(*types.Block)
+ blocks = append(blocks, block)
}
}
- return headers, nil
+ return blocks
}
// addBadBlock adds a bad block to the bad-block LRU cache
func (bc *BlockChain) addBadBlock(block *types.Block) {
- bc.badBlocks.Add(block.Header().Hash(), block.Header())
+ bc.badBlocks.Add(block.Hash(), block)
}
// reportBlock logs a bad block error.