Advertisement
Guest User

hangexample.go

a guest
Mar 9th, 2017
101
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Go 1.72 KB | None | 0 0
  1. package main
  2.  
  3. import (
  4.     "bufio"
  5.     "io/ioutil"
  6.     "log"
  7.     "os"
  8.     "path/filepath"
  9.     "sync"
  10.  
  11.     "github.com/decred/dcrrpcclient"
  12.     "github.com/decred/dcrutil"
  13. )
  14.  
  15. var cli *dcrrpcclient.Client
  16. var bhc chan []byte
  17.  
  18. func main() {
  19.  
  20.     dcrrpcclient.SetLogWriter(bufio.NewWriter(os.Stderr), "debug")
  21.     bhc = make(chan []byte)
  22.  
  23.     ntfnHandlers := dcrrpcclient.NotificationHandlers{
  24.         OnBlockConnected: func(blockHeader []byte, transactions [][]byte) {
  25.             //          log.Printf("received block header %v", blockHeader)
  26.             bhc <- blockHeader
  27.             //          log.Println("after receive");
  28.         },
  29.     }
  30.  
  31.     var err error
  32.     certs, err := ioutil.ReadFile(filepath.Join(dcrutil.AppDataDir("dcrd", false), "rpc.cert"))
  33.     if err != nil {
  34.         log.Fatal("Error Reading cert: ", err)
  35.     }
  36.  
  37.     connCfg := &dcrrpcclient.ConnConfig{
  38.         Host:         "localhost:19109",
  39.         Endpoint:     "ws",
  40.         User:         "guUioygQgEZOSWq7g8jW7R3vbrCGeFH8ZJJED8B580c",
  41.         Pass:         "LZ2YHOh00Slt4taGJWcUKaRgSVKD3azEU4KwdjUNs",
  42.         Certificates: certs,
  43.     }
  44.  
  45.     cli, err = dcrrpcclient.New(connCfg, &ntfnHandlers)
  46.     if err != nil {
  47.         log.Fatal("Error conecting to client: ", err)
  48.     }
  49.  
  50.     cli.NotifyBlocks()
  51.     log.Println("registered notifyblocks")
  52.  
  53.     var wg sync.WaitGroup
  54.     wg.Add(1)
  55.     go func() {
  56.         hashes, err := cli.LiveTickets()
  57.         if err != nil {
  58.             log.Fatal("Error loading tickets: ", err)
  59.         }
  60.         log.Printf("loaded %d tickets", len(hashes))
  61.         for true {
  62.             log.Println("waiting headers")
  63.             _ = <-bhc
  64.             log.Println("received headers")
  65.             hashes, err := cli.LiveTickets()
  66.             if err != nil {
  67.                 log.Fatal("Error loading tickets: ", err)
  68.             }
  69.             log.Printf("loaded %d tickets", len(hashes))
  70.         }
  71.         log.Println("finished")
  72.     }()
  73.     wg.Wait()
  74.  
  75.     cli.Shutdown()
  76.     cli.WaitForShutdown()
  77. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement