arnaucube
arnaucube/goBlockchainDataAnalysisPublic Self-hosted repository
goBlockchainDataAnalysis/continuousTasks.go
continuousTasks.goRaw
 1package main
 2
 3import (
 4	"log"
 5	"strconv"
 6	"time"
 7
 8	"github.com/btcsuite/btcd/rpcclient"
 9	"gopkg.in/mgo.v2/bson"
10)
11
12func explorationContinue() {
13	// create new client instance
14	client, err := rpcclient.New(&rpcclient.ConnConfig{
15		HTTPPostMode: true,
16		DisableTLS:   true,
17		Host:         config.Host + ":" + config.Port,
18		User:         config.User,
19		Pass:         config.Pass,
20	}, nil)
21	check(err)
22	//get last block stored in mongodb
23	lastBlock := BlockModel{}
24	err = blockCollection.Find(bson.M{}).Sort("-$natural").One(&lastBlock)
25	check(err)
26	log.Println("Getting last block stored in MongoDB. Hash: " + string(lastBlock.Hash) + ", BlockHeight: " + strconv.FormatInt(lastBlock.Height, 10))
27	log.Println("continuing blockchain exploration since last block in mongodb")
28	start := time.Now()
29	explore(client, string(lastBlock.Hash))
30	log.Println("blockchain exploration finished, time:")
31	log.Println(time.Since(start))
32}
33
34func continuousExploration() {
35	for {
36		explorationContinue()
37		time.Sleep(time.Second * 60)
38	}
39}