Accounting metrics reporter (#18136)
This commit is contained in:
committed by
Anton Evangelatov
parent
2714e8f091
commit
bba5fd8192
@ -1,4 +1,4 @@
|
||||
// Copyright 2016 The go-ethereum Authors
|
||||
// Copyright 2018 The go-ethereum Authors
|
||||
// This file is part of the go-ethereum library.
|
||||
//
|
||||
// The go-ethereum library is free software: you can redistribute it and/or modify
|
||||
@ -66,20 +66,22 @@ var (
|
||||
|
||||
// the swarm stack
|
||||
type Swarm struct {
|
||||
config *api.Config // swarm configuration
|
||||
api *api.API // high level api layer (fs/manifest)
|
||||
dns api.Resolver // DNS registrar
|
||||
fileStore *storage.FileStore // distributed preimage archive, the local API to the storage with document level storage/retrieval support
|
||||
streamer *stream.Registry
|
||||
bzz *network.Bzz // the logistic manager
|
||||
backend chequebook.Backend // simple blockchain Backend
|
||||
privateKey *ecdsa.PrivateKey
|
||||
corsString string
|
||||
swapEnabled bool
|
||||
netStore *storage.NetStore
|
||||
sfs *fuse.SwarmFS // need this to cleanup all the active mounts on node exit
|
||||
ps *pss.Pss
|
||||
swap *swap.Swap
|
||||
config *api.Config // swarm configuration
|
||||
api *api.API // high level api layer (fs/manifest)
|
||||
dns api.Resolver // DNS registrar
|
||||
fileStore *storage.FileStore // distributed preimage archive, the local API to the storage with document level storage/retrieval support
|
||||
streamer *stream.Registry
|
||||
bzz *network.Bzz // the logistic manager
|
||||
backend chequebook.Backend // simple blockchain Backend
|
||||
privateKey *ecdsa.PrivateKey
|
||||
corsString string
|
||||
swapEnabled bool
|
||||
netStore *storage.NetStore
|
||||
sfs *fuse.SwarmFS // need this to cleanup all the active mounts on node exit
|
||||
ps *pss.Pss
|
||||
swap *swap.Swap
|
||||
stateStore *state.DBStore
|
||||
accountingMetrics *protocols.AccountingMetrics
|
||||
|
||||
tracerClose io.Closer
|
||||
}
|
||||
@ -134,7 +136,7 @@ func NewSwarm(config *api.Config, mockStore *mock.NodeStore) (self *Swarm, err e
|
||||
LightNode: config.LightNodeEnabled,
|
||||
}
|
||||
|
||||
stateStore, err := state.NewDBStore(filepath.Join(config.Path, "state-store.db"))
|
||||
self.stateStore, err = state.NewDBStore(filepath.Join(config.Path, "state-store.db"))
|
||||
if err != nil {
|
||||
return
|
||||
}
|
||||
@ -179,6 +181,7 @@ func NewSwarm(config *api.Config, mockStore *mock.NodeStore) (self *Swarm, err e
|
||||
return nil, err
|
||||
}
|
||||
self.swap = swap.New(balancesStore)
|
||||
self.accountingMetrics = protocols.SetupAccountingMetrics(10*time.Second, filepath.Join(config.Path, "metrics.db"))
|
||||
}
|
||||
|
||||
var nodeID enode.ID
|
||||
@ -203,7 +206,7 @@ func NewSwarm(config *api.Config, mockStore *mock.NodeStore) (self *Swarm, err e
|
||||
SyncUpdateDelay: config.SyncUpdateDelay,
|
||||
MaxPeerServers: config.MaxStreamPeerServers,
|
||||
}
|
||||
self.streamer = stream.NewRegistry(nodeID, delivery, self.netStore, stateStore, registryOptions, self.swap)
|
||||
self.streamer = stream.NewRegistry(nodeID, delivery, self.netStore, self.stateStore, registryOptions, self.swap)
|
||||
|
||||
// Swarm Hash Merklised Chunking for Arbitrary-length Document/File storage
|
||||
self.fileStore = storage.NewFileStore(self.netStore, self.config.FileStoreParams)
|
||||
@ -226,7 +229,7 @@ func NewSwarm(config *api.Config, mockStore *mock.NodeStore) (self *Swarm, err e
|
||||
|
||||
log.Debug("Setup local storage")
|
||||
|
||||
self.bzz = network.NewBzz(bzzconfig, to, stateStore, self.streamer.GetSpec(), self.streamer.Run)
|
||||
self.bzz = network.NewBzz(bzzconfig, to, self.stateStore, self.streamer.GetSpec(), self.streamer.Run)
|
||||
|
||||
// Pss = postal service over swarm (devp2p over bzz)
|
||||
self.ps, err = pss.NewPss(to, config.Pss)
|
||||
@ -446,14 +449,24 @@ func (self *Swarm) Stop() error {
|
||||
ch.Stop()
|
||||
ch.Save()
|
||||
}
|
||||
|
||||
if self.swap != nil {
|
||||
self.swap.Close()
|
||||
}
|
||||
if self.accountingMetrics != nil {
|
||||
self.accountingMetrics.Close()
|
||||
}
|
||||
if self.netStore != nil {
|
||||
self.netStore.Close()
|
||||
}
|
||||
self.sfs.Stop()
|
||||
stopCounter.Inc(1)
|
||||
self.streamer.Stop()
|
||||
return self.bzz.Stop()
|
||||
|
||||
err := self.bzz.Stop()
|
||||
if self.stateStore != nil {
|
||||
self.stateStore.Close()
|
||||
}
|
||||
return err
|
||||
}
|
||||
|
||||
// implements the node.Service interface
|
||||
|
Reference in New Issue
Block a user