From 0a9761048eb2d5f3588a05aef33ad32005b266a6 Mon Sep 17 00:00:00 2001 From: Jonas Theis <mail@jonastheis.de> Date: Tue, 6 Oct 2020 09:03:03 +0200 Subject: [PATCH] Remove storageprefix and flatten database package (#758) * Remove storageprefix package and merge with flattened database package * Bump up database version * Update packages/database/prefix.go Co-authored-by: Ching-Hua (Vivian) Lin <jkrvivian@gmail.com> Co-authored-by: Angelo Capossele <angelocapossele@gmail.com> Co-authored-by: Ching-Hua (Vivian) Lin <jkrvivian@gmail.com> --- .../packages/branchmanager/branchmanager.go | 5 ++--- dapps/valuetransfers/packages/tangle/tangle.go | 4 ++-- packages/database/prefix.go | 12 ++++++++++++ packages/database/prefix/prefix.go | 18 ------------------ packages/storageprefix/storageprefix.go | 13 ------------- packages/tangle/tangle.go | 4 ++-- plugins/autopeering/local/local.go | 4 ++-- plugins/database/health.go | 4 ++-- plugins/database/versioning.go | 2 +- 9 files changed, 23 insertions(+), 43 deletions(-) create mode 100644 packages/database/prefix.go delete mode 100644 packages/database/prefix/prefix.go delete mode 100644 packages/storageprefix/storageprefix.go diff --git a/dapps/valuetransfers/packages/branchmanager/branchmanager.go b/dapps/valuetransfers/packages/branchmanager/branchmanager.go index 981eb082..ff50636f 100644 --- a/dapps/valuetransfers/packages/branchmanager/branchmanager.go +++ b/dapps/valuetransfers/packages/branchmanager/branchmanager.go @@ -5,13 +5,12 @@ import ( "fmt" "sort" + "github.com/iotaledger/goshimmer/packages/database" "github.com/iotaledger/hive.go/kvstore" "github.com/iotaledger/hive.go/marshalutil" "github.com/iotaledger/hive.go/objectstorage" "github.com/iotaledger/hive.go/types" "golang.org/x/crypto/blake2b" - - "github.com/iotaledger/goshimmer/packages/storageprefix" ) // BranchManager is an entity that manages the branches of a UTXODAG. It offers methods to add, delete and modify @@ -40,7 +39,7 @@ type BranchManager struct { // New is the constructor of the BranchManager. func New(store kvstore.KVStore) (branchManager *BranchManager) { - osFactory := objectstorage.NewFactory(store, storageprefix.ValueTransfers) + osFactory := objectstorage.NewFactory(store, database.PrefixValueTransfers) branchManager = &BranchManager{ branchStorage: osFactory.New(osBranch, BranchFromObjectStorage, osBranchOptions...), diff --git a/dapps/valuetransfers/packages/tangle/tangle.go b/dapps/valuetransfers/packages/tangle/tangle.go index e093463e..b36da574 100644 --- a/dapps/valuetransfers/packages/tangle/tangle.go +++ b/dapps/valuetransfers/packages/tangle/tangle.go @@ -6,6 +6,7 @@ import ( "fmt" "math" + "github.com/iotaledger/goshimmer/packages/database" "github.com/iotaledger/hive.go/async" "github.com/iotaledger/hive.go/events" "github.com/iotaledger/hive.go/kvstore" @@ -18,7 +19,6 @@ import ( "github.com/iotaledger/goshimmer/dapps/valuetransfers/packages/branchmanager" "github.com/iotaledger/goshimmer/dapps/valuetransfers/packages/payload" "github.com/iotaledger/goshimmer/dapps/valuetransfers/packages/transaction" - "github.com/iotaledger/goshimmer/packages/storageprefix" ) // Tangle represents the value tangle that consists out of value payloads. @@ -43,7 +43,7 @@ type Tangle struct { // New is the constructor of a Tangle and creates a new Tangle object from the given details. func New(store kvstore.KVStore) (tangle *Tangle) { - osFactory := objectstorage.NewFactory(store, storageprefix.ValueTransfers) + osFactory := objectstorage.NewFactory(store, database.PrefixValueTransfers) tangle = &Tangle{ branchManager: branchmanager.New(store), diff --git a/packages/database/prefix.go b/packages/database/prefix.go new file mode 100644 index 00000000..bb135db3 --- /dev/null +++ b/packages/database/prefix.go @@ -0,0 +1,12 @@ +package database + +const ( + // PrefixAutoPeering defines the prefix of the autopeering db. + PrefixAutoPeering byte = iota + // PrefixHealth defines the prefix of the health db. + PrefixHealth + // PrefixMessageLayer defines the storage prefix for the message layer. + PrefixMessageLayer + // PrefixValueTransfers defines the storage prefix for value transfer. + PrefixValueTransfers +) diff --git a/packages/database/prefix/prefix.go b/packages/database/prefix/prefix.go deleted file mode 100644 index 955428b6..00000000 --- a/packages/database/prefix/prefix.go +++ /dev/null @@ -1,18 +0,0 @@ -package prefix - -const ( - // DBPrefixApprovers defines the prefix of the approvers db - DBPrefixApprovers byte = iota - // DBPrefixTransaction defines the prefix of the transaction db - DBPrefixTransaction - // DBPrefixBundle defines the prefix of the bundles db - DBPrefixBundle - // DBPrefixTransactionMetadata defines the prefix of the transaction metadata db - DBPrefixTransactionMetadata - // DBPrefixAddressTransactions defines the prefix of the address transactions db - DBPrefixAddressTransactions - // DBPrefixAutoPeering defines the prefix of the autopeering db. - DBPrefixAutoPeering - // DBPrefixHealth defines the prefix of the health db. - DBPrefixHealth -) diff --git a/packages/storageprefix/storageprefix.go b/packages/storageprefix/storageprefix.go deleted file mode 100644 index f6f6fd62..00000000 --- a/packages/storageprefix/storageprefix.go +++ /dev/null @@ -1,13 +0,0 @@ -package storageprefix - -const ( - // the following values are a list of prefixes defined as an enum - // package specific prefixes used for the objectstorage in the corresponding packages - - _ byte = iota - - // MessageLayer defines the storage prefix for the message layer - MessageLayer - // ValueTransfers defines the storage prefix for value transfer. - ValueTransfers -) diff --git a/packages/tangle/tangle.go b/packages/tangle/tangle.go index 3ffca644..6fd24baf 100644 --- a/packages/tangle/tangle.go +++ b/packages/tangle/tangle.go @@ -5,7 +5,7 @@ import ( "fmt" "time" - "github.com/iotaledger/goshimmer/packages/storageprefix" + "github.com/iotaledger/goshimmer/packages/database" "github.com/iotaledger/hive.go/async" "github.com/iotaledger/hive.go/kvstore" "github.com/iotaledger/hive.go/objectstorage" @@ -44,7 +44,7 @@ type Tangle struct { // New creates a new Tangle. func New(store kvstore.KVStore) (result *Tangle) { - osFactory := objectstorage.NewFactory(store, storageprefix.MessageLayer) + osFactory := objectstorage.NewFactory(store, database.PrefixMessageLayer) result = &Tangle{ shutdown: make(chan struct{}), diff --git a/plugins/autopeering/local/local.go b/plugins/autopeering/local/local.go index d3fbdf92..27da57e5 100644 --- a/plugins/autopeering/local/local.go +++ b/plugins/autopeering/local/local.go @@ -7,7 +7,7 @@ import ( "strings" "sync" - "github.com/iotaledger/goshimmer/packages/database/prefix" + databasePkg "github.com/iotaledger/goshimmer/packages/database" "github.com/iotaledger/goshimmer/plugins/config" "github.com/iotaledger/goshimmer/plugins/database" "github.com/iotaledger/hive.go/autopeering/peer" @@ -70,7 +70,7 @@ func configureLocal() *peer.Local { } seed = append(seed, bytes) } - peerDB, err := peer.NewDB(database.StoreRealm([]byte{prefix.DBPrefixAutoPeering})) + peerDB, err := peer.NewDB(database.StoreRealm([]byte{databasePkg.PrefixAutoPeering})) if err != nil { log.Fatalf("Error creating peer DB: %s", err) } diff --git a/plugins/database/health.go b/plugins/database/health.go index af6a4770..9432ef79 100644 --- a/plugins/database/health.go +++ b/plugins/database/health.go @@ -4,7 +4,7 @@ import ( "errors" "fmt" - "github.com/iotaledger/goshimmer/packages/database/prefix" + "github.com/iotaledger/goshimmer/packages/database" "github.com/iotaledger/hive.go/kvstore" ) @@ -14,7 +14,7 @@ var ( ) func configureHealthStore(store kvstore.KVStore) { - healthStore = store.WithRealm([]byte{prefix.DBPrefixHealth}) + healthStore = store.WithRealm([]byte{database.PrefixHealth}) } // MarkDatabaseUnhealthy marks the database as not healthy, meaning diff --git a/plugins/database/versioning.go b/plugins/database/versioning.go index dc434ef0..219102af 100644 --- a/plugins/database/versioning.go +++ b/plugins/database/versioning.go @@ -10,7 +10,7 @@ import ( const ( // DBVersion defines the version of the database schema this version of GoShimmer supports. // Every time there's a breaking change regarding the stored data, this version flag should be adjusted. - DBVersion = 8 + DBVersion = 9 ) var ( -- GitLab