eth/downloader: clean up and simplify the code a bit
This commit is contained in:
		
							parent
							
								
									abdfcda4dd
								
							
						
					
					
						commit
						0275fcb3d3
					
				| @ -3,20 +3,18 @@ package downloader | ||||
| import ( | ||||
| 	"bytes" | ||||
| 	"errors" | ||||
| 	"fmt" | ||||
| 	"math/rand" | ||||
| 	"sync" | ||||
| 	"sync/atomic" | ||||
| 	"time" | ||||
| 
 | ||||
| 	"gopkg.in/fatih/set.v0" | ||||
| 
 | ||||
| 	"github.com/ethereum/go-ethereum/common" | ||||
| 	"github.com/ethereum/go-ethereum/core" | ||||
| 	"github.com/ethereum/go-ethereum/core/types" | ||||
| 	"github.com/ethereum/go-ethereum/event" | ||||
| 	"github.com/ethereum/go-ethereum/logger" | ||||
| 	"github.com/ethereum/go-ethereum/logger/glog" | ||||
| 	"gopkg.in/fatih/set.v0" | ||||
| ) | ||||
| 
 | ||||
| const ( | ||||
| @ -301,7 +299,6 @@ func (d *Downloader) fetchHashes(p *peer, h common.Hash) error { | ||||
| 
 | ||||
| 					d.queue.Insert(hashPack.hashes[:index+1]) | ||||
| 					if err := d.banBlocks(active.id, hash); err != nil { | ||||
| 						fmt.Println("ban err", err) | ||||
| 						glog.V(logger.Debug).Infof("Failed to ban batch of blocks: %v", err) | ||||
| 					} | ||||
| 					return ErrInvalidChain | ||||
| @ -596,15 +593,8 @@ func (d *Downloader) banBlocks(peerId string, head common.Hash) error { | ||||
| 			if len(blocks) == 0 { | ||||
| 				return errors.New("no blocks returned to ban") | ||||
| 			} | ||||
| 			// Got the batch of invalid blocks, reconstruct their chain order
 | ||||
| 			for i := 0; i < len(blocks); i++ { | ||||
| 				for j := i + 1; j < len(blocks); j++ { | ||||
| 					if blocks[i].NumberU64() > blocks[j].NumberU64() { | ||||
| 						blocks[i], blocks[j] = blocks[j], blocks[i] | ||||
| 					} | ||||
| 				} | ||||
| 			} | ||||
| 			// Ensure we're really banning the correct blocks
 | ||||
| 			// Reconstruct the original chain order and ensure we're banning the correct blocks
 | ||||
| 			types.BlockBy(types.Number).Sort(blocks) | ||||
| 			if bytes.Compare(blocks[0].Hash().Bytes(), head.Bytes()) != 0 { | ||||
| 				return errors.New("head block not the banned one") | ||||
| 			} | ||||
|  | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user