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}