diff --git a/db/backend_test.go b/backend_test.go similarity index 97% rename from db/backend_test.go rename to backend_test.go index 074d18ec3..3e4297586 100644 --- a/db/backend_test.go +++ b/backend_test.go @@ -9,8 +9,6 @@ import ( "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" - - cmn "github.com/tendermint/tendermint/libs/common" ) func cleanupDBDir(dir, name string) { @@ -59,7 +57,7 @@ func TestBackendsGetSetDelete(t *testing.T) { } func withDB(t *testing.T, creator dbCreator, fn func(DB)) { - name := fmt.Sprintf("test_%x", cmn.RandStr(12)) + name := fmt.Sprintf("test_%x", RandStr(12)) dir := os.TempDir() db, err := creator(name, dir) require.Nil(t, err) @@ -149,7 +147,7 @@ func TestBackendsNilKeys(t *testing.T) { } func TestGoLevelDBBackend(t *testing.T) { - name := fmt.Sprintf("test_%x", cmn.RandStr(12)) + name := fmt.Sprintf("test_%x", RandStr(12)) db := NewDB(name, GoLevelDBBackend, "") defer cleanupDBDir("", name) @@ -166,7 +164,7 @@ func TestDBIterator(t *testing.T) { } func testDBIterator(t *testing.T, backend DBBackendType) { - name := fmt.Sprintf("test_%x", cmn.RandStr(12)) + name := fmt.Sprintf("test_%x", RandStr(12)) dir := os.TempDir() db := NewDB(name, backend, dir) defer cleanupDBDir(dir, name) diff --git a/db/boltdb.go b/boltdb.go similarity index 100% rename from db/boltdb.go rename to boltdb.go diff --git a/db/boltdb_test.go b/boltdb_test.go similarity index 76% rename from db/boltdb_test.go rename to boltdb_test.go index 416a8fd03..df5eeb25d 100644 --- a/db/boltdb_test.go +++ b/boltdb_test.go @@ -8,12 +8,10 @@ import ( "testing" "github.com/stretchr/testify/require" - - cmn "github.com/tendermint/tendermint/libs/common" ) func TestBoltDBNewBoltDB(t *testing.T) { - name := fmt.Sprintf("test_%x", cmn.RandStr(12)) + name := fmt.Sprintf("test_%x", RandStr(12)) dir := os.TempDir() defer cleanupDBDir(dir, name) @@ -23,7 +21,7 @@ func TestBoltDBNewBoltDB(t *testing.T) { } func BenchmarkBoltDBRandomReadsWrites(b *testing.B) { - name := fmt.Sprintf("test_%x", cmn.RandStr(12)) + name := fmt.Sprintf("test_%x", RandStr(12)) db, err := NewBoltDB(name, "") if err != nil { b.Fatal(err) diff --git a/db/c_level_db.go b/c_level_db.go similarity index 100% rename from db/c_level_db.go rename to c_level_db.go diff --git a/db/c_level_db_test.go b/c_level_db_test.go similarity index 86% rename from db/c_level_db_test.go rename to c_level_db_test.go index adb6bd8f6..edfba1df7 100644 --- a/db/c_level_db_test.go +++ b/c_level_db_test.go @@ -5,12 +5,11 @@ package db import ( "bytes" "fmt" + "math/rand" "os" "testing" "github.com/stretchr/testify/assert" - - cmn "github.com/tendermint/tm-cmn/libs/common" ) func BenchmarkRandomReadsWrites2(b *testing.B) { @@ -21,7 +20,7 @@ func BenchmarkRandomReadsWrites2(b *testing.B) { for i := 0; i < int(numItems); i++ { internal[int64(i)] = int64(0) } - db, err := NewCLevelDB(fmt.Sprintf("test_%x", cmn.RandStr(12)), "") + db, err := NewCLevelDB(fmt.Sprintf("test_%x", RandStr(12)), "") if err != nil { b.Fatal(err.Error()) return @@ -33,7 +32,7 @@ func BenchmarkRandomReadsWrites2(b *testing.B) { for i := 0; i < b.N; i++ { // Write something { - idx := (int64(cmn.RandInt()) % numItems) + idx := (int64(rand.Int()) % numItems) internal[idx]++ val := internal[idx] idxBytes := int642Bytes(int64(idx)) @@ -46,7 +45,7 @@ func BenchmarkRandomReadsWrites2(b *testing.B) { } // Read something { - idx := (int64(cmn.RandInt()) % numItems) + idx := (int64(rand.Int()) % numItems) val := internal[idx] idxBytes := int642Bytes(int64(idx)) valBytes := db.Get(idxBytes) @@ -89,7 +88,7 @@ func bytes2Int64(buf []byte) int64 { */ func TestCLevelDBBackend(t *testing.T) { - name := fmt.Sprintf("test_%x", cmn.RandStr(12)) + name := fmt.Sprintf("test_%x", RandStr(12)) // Can't use "" (current directory) or "./" here because levigo.Open returns: // "Error initializing DB: IO error: test_XXX.db: Invalid argument" dir := os.TempDir() @@ -101,7 +100,7 @@ func TestCLevelDBBackend(t *testing.T) { } func TestCLevelDBStats(t *testing.T) { - name := fmt.Sprintf("test_%x", cmn.RandStr(12)) + name := fmt.Sprintf("test_%x", RandStr(12)) dir := os.TempDir() db := NewDB(name, CLevelDBBackend, dir) defer cleanupDBDir(dir, name) diff --git a/db/common_test.go b/common_test.go similarity index 95% rename from db/common_test.go rename to common_test.go index 64a86979c..db4a18cee 100644 --- a/db/common_test.go +++ b/common_test.go @@ -5,12 +5,12 @@ import ( "encoding/binary" "fmt" "io/ioutil" + "math/rand" "sync" "testing" "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" - cmn "github.com/tendermint/tendermint/libs/common" ) //---------------------------------------- @@ -208,7 +208,7 @@ func benchmarkRandomReadsWrites(b *testing.B, db DB) { for i := 0; i < b.N; i++ { // Write something { - idx := int64(cmn.RandInt()) % numItems + idx := int64(rand.Int()) % numItems // nolint:gosec testing file, so accepting weak random number generator internal[idx]++ val := internal[idx] idxBytes := int642Bytes(int64(idx)) @@ -219,7 +219,7 @@ func benchmarkRandomReadsWrites(b *testing.B, db DB) { // Read something { - idx := int64(cmn.RandInt()) % numItems + idx := int64(rand.Int()) % numItems // nolint:gosec testing file, so accepting weak random number generator valExp := internal[idx] idxBytes := int642Bytes(int64(idx)) valBytes := db.Get(idxBytes) diff --git a/db/db.go b/db.go similarity index 100% rename from db/db.go rename to db.go diff --git a/db/db_test.go b/db_test.go similarity index 100% rename from db/db_test.go rename to db_test.go diff --git a/db/fsdb.go b/fsdb.go similarity index 98% rename from db/fsdb.go rename to fsdb.go index 2ac5fa17c..89a5cff6e 100644 --- a/db/fsdb.go +++ b/fsdb.go @@ -10,8 +10,6 @@ import ( "sync" "github.com/pkg/errors" - - cmn "github.com/tendermint/tendermint/libs/common" ) const ( @@ -66,7 +64,7 @@ func (db *FSDB) Has(key []byte) bool { key = escapeKey(key) path := db.nameToPath(key) - return cmn.FileExists(path) + return FileExists(path) } func (db *FSDB) Set(key []byte, value []byte) { diff --git a/go.mod b/go.mod index 15909d59f..c1daf1c54 100644 --- a/go.mod +++ b/go.mod @@ -3,13 +3,15 @@ module github.com/tendermint/tm-db go 1.12 require ( + github.com/davecgh/go-spew v1.1.1 // indirect github.com/etcd-io/bbolt v1.3.3 github.com/golang/protobuf v1.3.2 github.com/jmhodges/levigo v1.0.0 github.com/pkg/errors v0.8.1 github.com/stretchr/testify v1.3.0 github.com/syndtr/goleveldb v1.0.1-0.20190318030020-c3a204f8e965 - github.com/tendermint/tendermint v0.32.1 + go.etcd.io/bbolt v1.3.3 // indirect golang.org/x/net v0.0.0-20190628185345-da137c7871d7 + google.golang.org/genproto v0.0.0-20181029155118-b69ba1387ce2 // indirect google.golang.org/grpc v1.22.0 ) diff --git a/go.sum b/go.sum index def635ee4..ef06e92f2 100644 --- a/go.sum +++ b/go.sum @@ -1,99 +1,43 @@ cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= -github.com/VividCortex/gohistogram v1.0.0/go.mod h1:Pf5mBqqDxYaXu3hDrrU+w6nw50o/4+TcAqDqk/vUH7g= -github.com/aead/siphash v1.0.1/go.mod h1:Nywa3cDsYNNK3gaciGTWPwHt0wlpNV15vwmswBAUSII= -github.com/beorn7/perks v0.0.0-20180321164747-3a771d992973/go.mod h1:Dwedo/Wpr24TaqPxmxbtue+5NUziq4I4S80YR8gNf3Q= -github.com/btcsuite/btcd v0.0.0-20190115013929-ed77733ec07d/go.mod h1:d3C0AkH6BRcvO8T0UEPu53cnw4IbV63x1bEjildYhO0= -github.com/btcsuite/btclog v0.0.0-20170628155309-84c8d2346e9f/go.mod h1:TdznJufoqS23FtqVCzL0ZqgP5MqXbb4fg/WgDys70nA= -github.com/btcsuite/btcutil v0.0.0-20180706230648-ab6388e0c60a/go.mod h1:+5NJ2+qvTyV9exUAL/rxXi3DcLg2Ts+ymUAY5y4NvMg= -github.com/btcsuite/go-socks v0.0.0-20170105172521-4720035b7bfd/go.mod h1:HHNXQzUsZCxOoE+CPiyCTO6x34Zs86zZUiwtpXoGdtg= -github.com/btcsuite/goleveldb v0.0.0-20160330041536-7834afc9e8cd/go.mod h1:F+uVaaLLH7j4eDXPRvw78tMflu7Ie2bzYOH4Y8rRKBY= -github.com/btcsuite/snappy-go v0.0.0-20151229074030-0bdef8d06723/go.mod h1:8woku9dyThutzjeg+3xrA5iCpBRH8XEEg3lh6TiUghc= -github.com/btcsuite/websocket v0.0.0-20150119174127-31079b680792/go.mod h1:ghJtEyQwv5/p4Mg4C0fgbePVuGr935/5ddU9Z3TmDRY= -github.com/btcsuite/winsvc v1.0.0/go.mod h1:jsenWakMcC0zFBFurPLEAyrnc/teJEM1O46fmI40EZs= github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw= -github.com/davecgh/go-spew v0.0.0-20171005155431-ecdeabc65495/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.0 h1:ZDRjVQ15GmhC3fiQ8ni8+OwkZQO4DARzQgrnXU1Liz8= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= -github.com/etcd-io/bbolt v1.3.2/go.mod h1:ZF2nL25h33cCyBtcyWeZ2/I3HQOfTP+0PIEvHjkjCrw= github.com/etcd-io/bbolt v1.3.3 h1:gSJmxrs37LgTqR/oyJBWok6k6SvXEUerFTbltIhXkBM= github.com/etcd-io/bbolt v1.3.3/go.mod h1:ZF2nL25h33cCyBtcyWeZ2/I3HQOfTP+0PIEvHjkjCrw= -github.com/fortytw2/leaktest v1.2.0/go.mod h1:jDsjWgpAGjm2CA7WthBh/CdZYEPF31XHquHwclZch5g= github.com/fsnotify/fsnotify v1.4.7 h1:IXs+QLmnXW2CcXuY+8Mzv/fWEsPGWxqefPtCP5CnV9I= github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo= -github.com/go-kit/kit v0.6.0 h1:wTifptAGIyIuir4bRyN4h7+kAa2a4eepLYVmRe5qqQ8= -github.com/go-kit/kit v0.6.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= -github.com/go-logfmt/logfmt v0.3.0 h1:8HUsc87TaSWLKwrnumgC8/YconD2fJQsRJAsWaPg2ic= -github.com/go-logfmt/logfmt v0.3.0/go.mod h1:Qt1PoO58o5twSAckw1HlFXLmHsOX5/0LbT9GBnD5lWE= -github.com/go-stack/stack v1.8.0 h1:5SgMzNM5HxrEjV0ww2lTmX6E2Izsfxas4+YHWRs3Lsk= -github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/melR3HDY= -github.com/gogo/protobuf v1.2.1 h1:/s5zKNz0uPFCZ5hddgPdo2TK2TVrUNMn0OOX8/aZMTE= -github.com/gogo/protobuf v1.2.1/go.mod h1:hp+jE20tsWTFYpLwKvXlhS1hjn+gTNwPg2I6zVXpSg4= github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b h1:VKtxabqXZkF25pY9ekfRL6a582T4P37/31XEstQ5p58= github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q= github.com/golang/mock v1.1.1/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A= github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= -github.com/golang/protobuf v1.3.0/go.mod h1:Qd/q+1AKNOZr9uGQzbzCmRO6sUih6GTPZv6a1/R87v0= github.com/golang/protobuf v1.3.2 h1:6nsPYzhq5kReh6QImI3k5qWzO4PEbvbIW2cwSfR/6xs= github.com/golang/protobuf v1.3.2/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= github.com/golang/snappy v0.0.1 h1:Qgr9rKW7uDUkrbSmQeiDsGa8SjGyCOGtuasMWwvp2P4= github.com/golang/snappy v0.0.1/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M= -github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= -github.com/gorilla/websocket v1.2.0/go.mod h1:E7qHFY5m1UJ88s3WnNqhKjPHQ0heANvMoAMk2YaljkQ= -github.com/hashicorp/hcl v1.0.0/go.mod h1:E5yfLk+7swimpb2L/Alb/PJmXilQ/rhwaUYs4T20WEQ= github.com/hpcloud/tail v1.0.0 h1:nfCOvKYfkgYP8hkirhJocXT2+zOD8yUNjXaWfTlyFKI= github.com/hpcloud/tail v1.0.0/go.mod h1:ab1qPbhIpdTxEkNHXyeSf5vhxWSCs/tWer42PpOxQnU= -github.com/inconshreveable/mousetrap v1.0.0/go.mod h1:PxqpIevigyE2G7u3NXJIT2ANytuPF1OarO4DADm73n8= -github.com/jessevdk/go-flags v0.0.0-20141203071132-1679536dcc89/go.mod h1:4FA24M0QyGHXBuZZK/XkWh8h0e1EYbRYJSGM75WSRxI= github.com/jmhodges/levigo v1.0.0 h1:q5EC36kV79HWeTBWsod3mG11EgStG3qArTKcvlksN1U= github.com/jmhodges/levigo v1.0.0/go.mod h1:Q6Qx+uH3RAqyK4rFQroq9RL7mdkABMcfhEI+nNuzMJQ= -github.com/jrick/logrotate v1.0.0/go.mod h1:LNinyqDIJnpAur+b8yyulnQw/wDuN1+BYKlTRt3OuAQ= -github.com/kisielk/errcheck v1.1.0/go.mod h1:EZBBE59ingxPouuu3KfxchcWSUPOHkagtvWXihfKN4Q= -github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= -github.com/kkdai/bstream v0.0.0-20161212061736-f391b8402d23/go.mod h1:J+Gs4SYgM6CZQHDETBtE9HaSEkGmuNXF86RwHhHUvq4= -github.com/kr/logfmt v0.0.0-20140226030751-b84e30acd515/go.mod h1:+0opPa2QZZtGFBFZlji/RkVcI2GknAs/DXo4wKdlNEc= -github.com/magiconair/properties v1.8.0/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czPbwD3XqdrwzmxQ= -github.com/matttproud/golang_protobuf_extensions v1.0.1/go.mod h1:D8He9yQNgCq6Z5Ld7szi9bcBfOoFv/3dc6xSMkL2PC0= -github.com/mitchellh/mapstructure v1.1.2/go.mod h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh9fWfEaFds41c1Y= github.com/onsi/ginkgo v1.6.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= github.com/onsi/ginkgo v1.7.0 h1:WSHQ+IS43OoUrWtD1/bbclrwK8TTH5hzp+umCiuxHgs= github.com/onsi/ginkgo v1.7.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= github.com/onsi/gomega v1.4.3 h1:RE1xgDvH7imwFD45h+u2SgIfERHlS2yNG4DObb5BSKU= github.com/onsi/gomega v1.4.3/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY= -github.com/pelletier/go-toml v1.2.0/go.mod h1:5z9KED0ma1S8pY6P1sdut58dfprrGBbd/94hg7ilaic= -github.com/pkg/errors v0.8.0/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pkg/errors v0.8.1 h1:iURUrRGxPUNPdy5/HRSm+Yj6okJ6UtLINN0Q9M4+h3I= github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= -github.com/prometheus/client_golang v0.9.1/go.mod h1:7SWBe2y4D6OKWSNQJUaRYU/AaXPKyh/dDVn+NZz0KFw= -github.com/prometheus/client_model v0.0.0-20180712105110-5c3871d89910/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo= -github.com/prometheus/common v0.0.0-20181020173914-7e9e6cabbd39/go.mod h1:daVV7qP5qjZbuso7PdcryaAu0sAZbrN9i7WWcTMWvro= -github.com/prometheus/procfs v0.0.0-20181005140218-185b4288413d/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk= -github.com/rcrowley/go-metrics v0.0.0-20180503174638-e2704e165165/go.mod h1:bCqnVzQkZxMG4s8nGwiZ5l3QUCyqpo9Y+/ZMZ9VjZe4= -github.com/rs/cors v1.6.0/go.mod h1:gFx+x8UowdsKA9AchylcLynDq+nNFfI8FkUZdN/jGCU= -github.com/spf13/afero v1.1.2/go.mod h1:j4pytiNVoe2o6bmDsKpLACNPDBIoEAkihy7loJ1B0CQ= -github.com/spf13/cast v1.3.0/go.mod h1:Qx5cxh0v+4UWYiBimWS+eyWzqEqokIECu5etghLkUJE= -github.com/spf13/cobra v0.0.1/go.mod h1:1l0Ry5zgKvJasoi3XT1TypsSe7PqH0Sj9dhYf7v3XqQ= -github.com/spf13/jwalterweatherman v1.0.0/go.mod h1:cQK4TGJAtQXfYWX+Ddv3mKDzgVb68N+wFjFa4jdeBTo= -github.com/spf13/pflag v1.0.3/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4= -github.com/spf13/viper v1.0.0/go.mod h1:A8kyI5cUJhb8N+3pkfONlcEcZbueH6nhAm0Fq7SrnBM= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= -github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= github.com/stretchr/testify v1.3.0 h1:TivCn/peBQ7UY8ooIcPgZFpTNSz0Q2U6UrFlUfqbe0Q= github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= github.com/syndtr/goleveldb v1.0.1-0.20190318030020-c3a204f8e965 h1:1oFLiOyVl+W7bnBzGhf7BbIv9loSFQcieWWYIjLqcAw= github.com/syndtr/goleveldb v1.0.1-0.20190318030020-c3a204f8e965/go.mod h1:9OrXJhf154huy1nPWmuSrkgjPUtUNhA+Zmy+6AESzuA= -github.com/tendermint/go-amino v0.14.1/go.mod h1:i/UKE5Uocn+argJJBb12qTZsCDBcAYMbR92AaJVmKso= -github.com/tendermint/tendermint v0.32.1 h1:J8ddXMbCmG6GZjdCl/N1wgdXDU9uO91J2Y5CA9xYfGo= -github.com/tendermint/tendermint v0.32.1/go.mod h1:jmPDAKuNkev9793/ivn/fTBnfpA9mGBww8MPRNPNxnU= go.etcd.io/bbolt v1.3.3 h1:MUGmc65QhB3pIlaQ5bB4LwqSj6GIonVJXpZiaKNyaKk= go.etcd.io/bbolt v1.3.3/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU= -golang.org/x/crypto v0.0.0-20170930174604-9419663f5a44/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= -golang.org/x/crypto v0.0.0-20190228161510-8dd112bcdc25/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= golang.org/x/lint v0.0.0-20190313153728-d0100b6bd8b3/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= golang.org/x/net v0.0.0-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= @@ -108,16 +52,13 @@ golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a h1:1BGLXjeY4akVXGgbC9HugT3Jv golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/text v0.3.0 h1:g61tztE5qeGQ89tm6NTjjM9VPIm088od1l6aSorWRWg= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= -golang.org/x/tools v0.0.0-20180221164845-07fd8470d635/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20190311212946-11955173bddd/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= golang.org/x/tools v0.0.0-20190524140312-2c0ae7006135/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM= google.golang.org/genproto v0.0.0-20180817151627-c66870c02cf8 h1:Nw54tB0rB7hY/N0NQvRW8DG4Yk3Q6T9cu9RcFQDu1tc= google.golang.org/genproto v0.0.0-20180817151627-c66870c02cf8/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc= -google.golang.org/genproto v0.0.0-20180831171423-11092d34479b/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc= google.golang.org/genproto v0.0.0-20181029155118-b69ba1387ce2 h1:67iHsV9djwGdZpdZNbLuQj6FOzCaZe3w+vhLjn5AcFA= google.golang.org/genproto v0.0.0-20181029155118-b69ba1387ce2/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc= -google.golang.org/grpc v1.13.0/go.mod h1:yo6s7OP7yaDglbqo1J04qKzAhqBH6lvTonzMVmEdcZw= google.golang.org/grpc v1.22.0 h1:J0UbZOIrCAl+fpTOf8YLs4dJo8L/owV4LYVtAXQoPkw= google.golang.org/grpc v1.22.0/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405 h1:yhCVgyC4o1eVCa2tZl7eS0r+SDo693bJlVdllGtEeKM= diff --git a/db/go_level_db.go b/go_level_db.go similarity index 100% rename from db/go_level_db.go rename to go_level_db.go diff --git a/db/go_level_db_test.go b/go_level_db_test.go similarity index 85% rename from db/go_level_db_test.go rename to go_level_db_test.go index f781a2b3d..9f2b4e28f 100644 --- a/db/go_level_db_test.go +++ b/go_level_db_test.go @@ -6,12 +6,10 @@ import ( "github.com/stretchr/testify/require" "github.com/syndtr/goleveldb/leveldb/opt" - - cmn "github.com/tendermint/tendermint/libs/common" ) func TestGoLevelDBNewGoLevelDB(t *testing.T) { - name := fmt.Sprintf("test_%x", cmn.RandStr(12)) + name := fmt.Sprintf("test_%x", RandStr(12)) defer cleanupDBDir("", name) // Test we can't open the db twice for writing @@ -31,7 +29,7 @@ func TestGoLevelDBNewGoLevelDB(t *testing.T) { } func BenchmarkGoLevelDBRandomReadsWrites(b *testing.B) { - name := fmt.Sprintf("test_%x", cmn.RandStr(12)) + name := fmt.Sprintf("test_%x", RandStr(12)) db, err := NewGoLevelDB(name, "") if err != nil { b.Fatal(err) diff --git a/db/mem_batch.go b/mem_batch.go similarity index 100% rename from db/mem_batch.go rename to mem_batch.go diff --git a/db/mem_db.go b/mem_db.go similarity index 100% rename from db/mem_db.go rename to mem_db.go diff --git a/db/prefix_db.go b/prefix_db.go similarity index 100% rename from db/prefix_db.go rename to prefix_db.go diff --git a/db/prefix_db_test.go b/prefix_db_test.go similarity index 100% rename from db/prefix_db_test.go rename to prefix_db_test.go diff --git a/db/remotedb/doc.go b/remotedb/doc.go similarity index 100% rename from db/remotedb/doc.go rename to remotedb/doc.go diff --git a/db/remotedb/grpcdb/client.go b/remotedb/grpcdb/client.go similarity index 90% rename from db/remotedb/grpcdb/client.go rename to remotedb/grpcdb/client.go index f07c265a8..afe9b65e5 100644 --- a/db/remotedb/grpcdb/client.go +++ b/remotedb/grpcdb/client.go @@ -4,7 +4,7 @@ import ( "google.golang.org/grpc" "google.golang.org/grpc/credentials" - protodb "github.com/tendermint/tm-cmn/db/remotedb/proto" + protodb "github.com/tendermint/tm-db/remotedb/proto" ) // NewClient creates a gRPC client connected to the bound gRPC server at serverAddr. diff --git a/db/remotedb/grpcdb/doc.go b/remotedb/grpcdb/doc.go similarity index 100% rename from db/remotedb/grpcdb/doc.go rename to remotedb/grpcdb/doc.go diff --git a/db/remotedb/grpcdb/example_test.go b/remotedb/grpcdb/example_test.go similarity index 90% rename from db/remotedb/grpcdb/example_test.go rename to remotedb/grpcdb/example_test.go index 87487fc28..1e93c88ed 100644 --- a/db/remotedb/grpcdb/example_test.go +++ b/remotedb/grpcdb/example_test.go @@ -5,8 +5,8 @@ import ( "context" "log" - grpcdb "github.com/tendermint/tm-cmn/db/remotedb/grpcdb" - protodb "github.com/tendermint/tm-cmn/db/remotedb/proto" + grpcdb "github.com/tendermint/tm-db/remotedb/grpcdb" + protodb "github.com/tendermint/tm-db/remotedb/proto" ) func Example() { diff --git a/db/remotedb/grpcdb/server.go b/remotedb/grpcdb/server.go similarity index 98% rename from db/remotedb/grpcdb/server.go rename to remotedb/grpcdb/server.go index 84dc9f08c..5f9f9733d 100644 --- a/db/remotedb/grpcdb/server.go +++ b/remotedb/grpcdb/server.go @@ -9,8 +9,8 @@ import ( "google.golang.org/grpc" "google.golang.org/grpc/credentials" - "github.com/tendermint/tm-cmn/db" - protodb "github.com/tendermint/tm-cmn/db/remotedb/proto" + db "github.com/tendermint/tm-db" + protodb "github.com/tendermint/tm-db/remotedb/proto" ) // ListenAndServe is a blocking function that sets up a gRPC based diff --git a/db/remotedb/proto/defs.pb.go b/remotedb/proto/defs.pb.go similarity index 100% rename from db/remotedb/proto/defs.pb.go rename to remotedb/proto/defs.pb.go diff --git a/db/remotedb/proto/defs.proto b/remotedb/proto/defs.proto similarity index 100% rename from db/remotedb/proto/defs.proto rename to remotedb/proto/defs.proto diff --git a/db/remotedb/remotedb.go b/remotedb/remotedb.go similarity index 97% rename from db/remotedb/remotedb.go rename to remotedb/remotedb.go index 5fbee8221..b7ef0ac4d 100644 --- a/db/remotedb/remotedb.go +++ b/remotedb/remotedb.go @@ -4,9 +4,9 @@ import ( "context" "fmt" - "github.com/tendermint/tm-cmn/db" - "github.com/tendermint/tm-cmn/db/remotedb/grpcdb" - protodb "github.com/tendermint/tm-cmn/db/remotedb/proto" + db "github.com/tendermint/tm-db" + "github.com/tendermint/tm-db/remotedb/grpcdb" + protodb "github.com/tendermint/tm-db/remotedb/proto" ) type RemoteDB struct { diff --git a/db/remotedb/remotedb_test.go b/remotedb/remotedb_test.go similarity index 97% rename from db/remotedb/remotedb_test.go rename to remotedb/remotedb_test.go index 379b62f96..9ee43a6ae 100644 --- a/db/remotedb/remotedb_test.go +++ b/remotedb/remotedb_test.go @@ -7,8 +7,8 @@ import ( "github.com/stretchr/testify/require" - "github.com/tendermint/tm-cmn/db/remotedb" - "github.com/tendermint/tm-cmn/db/remotedb/grpcdb" + "github.com/tendermint/tm-db/remotedb" + "github.com/tendermint/tm-db/remotedb/grpcdb" ) func TestRemoteDB(t *testing.T) { diff --git a/db/remotedb/test.crt b/remotedb/test.crt similarity index 100% rename from db/remotedb/test.crt rename to remotedb/test.crt diff --git a/db/remotedb/test.key b/remotedb/test.key similarity index 100% rename from db/remotedb/test.key rename to remotedb/test.key diff --git a/db/types.go b/types.go similarity index 100% rename from db/types.go rename to types.go diff --git a/db/util.go b/util.go similarity index 54% rename from db/util.go rename to util.go index e927c3548..3b1db3791 100644 --- a/db/util.go +++ b/util.go @@ -2,6 +2,8 @@ package db import ( "bytes" + "math/rand" + "os" ) func cp(bz []byte) (ret []byte) { @@ -43,3 +45,36 @@ func IsKeyInDomain(key, start, end []byte) bool { } return true } + +func FileExists(filePath string) bool { + _, err := os.Stat(filePath) + return !os.IsNotExist(err) +} + +const ( + strChars = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz" // 62 characters +) + +// Str constructs a random alphanumeric string of given length. +func RandStr(length int) string { + chars := []byte{} +MAIN_LOOP: + for { + val := rand.Int63() + for i := 0; i < 10; i++ { + v := int(val & 0x3f) // rightmost 6 bits + if v >= 62 { // only 62 characters in strChars + val >>= 6 + continue + } else { + chars = append(chars, strChars[v]) + if len(chars) == length { + break MAIN_LOOP + } + val >>= 6 + } + } + } + + return string(chars) +} diff --git a/db/util_test.go b/util_test.go similarity index 100% rename from db/util_test.go rename to util_test.go