Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package main
- import (
- "bufio"
- "io/ioutil"
- "log"
- "os"
- "path/filepath"
- "sync"
- "github.com/decred/dcrrpcclient"
- "github.com/decred/dcrutil"
- )
- var cli *dcrrpcclient.Client
- var bhc chan []byte
- func main() {
- dcrrpcclient.SetLogWriter(bufio.NewWriter(os.Stderr), "debug")
- bhc = make(chan []byte)
- ntfnHandlers := dcrrpcclient.NotificationHandlers{
- OnBlockConnected: func(blockHeader []byte, transactions [][]byte) {
- // log.Printf("received block header %v", blockHeader)
- bhc <- blockHeader
- // log.Println("after receive");
- },
- }
- var err error
- certs, err := ioutil.ReadFile(filepath.Join(dcrutil.AppDataDir("dcrd", false), "rpc.cert"))
- if err != nil {
- log.Fatal("Error Reading cert: ", err)
- }
- connCfg := &dcrrpcclient.ConnConfig{
- Host: "localhost:19109",
- Endpoint: "ws",
- User: "guUioygQgEZOSWq7g8jW7R3vbrCGeFH8ZJJED8B580c",
- Pass: "LZ2YHOh00Slt4taGJWcUKaRgSVKD3azEU4KwdjUNs",
- Certificates: certs,
- }
- cli, err = dcrrpcclient.New(connCfg, &ntfnHandlers)
- if err != nil {
- log.Fatal("Error conecting to client: ", err)
- }
- cli.NotifyBlocks()
- log.Println("registered notifyblocks")
- var wg sync.WaitGroup
- wg.Add(1)
- go func() {
- hashes, err := cli.LiveTickets()
- if err != nil {
- log.Fatal("Error loading tickets: ", err)
- }
- log.Printf("loaded %d tickets", len(hashes))
- for true {
- log.Println("waiting headers")
- _ = <-bhc
- log.Println("received headers")
- hashes, err := cli.LiveTickets()
- if err != nil {
- log.Fatal("Error loading tickets: ", err)
- }
- log.Printf("loaded %d tickets", len(hashes))
- }
- log.Println("finished")
- }()
- wg.Wait()
- cli.Shutdown()
- cli.WaitForShutdown()
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement