migration of privval module to gRPC

This commit is contained in:
Marko Baricevic
2020-06-09 17:51:30 +02:00
parent 6961c7e5d1
commit 4d9f573bf3
29 changed files with 383 additions and 1928 deletions
+15 -17
View File
@@ -3,22 +3,23 @@ package main
import (
"flag"
"os"
"time"
"github.com/tendermint/tendermint/crypto/ed25519"
"github.com/tendermint/tendermint/libs/log"
tmnet "github.com/tendermint/tendermint/libs/net"
tmos "github.com/tendermint/tendermint/libs/os"
"google.golang.org/grpc"
"google.golang.org/grpc/credentials"
"github.com/tendermint/tendermint/privval"
)
func main() {
var (
addr = flag.String("addr", ":26659", "Address of client to connect to")
addr = flag.String("addr", "tcp://127.0.0.1:26659", "Address of client to connect to")
chainID = flag.String("chain-id", "mychain", "chain id")
privValKeyPath = flag.String("priv-key", "", "priv val key file path")
privValStatePath = flag.String("priv-state", "", "priv val state file path")
withCert = flag.String("cert", "", "absolutepath to server certificate")
withKey = flag.String("key", "", "absolutepath to server key")
logger = log.NewTMLogger(
log.NewSyncWriter(os.Stdout),
@@ -36,21 +37,18 @@ func main() {
pv := privval.LoadFilePV(*privValKeyPath, *privValStatePath)
var dialer privval.SocketDialer
protocol, address := tmnet.ProtocolAndAddress(*addr)
switch protocol {
case "unix":
dialer = privval.DialUnixFn(address)
case "tcp":
connTimeout := 3 * time.Second // TODO
dialer = privval.DialTCPFn(address, connTimeout, ed25519.GenPrivKey())
default:
logger.Error("Unknown protocol", "protocol", protocol)
os.Exit(1)
opts := []grpc.ServerOption{}
if *withCert != "" && *withKey != "" {
creds, err := credentials.NewServerTLSFromFile(*withCert, *withKey)
if err != nil {
logger.Error("Could not load TLS keys:", "err", err)
}
opts = append(opts, grpc.Creds(creds))
} else {
logger.Error("You are using an insecure gRPC connection! Provide a certificate and key to connect securely")
}
sd := privval.NewSignerDialerEndpoint(logger, dialer)
ss := privval.NewSignerServer(sd, *chainID, pv)
ss := privval.NewSignerServer(*addr, *chainID, pv, logger, opts)
err := ss.Start()
if err != nil {