mirror of
https://github.com/arnaucube/go-dvote.git
synced 2026-02-28 05:26:46 +01:00
reworked db logic based on iden3 pattern - allows for single storage location with prefixing
This commit is contained in:
@@ -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()
|
||||
|
||||
Reference in New Issue
Block a user