aboutsummaryrefslogtreecommitdiffstats
path: root/eth/backend.go
diff options
context:
space:
mode:
Diffstat (limited to 'eth/backend.go')
-rw-r--r--eth/backend.go13
1 files changed, 10 insertions, 3 deletions
diff --git a/eth/backend.go b/eth/backend.go
index 382cfc832..039f730f1 100644
--- a/eth/backend.go
+++ b/eth/backend.go
@@ -125,6 +125,8 @@ type Ethereum struct {
blockDb common.Database // Block chain database
stateDb common.Database // State changes database
extraDb common.Database // Extra database (txs, etc)
+ seedDb *discover.Cache // Peer database seeding the bootstrap
+
// Closed when databases are flushed and closed
databasesClosed chan bool
@@ -179,7 +181,10 @@ func New(config *Config) (*Ethereum, error) {
if err != nil {
return nil, err
}
- seedDbPath := path.Join(config.DataDir, "seeds")
+ seedDb, err := discover.NewPersistentCache(path.Join(config.DataDir, "seeds"))
+ if err != nil {
+ return nil, err
+ }
// Perform database sanity checks
d, _ := blockDb.Get([]byte("ProtocolVersion"))
@@ -207,6 +212,7 @@ func New(config *Config) (*Ethereum, error) {
blockDb: blockDb,
stateDb: stateDb,
extraDb: extraDb,
+ seedDb: seedDb,
eventMux: &event.TypeMux{},
accountManager: config.AccountManager,
DataDir: config.DataDir,
@@ -244,7 +250,7 @@ func New(config *Config) (*Ethereum, error) {
NAT: config.NAT,
NoDial: !config.Dial,
BootstrapNodes: config.parseBootNodes(),
- SeedCache: seedDbPath,
+ SeedCache: seedDb,
}
if len(config.Port) > 0 {
eth.net.ListenAddr = ":" + config.Port
@@ -423,6 +429,7 @@ done:
}
}
+ s.seedDb.Close()
s.blockDb.Close()
s.stateDb.Close()
s.extraDb.Close()
@@ -450,7 +457,7 @@ func (self *Ethereum) SuggestPeer(nodeURL string) error {
}
func (s *Ethereum) Stop() {
- s.txSub.Unsubscribe() // quits txBroadcastLoop
+ s.txSub.Unsubscribe() // quits txBroadcastLoop
s.protocolManager.Stop()
s.txPool.Stop()