arnaucube
arnaucube/go-dvotePublic Self-hosted repository
go-dvote/main.go
main.goRaw
 1package main
 2
 3import (
 4	"fmt"
 5	"time"
 6	"github.com/vocdoni/dvote-relay/batch"
 7	"github.com/vocdoni/dvote-relay/net"
 8	"github.com/vocdoni/dvote-relay/db"
 9)
10
11var dbPath = "~/.dvote/relay.db"
12var batchSeconds = 10 //seconds
13var batchSize = 3 //packets
14
15var err error
16var batchTimer *time.Ticker
17var batchSignal chan bool
18var signal bool
19
20
21func main() {
22
23	db, err := db.NewLevelDbStorage(dbPath, false)
24	if err != nil {
25		panic(err)
26	}
27	defer db.Close()
28
29	batch.Setup(db)
30
31	batchTimer = time.NewTicker(time.Second * time.Duration(batchSeconds))
32	batchSignal = make(chan bool)
33
34	batch.BatchSignal = batchSignal
35	batch.BatchSize = batchSize
36
37	fmt.Println("Entering main loop")
38	go net.Listen("8080")
39	for {
40		select {
41		case <- batchTimer.C:
42			fmt.Println("Timer triggered")
43			fmt.Println(batch.Create())
44			//replace with chain link
45		case signal := <-batchSignal:
46			if signal == true {
47				fmt.Println("Signal triggered")
48				fmt.Println(batch.Create())
49			}
50		default:
51			continue
52		}
53	}
54}