mirror of
https://github.com/tendermint/tendermint.git
synced 2026-09-18 22:14:35 +00:00
Convert TMSP to use Protobuf
This commit is contained in:
@@ -6,7 +6,6 @@ import (
|
||||
//"encoding/hex"
|
||||
|
||||
. "github.com/tendermint/go-common"
|
||||
"github.com/tendermint/go-wire"
|
||||
"github.com/tendermint/tmsp/types"
|
||||
)
|
||||
|
||||
@@ -21,10 +20,8 @@ func main() {
|
||||
go func() {
|
||||
counter := 0
|
||||
for {
|
||||
var res types.Response
|
||||
var n int
|
||||
var err error
|
||||
wire.ReadBinaryPtrLengthPrefixed(&res, conn, 0, &n, &err)
|
||||
var res = &types.Response{}
|
||||
err := types.ReadMessage(conn, res)
|
||||
if err != nil {
|
||||
Exit(err.Error())
|
||||
}
|
||||
@@ -39,10 +36,9 @@ func main() {
|
||||
counter := 0
|
||||
for i := 0; ; i++ {
|
||||
var bufWriter = bufio.NewWriter(conn)
|
||||
var req types.Request = types.RequestEcho{"foobar"}
|
||||
var n int
|
||||
var err error
|
||||
wire.WriteBinaryLengthPrefixed(struct{ types.Request }{req}, bufWriter, &n, &err)
|
||||
var req = types.RequestEcho("foobar")
|
||||
|
||||
err := types.WriteMessage(req, bufWriter)
|
||||
if err != nil {
|
||||
Exit(err.Error())
|
||||
}
|
||||
@@ -50,6 +46,7 @@ func main() {
|
||||
if err != nil {
|
||||
Exit(err.Error())
|
||||
}
|
||||
|
||||
counter += 1
|
||||
if counter%1000 == 0 {
|
||||
fmt.Println("Write", counter)
|
||||
|
||||
@@ -5,11 +5,9 @@ import (
|
||||
"errors"
|
||||
"fmt"
|
||||
"net"
|
||||
"reflect"
|
||||
//"encoding/hex"
|
||||
|
||||
. "github.com/tendermint/go-common"
|
||||
"github.com/tendermint/go-wire"
|
||||
"github.com/tendermint/tmsp/types"
|
||||
)
|
||||
|
||||
@@ -23,7 +21,7 @@ func main() {
|
||||
// Make a bunch of requests
|
||||
counter := 0
|
||||
for i := 0; ; i++ {
|
||||
req := types.RequestEcho{"foobar"}
|
||||
req := types.RequestEcho("foobar")
|
||||
_, err := makeRequest(conn, req)
|
||||
if err != nil {
|
||||
Exit(err.Error())
|
||||
@@ -35,35 +33,32 @@ func main() {
|
||||
}
|
||||
}
|
||||
|
||||
func makeRequest(conn net.Conn, req types.Request) (types.Response, error) {
|
||||
func makeRequest(conn net.Conn, req *types.Request) (*types.Response, error) {
|
||||
var bufWriter = bufio.NewWriter(conn)
|
||||
var n int
|
||||
var err error
|
||||
|
||||
// Write desired request
|
||||
wire.WriteBinaryLengthPrefixed(struct{ types.Request }{req}, bufWriter, &n, &err)
|
||||
err := types.WriteMessage(req, bufWriter)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
bufWriter.Write([]byte{0x01, 0x01, types.RequestTypeFlush}) // Write flush msg
|
||||
err = bufWriter.Flush()
|
||||
err = types.WriteMessage(types.RequestFlush(), bufWriter)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
// Read desired response
|
||||
var res types.Response
|
||||
wire.ReadBinaryPtrLengthPrefixed(&res, conn, 0, &n, &err)
|
||||
var res = &types.Response{}
|
||||
err = types.ReadMessage(conn, res)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
var resFlush types.Response // Read flush msg
|
||||
wire.ReadBinaryPtrLengthPrefixed(&resFlush, conn, 0, &n, &err)
|
||||
var resFlush = &types.Response{}
|
||||
err = types.ReadMessage(conn, resFlush)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
if _, ok := resFlush.(types.ResponseFlush); !ok {
|
||||
return nil, errors.New(Fmt("Expected flush response but got something else", reflect.TypeOf(resFlush)))
|
||||
if resFlush.Type != types.ResponseTypeFlush {
|
||||
return nil, errors.New(Fmt("Expected flush response but got something else: %v", resFlush.Type))
|
||||
}
|
||||
|
||||
return res, nil
|
||||
|
||||
@@ -1,44 +0,0 @@
|
||||
package benchmarks
|
||||
|
||||
import (
|
||||
"bytes"
|
||||
"testing"
|
||||
|
||||
. "github.com/tendermint/go-common"
|
||||
"github.com/tendermint/go-wire"
|
||||
"github.com/tendermint/tmsp/types"
|
||||
)
|
||||
|
||||
func BenchmarkRequestWire(b *testing.B) {
|
||||
b.StopTimer()
|
||||
var bz = make([]byte, 1024)
|
||||
copy(bz, []byte{1, 9, 0x01, 1, 6, 34, 34, 34, 34, 34, 34})
|
||||
var buf = bytes.NewBuffer(bz)
|
||||
var req types.Request
|
||||
b.StartTimer()
|
||||
|
||||
for i := 0; i < b.N; i++ {
|
||||
{
|
||||
buf = bytes.NewBuffer(bz)
|
||||
var n int
|
||||
var err error
|
||||
wire.ReadBinaryPtrLengthPrefixed(&req, buf, 0, &n, &err)
|
||||
if err != nil {
|
||||
Exit(err.Error())
|
||||
return
|
||||
}
|
||||
}
|
||||
{
|
||||
buf = bytes.NewBuffer(bz)
|
||||
var n int
|
||||
var err error
|
||||
wire.WriteBinaryLengthPrefixed(struct{ types.Request }{req}, buf, &n, &err)
|
||||
if err != nil {
|
||||
Exit(err.Error())
|
||||
return
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user