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				n, b := batch.Create()
49				fmt.Println("Nullifiers:")
50				fmt.Println(n)
51				fmt.Println("Batch:")
52				fmt.Println(b)
53				batch.Compact(n)
54			}
55		default:
56			continue
57		}
58	}
59}