herald.go/server/block.go
2021-07-24 03:50:11 -04:00

86 lines
No EOL
2.1 KiB
Go

package server
import (
"context"
"encoding/base64"
pb "github.com/lbryio/hub/protobuf/go"
"log"
//"net/rpc/jsonrpc"
"github.com/ybbus/jsonrpc/v2"
)
func (s *Server) GetBlock(ctx context.Context, blockReq *pb.BlockRequest) (*pb.BlockOutput, error) {
log.Println("In GetBlock")
rpcClient := jsonrpc.NewClientWithOpts("http://localhost"+":29245", &jsonrpc.RPCClientOpts{
CustomHeaders: map[string]string{
"Authorization": "Basic " + base64.StdEncoding.EncodeToString([]byte("lbry"+":"+"lbry")),
},
})
log.Println("Making call ...")
var r pb.BlockOutput
res, err := rpcClient.Call("getblock", blockReq.Blockhash)
if err != nil {
log.Println(err)
return &pb.BlockOutput{Hash: "", Confirmations: 0}, err
}
log.Println(res)
err = res.GetObject(&r)
if err != nil {
log.Println(err)
return &pb.BlockOutput{Hash: "", Confirmations: 0}, err
}
return &r, nil
}
func (s *Server) GetBlockHeader(ctx context.Context, blockReq *pb.BlockRequest) (*pb.BlockHeaderOutput, error) {
log.Println("In GetBlock")
rpcClient := jsonrpc.NewClientWithOpts("http://localhost"+":29245", &jsonrpc.RPCClientOpts{
CustomHeaders: map[string]string{
"Authorization": "Basic " + base64.StdEncoding.EncodeToString([]byte("lbry"+":"+"lbry")),
},
})
log.Println("Making call ...")
var r pb.BlockHeaderOutput
res, err := rpcClient.Call("getblock", blockReq.Blockhash)
if err != nil {
log.Println(err)
return &pb.BlockHeaderOutput{Hash: "", Confirmations: 0}, err
}
log.Println(res)
err = res.GetObject(&r)
if err != nil {
log.Println(err)
return &pb.BlockHeaderOutput{Hash: "", Confirmations: 0}, err
}
return &r, nil
}
/*
func (s *Server) GetBlock(ctx context.Context, blockReq *pb.BlockRequest) (*pb.BlockOutput, error) {
log.Println("In GetBlock")
conn, err := jsonrpc.Dial("tcp", "localhost"+":19245")
if err != nil {
log.Fatalf("did not connect: %v", err)
}
defer conn.Close()
log.Println("Making call ...")
var r pb.BlockOutput
//var rr json.RawMessage
err = conn.Call("getblock", blockReq.Blockhash, nil)
if err != nil {
log.Println(err)
return &pb.BlockOutput{Hash: "", Confirmations: 0}, err
}
return &r, nil
}
*/