Skip to content

Instantly share code, notes, and snippets.

@zono
Created June 7, 2018 04:34
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save zono/56f859e520956bc533fcda1b295127fa to your computer and use it in GitHub Desktop.
Save zono/56f859e520956bc533fcda1b295127fa to your computer and use it in GitHub Desktop.
package main
import (
"encoding/json"
"io/ioutil"
"log"
"net/http"
"strings"
"time"
"sync"
)
type Args struct {
X, Y int
}
func Call(address string, method string, id interface{}, params []interface{})(map[string]interface{}, error){
data, err := json.Marshal(map[string]interface{}{
"method": method,
"id": id,
"params": params,
})
if err != nil {
log.Println("Marshal: %v", err)
return nil, err
}
resp, err := http.Post(address,
"application/json", strings.NewReader(string(data)))
if err != nil {
log.Println("Post: %v", err)
return nil, err
}
defer resp.Body.Close()
body, err := ioutil.ReadAll(resp.Body)
if err != nil {
log.Println("ReadAll: %v", err)
return nil, err
}
result := make(map[string]interface{})
err = json.Unmarshal(body, &result)
if err != nil {
//log.Fatalf("Unmarshal: %v", err)
return nil, err
}
//log.Println(result)
return result, nil
}
func main() {
maxConnection := make(chan bool,2)
wg := &sync.WaitGroup{}
count := 0
start := time.Now()
for maxRequest := 0; maxRequest < 2; maxRequest ++{
wg.Add(1)
maxConnection <- true
go func() {
defer wg.Done()
//_, err:=Call("http://xxx:xxx@127.0.0.1:8332", "searchrawtransactions", 1, []interface{}{"1PsW4JjripMZ5rZY4KnsvCZRU2hhejfBxm"})
_, err:=Call("http://xxx:xxx@127.0.0.1:4000", "search_raw_transactions", 1, []interface{}{"address", "1PsW4JjripMZ5rZY4KnsvCZRU2hhejfBxm"})
if err!=nil{
//log.Fatalf("Err: %v", err)
}
//log.Println(res)
count++
<-maxConnection
}()
}
wg.Wait()
end := time.Now()
log.Printf("%d count\n", count)
log.Printf("%f sec\n",(end.Sub(start)).Seconds())
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment