@@ -54,6 +54,7 @@ type Swarm struct {
54
54
privateKey * ecdsa.PrivateKey
55
55
corsString string
56
56
swapEnabled bool
57
+ lstore * storage.LocalStore // local store, needs to store for releasing resources after node stopped
57
58
}
58
59
59
60
type SwarmAPI struct {
@@ -90,15 +91,15 @@ func NewSwarm(ctx *node.ServiceContext, backend chequebook.Backend, config *api.
90
91
glog .V (logger .Debug ).Infof ("Setting up Swarm service components" )
91
92
92
93
hash := storage .MakeHashFunc (config .ChunkerParams .Hash )
93
- lstore , err : = storage .NewLocalStore (hash , config .StoreParams )
94
+ self . lstore , err = storage .NewLocalStore (hash , config .StoreParams )
94
95
if err != nil {
95
96
return
96
97
}
97
98
98
99
// setup local store
99
100
glog .V (logger .Debug ).Infof ("Set up local storage" )
100
101
101
- self .dbAccess = network .NewDbAccess (lstore )
102
+ self .dbAccess = network .NewDbAccess (self . lstore )
102
103
glog .V (logger .Debug ).Infof ("Set up local db access (iterator/counter)" )
103
104
104
105
// set up the kademlia hive
@@ -115,15 +116,15 @@ func NewSwarm(ctx *node.ServiceContext, backend chequebook.Backend, config *api.
115
116
glog .V (logger .Debug ).Infof ("-> set swarm forwarder as cloud storage backend" )
116
117
// setup cloud storage internal access layer
117
118
118
- self .storage = storage .NewNetStore (hash , lstore , cloud , config .StoreParams )
119
+ self .storage = storage .NewNetStore (hash , self . lstore , cloud , config .StoreParams )
119
120
glog .V (logger .Debug ).Infof ("-> swarm net store shared access layer to Swarm Chunk Store" )
120
121
121
122
// set up Depo (storage handler = cloud storage access layer for incoming remote requests)
122
- self .depo = network .NewDepo (hash , lstore , self .storage )
123
+ self .depo = network .NewDepo (hash , self . lstore , self .storage )
123
124
glog .V (logger .Debug ).Infof ("-> REmote Access to CHunks" )
124
125
125
126
// set up DPA, the cloud storage local access layer
126
- dpaChunkStore := storage .NewDpaChunkStore (lstore , self .storage )
127
+ dpaChunkStore := storage .NewDpaChunkStore (self . lstore , self .storage )
127
128
glog .V (logger .Debug ).Infof ("-> Local Access to Swarm" )
128
129
// Swarm Hash Merklised Chunking for Arbitrary-length Document/File storage
129
130
self .dpa = storage .NewDPA (dpaChunkStore , self .config .ChunkerParams )
@@ -212,6 +213,11 @@ func (self *Swarm) Stop() error {
212
213
ch .Stop ()
213
214
ch .Save ()
214
215
}
216
+
217
+ if self .lstore != nil {
218
+ self .lstore .DbStore .Close ()
219
+ }
220
+
215
221
return self .config .Save ()
216
222
}
217
223
0 commit comments