mirror of
https://github.com/ethereum/go-ethereum.git
synced 2026-08-19 18:32:23 +00:00
swarm: use storage.NewMemStorage()
This commit is contained in:
parent
3bcc073d5e
commit
045aceef6a
6 changed files with 18 additions and 45 deletions
|
|
@ -69,19 +69,13 @@ func init() {
|
||||||
log.Root().SetHandler(log.LvlFilterHandler(log.Lvl(*loglevel), log.StreamHandler(colorable.NewColorableStderr(), log.TerminalFormat(true))))
|
log.Root().SetHandler(log.LvlFilterHandler(log.Lvl(*loglevel), log.StreamHandler(colorable.NewColorableStderr(), log.TerminalFormat(true))))
|
||||||
}
|
}
|
||||||
|
|
||||||
func createGlobalStore() (string, *mockdb.GlobalStore, error) {
|
func createGlobalStore() (*mockdb.GlobalStore, error) {
|
||||||
var globalStore *mockdb.GlobalStore
|
globalStore, err := mockdb.NewGlobalStore()
|
||||||
globalStoreDir, err := ioutil.TempDir("", "global.store")
|
|
||||||
if err != nil {
|
|
||||||
log.Error("Error initiating global store temp directory!", "err", err)
|
|
||||||
return "", nil, err
|
|
||||||
}
|
|
||||||
globalStore, err = mockdb.NewGlobalStore(globalStoreDir)
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Error("Error initiating global store!", "err", err)
|
log.Error("Error initiating global store!", "err", err)
|
||||||
return "", nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
return globalStoreDir, globalStore, nil
|
return globalStore, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func newStreamerTester(t *testing.T, registryOptions *RegistryOptions) (*p2ptest.ProtocolTester, *Registry, *storage.LocalStore, func(), error) {
|
func newStreamerTester(t *testing.T, registryOptions *RegistryOptions) (*p2ptest.ProtocolTester, *Registry, *storage.LocalStore, func(), error) {
|
||||||
|
|
|
||||||
|
|
@ -268,15 +268,13 @@ func runSim(conf *synctestConfig, ctx context.Context, sim *simulation.Simulatio
|
||||||
|
|
||||||
// File retrieval check is repeated until all uploaded files are retrieved from all nodes
|
// File retrieval check is repeated until all uploaded files are retrieved from all nodes
|
||||||
// or until the timeout is reached.
|
// or until the timeout is reached.
|
||||||
var gDir string
|
|
||||||
var globalStore *mockdb.GlobalStore
|
var globalStore *mockdb.GlobalStore
|
||||||
if *useMockStore {
|
if *useMockStore {
|
||||||
gDir, globalStore, err = createGlobalStore()
|
globalStore, err = createGlobalStore()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return fmt.Errorf("Something went wrong; using mockStore enabled but globalStore is nil")
|
return fmt.Errorf("Something went wrong; using mockStore enabled but globalStore is nil")
|
||||||
}
|
}
|
||||||
defer func() {
|
defer func() {
|
||||||
os.RemoveAll(gDir)
|
|
||||||
err := globalStore.Close()
|
err := globalStore.Close()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Error("Error closing global store! %v", "err", err)
|
log.Error("Error closing global store! %v", "err", err)
|
||||||
|
|
@ -476,14 +474,12 @@ func testSyncingViaDirectSubscribe(t *testing.T, chunkCount int, nodeCount int)
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
var gDir string
|
|
||||||
var globalStore *mockdb.GlobalStore
|
var globalStore *mockdb.GlobalStore
|
||||||
if *useMockStore {
|
if *useMockStore {
|
||||||
gDir, globalStore, err = createGlobalStore()
|
globalStore, err = createGlobalStore()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return fmt.Errorf("Something went wrong; using mockStore enabled but globalStore is nil")
|
return fmt.Errorf("Something went wrong; using mockStore enabled but globalStore is nil")
|
||||||
}
|
}
|
||||||
defer os.RemoveAll(gDir)
|
|
||||||
}
|
}
|
||||||
// File retrieval check is repeated until all uploaded files are retrieved from all nodes
|
// File retrieval check is repeated until all uploaded files are retrieved from all nodes
|
||||||
// or until the timeout is reached.
|
// or until the timeout is reached.
|
||||||
|
|
|
||||||
|
|
@ -71,7 +71,7 @@ func testSyncBetweenNodes(t *testing.T, nodes, conns, chunkCount int, skipCheck
|
||||||
"streamer": func(ctx *adapters.ServiceContext, bucket *sync.Map) (s node.Service, cleanup func(), err error) {
|
"streamer": func(ctx *adapters.ServiceContext, bucket *sync.Map) (s node.Service, cleanup func(), err error) {
|
||||||
var store storage.ChunkStore
|
var store storage.ChunkStore
|
||||||
var globalStore *mockdb.GlobalStore
|
var globalStore *mockdb.GlobalStore
|
||||||
var gDir, datadir string
|
var datadir string
|
||||||
|
|
||||||
node := ctx.Config.Node()
|
node := ctx.Config.Node()
|
||||||
addr := network.NewAddr(node)
|
addr := network.NewAddr(node)
|
||||||
|
|
@ -79,7 +79,7 @@ func testSyncBetweenNodes(t *testing.T, nodes, conns, chunkCount int, skipCheck
|
||||||
addr.OAddr[0] = byte(0)
|
addr.OAddr[0] = byte(0)
|
||||||
|
|
||||||
if *useMockStore {
|
if *useMockStore {
|
||||||
gDir, globalStore, err = createGlobalStore()
|
globalStore, err = createGlobalStore()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, nil, fmt.Errorf("Something went wrong; using mockStore enabled but globalStore is nil")
|
return nil, nil, fmt.Errorf("Something went wrong; using mockStore enabled but globalStore is nil")
|
||||||
}
|
}
|
||||||
|
|
@ -99,7 +99,6 @@ func testSyncBetweenNodes(t *testing.T, nodes, conns, chunkCount int, skipCheck
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Error("Error closing global store! %v", "err", err)
|
log.Error("Error closing global store! %v", "err", err)
|
||||||
}
|
}
|
||||||
os.RemoveAll(gDir)
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
localStore := store.(*storage.LocalStore)
|
localStore := store.(*storage.LocalStore)
|
||||||
|
|
|
||||||
|
|
@ -22,6 +22,7 @@ import (
|
||||||
"errors"
|
"errors"
|
||||||
|
|
||||||
"github.com/syndtr/goleveldb/leveldb"
|
"github.com/syndtr/goleveldb/leveldb"
|
||||||
|
"github.com/syndtr/goleveldb/leveldb/opt"
|
||||||
)
|
)
|
||||||
|
|
||||||
// ErrNotFound is returned when no results are returned from the database
|
// ErrNotFound is returned when no results are returned from the database
|
||||||
|
|
@ -35,9 +36,11 @@ type DBStore struct {
|
||||||
db *leveldb.DB
|
db *leveldb.DB
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const openFileLimit = 32
|
||||||
|
|
||||||
// NewDBStore creates a new instance of DBStore.
|
// NewDBStore creates a new instance of DBStore.
|
||||||
func NewDBStore(path string) (s *DBStore, err error) {
|
func NewDBStore(path string) (s *DBStore, err error) {
|
||||||
db, err := leveldb.OpenFile(path, nil)
|
db, err := leveldb.OpenFile(path, &opt.Options{OpenFilesCacheCapacity: openFileLimit})
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -25,6 +25,7 @@ import (
|
||||||
"io/ioutil"
|
"io/ioutil"
|
||||||
|
|
||||||
"github.com/syndtr/goleveldb/leveldb"
|
"github.com/syndtr/goleveldb/leveldb"
|
||||||
|
"github.com/syndtr/goleveldb/leveldb/storage"
|
||||||
"github.com/syndtr/goleveldb/leveldb/util"
|
"github.com/syndtr/goleveldb/leveldb/util"
|
||||||
|
|
||||||
"github.com/ethereum/go-ethereum/common"
|
"github.com/ethereum/go-ethereum/common"
|
||||||
|
|
@ -40,8 +41,8 @@ type GlobalStore struct {
|
||||||
}
|
}
|
||||||
|
|
||||||
// NewGlobalStore creates a new instance of GlobalStore.
|
// NewGlobalStore creates a new instance of GlobalStore.
|
||||||
func NewGlobalStore(path string) (s *GlobalStore, err error) {
|
func NewGlobalStore() (s *GlobalStore, err error) {
|
||||||
db, err := leveldb.OpenFile(path, nil)
|
db, err := leveldb.Open(storage.NewMemStorage(), nil)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -19,8 +19,6 @@
|
||||||
package db
|
package db
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"io/ioutil"
|
|
||||||
"os"
|
|
||||||
"testing"
|
"testing"
|
||||||
|
|
||||||
"github.com/ethereum/go-ethereum/swarm/storage/mock/test"
|
"github.com/ethereum/go-ethereum/swarm/storage/mock/test"
|
||||||
|
|
@ -29,13 +27,7 @@ import (
|
||||||
// TestDBStore is running a test.MockStore tests
|
// TestDBStore is running a test.MockStore tests
|
||||||
// using test.MockStore function.
|
// using test.MockStore function.
|
||||||
func TestDBStore(t *testing.T) {
|
func TestDBStore(t *testing.T) {
|
||||||
dir, err := ioutil.TempDir("", "mock_"+t.Name())
|
store, err := NewGlobalStore()
|
||||||
if err != nil {
|
|
||||||
panic(err)
|
|
||||||
}
|
|
||||||
defer os.RemoveAll(dir)
|
|
||||||
|
|
||||||
store, err := NewGlobalStore(dir)
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Fatal(err)
|
t.Fatal(err)
|
||||||
}
|
}
|
||||||
|
|
@ -47,25 +39,13 @@ func TestDBStore(t *testing.T) {
|
||||||
// TestImportExport is running a test.ImportExport tests
|
// TestImportExport is running a test.ImportExport tests
|
||||||
// using test.MockStore function.
|
// using test.MockStore function.
|
||||||
func TestImportExport(t *testing.T) {
|
func TestImportExport(t *testing.T) {
|
||||||
dir1, err := ioutil.TempDir("", "mock_"+t.Name()+"_exporter")
|
store1, err := NewGlobalStore()
|
||||||
if err != nil {
|
|
||||||
panic(err)
|
|
||||||
}
|
|
||||||
defer os.RemoveAll(dir1)
|
|
||||||
|
|
||||||
store1, err := NewGlobalStore(dir1)
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Fatal(err)
|
t.Fatal(err)
|
||||||
}
|
}
|
||||||
defer store1.Close()
|
defer store1.Close()
|
||||||
|
|
||||||
dir2, err := ioutil.TempDir("", "mock_"+t.Name()+"_importer")
|
store2, err := NewGlobalStore()
|
||||||
if err != nil {
|
|
||||||
panic(err)
|
|
||||||
}
|
|
||||||
defer os.RemoveAll(dir2)
|
|
||||||
|
|
||||||
store2, err := NewGlobalStore(dir2)
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Fatal(err)
|
t.Fatal(err)
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue