Invert privVal socket communication

Follow-up to #1255 aligning with the expectation that the external
signing process connects to the node. The SocketClient will block on
start until one connection has been established, support for multiple
signers connected simultaneously is a planned future extension.

* SocketClient accepts connection
* PrivValSocketServer renamed to RemoteSigner
* extend tests
This commit is contained in:
Alexander Simmerl
2018-03-06 19:54:49 +01:00
parent 2ce57a65ff
commit 589781721a
3 changed files with 359 additions and 200 deletions

View File

@ -12,36 +12,41 @@ import (
func main() {
var (
addr = flag.String("addr", ":46659", "Address of client to connect to")
chainID = flag.String("chain-id", "mychain", "chain id")
listenAddr = flag.String("laddr", ":46659", "Validator listen address (0.0.0.0:0 means any interface, any port")
maxConn = flag.Int("clients", 3, "maximum of concurrent connections")
privValPath = flag.String("priv", "", "priv val file path")
logger = log.NewTMLogger(log.NewSyncWriter(os.Stdout)).With("module", "priv_val")
logger = log.NewTMLogger(
log.NewSyncWriter(os.Stdout),
).With("module", "priv_val")
)
flag.Parse()
logger.Info(
"Starting private validator",
"addr", *addr,
"chainID", *chainID,
"listenAddr", *listenAddr,
"maxConn", *maxConn,
"privPath", *privValPath,
)
privVal := priv_val.LoadPrivValidatorJSON(*privValPath)
pvss := priv_val.NewPrivValidatorSocketServer(
rs := priv_val.NewRemoteSigner(
logger,
*chainID,
*listenAddr,
*maxConn,
*addr,
privVal,
nil,
)
pvss.Start()
err := rs.Start()
if err != nil {
panic(err)
}
cmn.TrapSignal(func() {
pvss.Stop()
err := rs.Stop()
if err != nil {
panic(err)
}
})
}