arnaucube
arnaucube/go-dvotePublic Self-hosted repository
go-dvote/main.go
main.goRaw
 1package main
 2
 3import (
 4	"fmt"
 5	"github.com/syndtr/goleveldb/leveldb"
 6	"time"
 7	"github.com/vocdoni/dvote-relay/batch"
 8)
 9
10var dbPath = "$HOME/.dvote/relay.db"
11var bdbPath = "$HOME/.dvote/batch.db"
12var batchSeconds = 3 //seconds
13
14var err error
15var db *leveldb.DB
16var bdb *leveldb.DB
17var batchTimer *time.Ticker
18var batchSignal chan int
19
20
21func setup() {
22	db, err = leveldb.OpenFile(dbPath, nil)
23	if err != nil {
24		panic(err)
25	}
26	defer db.Close()
27
28	bdb, err = leveldb.OpenFile(bdbPath, nil)
29	if err != nil {
30		panic(err)
31	}
32	defer bdb.Close()
33
34	batchTimer = time.NewTicker(time.Second * time.Duration(batchSeconds))
35	//create batch signal channel
36}
37
38func main() {
39	setup()
40	fmt.Println("Entering main loop")
41	for {
42		select {
43		case <- batchTimer.C:
44			fmt.Println("Timer triggered")
45			fmt.Println(batch.Create(bdb))
46			//replace with chain link
47		case <- batchSignal:
48			fmt.Println("Signal triggered")
49			fmt.Println(batch.Create(bdb))
50//		case <- stopSignal:
51//			return
52		}
53	}
54}