mirror of
https://github.com/ethereum/go-ethereum.git
synced 2026-08-18 09:53:48 +00:00
Merge pull request #300 from ethersphere/revert_netstore_dbapi_unity
swarm/network: revert back DBAPI and NetStore unity
This commit is contained in:
commit
734a182229
5 changed files with 16 additions and 24 deletions
|
|
@ -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() {
|
||||||
|
|
|
||||||
|
|
@ -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)
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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)
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -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)
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue