reworked db logic based on iden3 pattern - allows for single storage location with prefixing

This commit is contained in:
imw
2018-12-18 15:02:31 +01:00
parent af81f8825e
commit ddfc8e1187
5 changed files with 126 additions and 46 deletions

View File

@@ -1,46 +1,30 @@
package batch
import (
"github.com/syndtr/goleveldb/leveldb"
// "encoding/json"
"fmt"
"github.com/vocdoni/dvote-relay/types"
"github.com/vocdoni/dvote-relay/db"
)
var DBPath string
var BDBPath string
var DB *leveldb.DB
var BDB *leveldb.DB
var rdb *db.LevelDbStorage
var bdb *db.LevelDbStorage
var BatchSignal chan bool
var BatchSize int
var currentBatchSize int
var err error
func Setup() {
DB, err = leveldb.OpenFile(DBPath, nil)
if err != nil {
panic(err)
}
defer DB.Close()
BDB, err = leveldb.OpenFile(BDBPath, nil)
if err != nil {
panic(err)
}
defer BDB.Close()
fmt.Println(BDB)
func Setup(l *db.LevelDbStorage) {
rdb = l.WithPrefix([]byte("relay"))
bdb = l.WithPrefix([]byte("batch"))
fmt.Println("Batch storage:")
fmt.Println(bdb)
}
//add (queue for counting)
func Add(p types.Packet) error {
BDB, err = leveldb.OpenFile(BDBPath, nil)
if err != nil {
panic(err)
}
defer BDB.Close()
err := BDB.Put([]byte(fmt.Sprintf("%v", p.Nullifier)),[]byte(fmt.Sprintf("%v", p)), nil)
fmt.Println(bdb)
err := bdb.Put([]byte(fmt.Sprintf("%v", p.Nullifier)),[]byte(fmt.Sprintf("%v", p)))
if err != nil {
return err
}
@@ -54,22 +38,18 @@ func Add(p types.Packet) error {
//create (return batch)
func Create() []byte {
DB, err = leveldb.OpenFile(DBPath, nil)
if err != nil {
panic(err)
}
defer DB.Close()
var b []byte
iter := BDB.NewIterator(nil, nil)
iter := bdb.Iter()
for iter.Next() {
//k := iter.Key()
//v := iter.Value()
err := iter.Error()
if err != nil {
panic(err)
}
//put p in batch
//db.Put(iter.Key(), iter.Val(), nil)
//rdb.Put(iter.Key(), iter.Val(), nil)
//bdb.Delete(iter.Key(), nil)
}
iter.Release()