node: drop support for static & trusted node list files (#25610)
This changes the node setup to ignore datadir files
    static-nodes.json
    trusted-nodes.json
When these files are present, it an error will be printed to the log.
			
			
This commit is contained in:
		
							parent
							
								
									e257b3add7
								
							
						
					
					
						commit
						3630cafb34
					
				| @ -23,13 +23,11 @@ import ( | ||||
| 	"path/filepath" | ||||
| 	"runtime" | ||||
| 	"strings" | ||||
| 	"sync" | ||||
| 
 | ||||
| 	"github.com/ethereum/go-ethereum/common" | ||||
| 	"github.com/ethereum/go-ethereum/crypto" | ||||
| 	"github.com/ethereum/go-ethereum/log" | ||||
| 	"github.com/ethereum/go-ethereum/p2p" | ||||
| 	"github.com/ethereum/go-ethereum/p2p/enode" | ||||
| 	"github.com/ethereum/go-ethereum/rpc" | ||||
| ) | ||||
| 
 | ||||
| @ -194,8 +192,6 @@ type Config struct { | ||||
| 	// Logger is a custom logger to use with the p2p.Server.
 | ||||
| 	Logger log.Logger `toml:",omitempty"` | ||||
| 
 | ||||
| 	staticNodesWarning     bool | ||||
| 	trustedNodesWarning    bool | ||||
| 	oldGethResourceWarning bool | ||||
| 
 | ||||
| 	// AllowUnprotectedTxs allows non EIP-155 protected transactions to be send over RPC.
 | ||||
| @ -340,8 +336,9 @@ func (c *Config) ResolvePath(path string) string { | ||||
| 			oldpath = filepath.Join(c.DataDir, path) | ||||
| 		} | ||||
| 		if oldpath != "" && common.FileExist(oldpath) { | ||||
| 			if warn { | ||||
| 				c.warnOnce(&c.oldGethResourceWarning, "Using deprecated resource file %s, please move this file to the 'geth' subdirectory of datadir.", oldpath) | ||||
| 			if warn && !c.oldGethResourceWarning { | ||||
| 				c.oldGethResourceWarning = true | ||||
| 				log.Warn("Using deprecated resource file, please move this file to the 'geth' subdirectory of datadir.", "file", oldpath) | ||||
| 			} | ||||
| 			return oldpath | ||||
| 		} | ||||
| @ -394,48 +391,35 @@ func (c *Config) NodeKey() *ecdsa.PrivateKey { | ||||
| 	return key | ||||
| } | ||||
| 
 | ||||
| // StaticNodes returns a list of node enode URLs configured as static nodes.
 | ||||
| func (c *Config) StaticNodes() []*enode.Node { | ||||
| 	return c.parsePersistentNodes(&c.staticNodesWarning, c.ResolvePath(datadirStaticNodes)) | ||||
| // CheckLegacyFiles inspects the datadir for signs of legacy static-nodes
 | ||||
| // and trusted-nodes files. If they exist it raises an error.
 | ||||
| func (c *Config) checkLegacyFiles() { | ||||
| 	c.checkLegacyFile(c.ResolvePath(datadirStaticNodes)) | ||||
| 	c.checkLegacyFile(c.ResolvePath(datadirTrustedNodes)) | ||||
| } | ||||
| 
 | ||||
| // TrustedNodes returns a list of node enode URLs configured as trusted nodes.
 | ||||
| func (c *Config) TrustedNodes() []*enode.Node { | ||||
| 	return c.parsePersistentNodes(&c.trustedNodesWarning, c.ResolvePath(datadirTrustedNodes)) | ||||
| } | ||||
| 
 | ||||
| // parsePersistentNodes parses a list of discovery node URLs loaded from a .json
 | ||||
| // file from within the data directory.
 | ||||
| func (c *Config) parsePersistentNodes(w *bool, path string) []*enode.Node { | ||||
| // checkLegacyFile will only raise an error if a file at the given path exists.
 | ||||
| func (c *Config) checkLegacyFile(path string) { | ||||
| 	// Short circuit if no node config is present
 | ||||
| 	if c.DataDir == "" { | ||||
| 		return nil | ||||
| 		return | ||||
| 	} | ||||
| 	if _, err := os.Stat(path); err != nil { | ||||
| 		return nil | ||||
| 		return | ||||
| 	} | ||||
| 	c.warnOnce(w, "Found deprecated node list file %s, please use the TOML config file instead.", path) | ||||
| 
 | ||||
| 	// Load the nodes from the config file.
 | ||||
| 	var nodelist []string | ||||
| 	if err := common.LoadJSON(path, &nodelist); err != nil { | ||||
| 		log.Error(fmt.Sprintf("Can't load node list file: %v", err)) | ||||
| 		return nil | ||||
| 	logger := c.Logger | ||||
| 	if logger == nil { | ||||
| 		logger = log.Root() | ||||
| 	} | ||||
| 	// Interpret the list as a discovery node array
 | ||||
| 	var nodes []*enode.Node | ||||
| 	for _, url := range nodelist { | ||||
| 		if url == "" { | ||||
| 			continue | ||||
| 		} | ||||
| 		node, err := enode.Parse(enode.ValidSchemes, url) | ||||
| 		if err != nil { | ||||
| 			log.Error(fmt.Sprintf("Node URL %s: %v\n", url, err)) | ||||
| 			continue | ||||
| 		} | ||||
| 		nodes = append(nodes, node) | ||||
| 	switch fname := filepath.Base(path); fname { | ||||
| 	case "static-nodes.json": | ||||
| 		logger.Error("The static-nodes.json file is deprecated and ignored. Use P2P.StaticNodes in config.toml instead.") | ||||
| 	case "trusted-nodes.json": | ||||
| 		logger.Error("The trusted-nodes.json file is deprecated and ignored. Use P2P.TrustedNodes in config.toml instead.") | ||||
| 	default: | ||||
| 		// We shouldn't wind up here, but better print something just in case.
 | ||||
| 		logger.Error("Ignoring deprecated file.", "file", path) | ||||
| 	} | ||||
| 	return nodes | ||||
| } | ||||
| 
 | ||||
| // KeyDirConfig determines the settings for keydirectory
 | ||||
| @ -482,20 +466,3 @@ func getKeyStoreDir(conf *Config) (string, bool, error) { | ||||
| 
 | ||||
| 	return keydir, isEphemeral, nil | ||||
| } | ||||
| 
 | ||||
| var warnLock sync.Mutex | ||||
| 
 | ||||
| func (c *Config) warnOnce(w *bool, format string, args ...interface{}) { | ||||
| 	warnLock.Lock() | ||||
| 	defer warnLock.Unlock() | ||||
| 
 | ||||
| 	if *w { | ||||
| 		return | ||||
| 	} | ||||
| 	l := c.Logger | ||||
| 	if l == nil { | ||||
| 		l = log.Root() | ||||
| 	} | ||||
| 	l.Warn(fmt.Sprintf(format, args...)) | ||||
| 	*w = true | ||||
| } | ||||
|  | ||||
| @ -133,12 +133,7 @@ func New(conf *Config) (*Node, error) { | ||||
| 	node.server.Config.PrivateKey = node.config.NodeKey() | ||||
| 	node.server.Config.Name = node.config.NodeName() | ||||
| 	node.server.Config.Logger = node.log | ||||
| 	if node.server.Config.StaticNodes == nil { | ||||
| 		node.server.Config.StaticNodes = node.config.StaticNodes() | ||||
| 	} | ||||
| 	if node.server.Config.TrustedNodes == nil { | ||||
| 		node.server.Config.TrustedNodes = node.config.TrustedNodes() | ||||
| 	} | ||||
| 	node.config.checkLegacyFiles() | ||||
| 	if node.server.Config.NodeDatabase == "" { | ||||
| 		node.server.Config.NodeDatabase = node.config.NodeDB() | ||||
| 	} | ||||
|  | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user