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