swarm/network: revert back DBAPI and NetStore unity

This commit is contained in:
Anton Evangelatov 2018-03-05 22:57:35 +01:00
parent d9ae59f38d
commit b102bd92ca
5 changed files with 16 additions and 24 deletions

View file

@ -75,8 +75,7 @@ func NewStreamerService(ctx *adapters.ServiceContext) (node.Service, error) {
addr := toAddr(id) addr := toAddr(id)
kad := network.NewKademlia(addr.Over(), network.NewKadParams()) kad := network.NewKademlia(addr.Over(), network.NewKadParams())
store := stores[id].(*storage.LocalStore) store := stores[id].(*storage.LocalStore)
netStore := storage.NewNetStore(store, nil) db := storage.NewDBAPI(store)
db := storage.NewDBAPI(netStore)
delivery := NewDelivery(kad, db) delivery := NewDelivery(kad, db)
deliveries[id] = delivery deliveries[id] = delivery
r := NewRegistry(addr, delivery, db, state.NewMemStore(), defaultSkipCheck, false) r := NewRegistry(addr, delivery, db, state.NewMemStore(), defaultSkipCheck, false)
@ -108,9 +107,7 @@ func newStreamerTester(t *testing.T) (*p2ptest.ProtocolTester, *Registry, *stora
return nil, nil, nil, removeDataDir, err return nil, nil, nil, removeDataDir, err
} }
netStore := storage.NewNetStore(localStore, nil) db := storage.NewDBAPI(localStore)
db := storage.NewDBAPI(netStore)
delivery := NewDelivery(to, db) delivery := NewDelivery(to, db)
streamer := NewRegistry(addr, delivery, db, state.NewMemStore(), defaultSkipCheck, false) streamer := NewRegistry(addr, delivery, db, state.NewMemStore(), defaultSkipCheck, false)
teardown := func() { teardown := func() {

View file

@ -47,9 +47,7 @@ func newIntervalsStreamerService(ctx *adapters.ServiceContext) (node.Service, er
addr := toAddr(id) addr := toAddr(id)
kad := network.NewKademlia(addr.Over(), network.NewKadParams()) kad := network.NewKademlia(addr.Over(), network.NewKadParams())
store := stores[id].(*storage.LocalStore) store := stores[id].(*storage.LocalStore)
db := storage.NewDBAPI(store)
netStore := storage.NewNetStore(store, nil)
db := storage.NewDBAPI(netStore)
delivery := NewDelivery(kad, db) delivery := NewDelivery(kad, db)
deliveries[id] = delivery deliveries[id] = delivery
r := NewRegistry(addr, delivery, db, state.NewMemStore(), defaultSkipCheck, false) r := NewRegistry(addr, delivery, db, state.NewMemStore(), defaultSkipCheck, false)

View file

@ -108,8 +108,7 @@ func testSyncBetweenNodes(t *testing.T, nodes, conns, chunkCount int, skipCheck
// create DBAPI-s for all nodes // create DBAPI-s for all nodes
dbs := make([]*storage.DBAPI, nodes) dbs := make([]*storage.DBAPI, nodes)
for i := 0; i < nodes; i++ { for i := 0; i < nodes; i++ {
netStore := storage.NewNetStore(sim.Stores[i].(*storage.LocalStore), nil) dbs[i] = storage.NewDBAPI(sim.Stores[i].(*storage.LocalStore))
dbs[i] = storage.NewDBAPI(netStore)
} }
// collect hashes in po 1 bin for each node // collect hashes in po 1 bin for each node

View file

@ -18,34 +18,35 @@ package storage
// wrapper of db-s to provide mockable custom local chunk store access to syncer // wrapper of db-s to provide mockable custom local chunk store access to syncer
type DBAPI struct { type DBAPI struct {
ns *NetStore db *LDBStore
loc *LocalStore
} }
func NewDBAPI(ns *NetStore) *DBAPI { func NewDBAPI(loc *LocalStore) *DBAPI {
return &DBAPI{ns: ns} return &DBAPI{loc.DbStore, loc}
} }
// to obtain the chunks from key or request db entry only // to obtain the chunks from key or request db entry only
func (self *DBAPI) Get(key Key) (*Chunk, error) { func (self *DBAPI) Get(key Key) (*Chunk, error) {
return self.ns.localStore.Get(key) return self.loc.Get(key)
} }
// current storage counter of chunk db // current storage counter of chunk db
func (self *DBAPI) CurrentBucketStorageIndex(po uint8) uint64 { func (self *DBAPI) CurrentBucketStorageIndex(po uint8) uint64 {
return self.ns.localStore.DbStore.CurrentBucketStorageIndex(po) return self.db.CurrentBucketStorageIndex(po)
} }
// iteration storage counter and proximity order // iteration storage counter and proximity order
func (self *DBAPI) Iterator(from uint64, to uint64, po uint8, f func(Key, uint64) bool) error { func (self *DBAPI) Iterator(from uint64, to uint64, po uint8, f func(Key, uint64) bool) error {
return self.ns.localStore.DbStore.SyncIterator(from, to, po, f) return self.db.SyncIterator(from, to, po, f)
} }
// to obtain the chunks from key or request db entry only // to obtain the chunks from key or request db entry only
func (self *DBAPI) GetOrCreateRequest(key Key) (*Chunk, bool) { func (self *DBAPI) GetOrCreateRequest(key Key) (*Chunk, bool) {
return self.ns.localStore.GetOrCreateRequest(key) return self.loc.GetOrCreateRequest(key)
} }
// to obtain the chunks from key or request db entry only // to obtain the chunks from key or request db entry only
func (self *DBAPI) Put(chunk *Chunk) { func (self *DBAPI) Put(chunk *Chunk) {
self.ns.localStore.Put(chunk) self.loc.Put(chunk)
} }

View file

@ -146,10 +146,7 @@ func NewSwarm(ctx *node.ServiceContext, backend chequebook.Backend, config *api.
HiveParams: config.HiveParams, HiveParams: config.HiveParams,
} }
// init netStore db := storage.NewDBAPI(self.lstore)
ns := storage.NewNetStore(self.lstore, self.streamer.Retrieve)
db := storage.NewDBAPI(ns)
delivery := stream.NewDelivery(to, db) delivery := stream.NewDelivery(to, db)
// TODO: decide on intervals store file location // TODO: decide on intervals store file location
stateStore, err := state.NewDBStore(filepath.Join(config.Path, "state-store.db")) stateStore, err := state.NewDBStore(filepath.Join(config.Path, "state-store.db"))
@ -161,10 +158,10 @@ func NewSwarm(ctx *node.ServiceContext, backend chequebook.Backend, config *api.
self.bzz = network.NewBzz(bzzconfig, to, stateStore, stream.Spec, self.streamer.Run) self.bzz = network.NewBzz(bzzconfig, to, stateStore, stream.Spec, self.streamer.Run)
// set up DPA, the cloud storage local access layer // set up DPA, the cloud storage local access layer
//dpaChunkStore := storage.NewNetStore(self.lstore, self.streamer.Retrieve) dpaChunkStore := storage.NewNetStore(self.lstore, self.streamer.Retrieve)
log.Debug(fmt.Sprintf("-> Local Access to Swarm")) log.Debug(fmt.Sprintf("-> Local Access to Swarm"))
// Swarm Hash Merklised Chunking for Arbitrary-length Document/File storage // Swarm Hash Merklised Chunking for Arbitrary-length Document/File storage
self.dpa = storage.NewDPA(ns, self.config.ChunkerParams) self.dpa = storage.NewDPA(dpaChunkStore, self.config.ChunkerParams)
log.Debug(fmt.Sprintf("-> Content Store API")) log.Debug(fmt.Sprintf("-> Content Store API"))
// Pss = postal service over swarm (devp2p over bzz) // Pss = postal service over swarm (devp2p over bzz)