Browse Source

added continuous block exploration each minute

master
arnaucode 7 years ago
parent
commit
47b647f010
2 changed files with 41 additions and 21 deletions
  1. +39
    -0
      continuousTasks.go
  2. +2
    -21
      main.go

+ 39
- 0
continuousTasks.go

@ -0,0 +1,39 @@
package main
import (
"log"
"strconv"
"time"
"github.com/btcsuite/btcd/rpcclient"
"gopkg.in/mgo.v2/bson"
)
func explorationContinue() {
// create new client instance
client, err := rpcclient.New(&rpcclient.ConnConfig{
HTTPPostMode: true,
DisableTLS: true,
Host: config.Host + ":" + config.Port,
User: config.User,
Pass: config.Pass,
}, nil)
check(err)
//get last block stored in mongodb
lastBlock := BlockModel{}
err = blockCollection.Find(bson.M{}).Sort("-$natural").One(&lastBlock)
check(err)
log.Println("Getting last block stored in MongoDB. Hash: " + string(lastBlock.Hash) + ", BlockHeight: " + strconv.FormatInt(lastBlock.Height, 10))
log.Println("continuing blockchain exploration since last block in mongodb")
start := time.Now()
explore(client, string(lastBlock.Hash))
log.Println("blockchain exploration finished, time:")
log.Println(time.Since(start))
}
func continuousExploration() {
for {
explorationContinue()
time.Sleep(time.Second * 60)
}
}

+ 2
- 21
main.go

@ -4,11 +4,9 @@ import (
"log"
"net/http"
"os"
"strconv"
"time"
mgo "gopkg.in/mgo.v2"
"gopkg.in/mgo.v2/bson"
"github.com/btcsuite/btcd/rpcclient"
"github.com/gorilla/handlers"
@ -78,27 +76,10 @@ func main() {
log.Printf("Block count: %d", blockCount)
}
if os.Args[1] == "-continue" {
// create new client instance
client, err := rpcclient.New(&rpcclient.ConnConfig{
HTTPPostMode: true,
DisableTLS: true,
Host: config.Host + ":" + config.Port,
User: config.User,
Pass: config.Pass,
}, nil)
check(err)
//get last block stored in mongodb
lastBlock := BlockModel{}
err = blockCollection.Find(bson.M{}).Sort("-$natural").One(&lastBlock)
check(err)
log.Println("Getting last block stored in MongoDB. Hash: " + string(lastBlock.Hash) + ", BlockHeight: " + strconv.FormatInt(lastBlock.Height, 10))
log.Println("continuing blockchain exploration since last block in mongodb")
start := time.Now()
explore(client, string(lastBlock.Hash))
log.Println("blockchain exploration finished, time:")
log.Println(time.Since(start))
explorationContinue()
}
}
go continuousExploration()
//run thw webserver
go webserver()

Loading…
Cancel
Save