diff --git a/node/config.go b/node/config.go index 8af9215a0..dbefcb8a5 100644 --- a/node/config.go +++ b/node/config.go @@ -268,7 +268,7 @@ func (c *Config) name() string { return c.Name } -// These resources are resolved differently for the "geth" and "geth-testnet" instances. +// These resources are resolved differently for "geth" instances. var isOldGethResource = map[string]bool{ "chaindata": true, "nodes": true, @@ -297,7 +297,14 @@ func (c *Config) resolvePath(path string) string { return oldpath } } - return filepath.Join(c.DataDir, c.name(), path) + return filepath.Join(c.instanceDir(), path) +} + +func (c *Config) instanceDir() string { + if c.DataDir == "" { + return "" + } + return filepath.Join(c.DataDir, c.name()) } // NodeKey retrieves the currently configured private key of the node, checking diff --git a/node/node.go b/node/node.go index 15f43fc6b..fb11696fa 100644 --- a/node/node.go +++ b/node/node.go @@ -601,10 +601,16 @@ func (n *Node) Service(service interface{}) error { } // DataDir retrieves the current datadir used by the protocol stack. +// Deprecated: No files should be stored in this directory, use InstanceDir instead. func (n *Node) DataDir() string { return n.config.DataDir } +// InstanceDir retrieves the instance directory used by the protocol stack. +func (n *Node) InstanceDir() string { + return n.config.instanceDir() +} + // AccountManager retrieves the account manager used by the protocol stack. func (n *Node) AccountManager() *accounts.Manager { return n.accman