From d9205a85d5042497e33443ad1077a2834cda073d Mon Sep 17 00:00:00 2001 From: Ethan Buchman Date: Mon, 22 Aug 2016 16:00:08 -0400 Subject: [PATCH] query conn --- node/node.go | 6 ++++-- proxy/multi_app_conn.go | 24 ++++++++++++++++++++++++ 2 files changed, 28 insertions(+), 2 deletions(-) diff --git a/node/node.go b/node/node.go index 99ed4c4b..e6ebc758 100644 --- a/node/node.go +++ b/node/node.go @@ -41,6 +41,7 @@ type Node struct { privValidator *types.PrivValidator genesisDoc *types.GenesisDoc privKey crypto.PrivKeyEd25519 + proxyApp proxy.AppConns } func NewNode(config cfg.Config, privValidator *types.PrivValidator) *Node { @@ -59,7 +60,7 @@ func NewNode(config cfg.Config, privValidator *types.PrivValidator) *Node { // Create the proxyApp, which houses two connections, // one for the consensus and one for the mempool. - proxyApp := proxy.NewMultiAppConn(config, state, blockStore) + proxyApp := proxy.NewAppConns(config, state, blockStore) // add the chainid and number of validators to the global config config.Set("chain_id", state.ChainID) @@ -136,6 +137,7 @@ func NewNode(config cfg.Config, privValidator *types.PrivValidator) *Node { privValidator: privValidator, genesisDoc: state.GenesisDoc, privKey: privKey, + proxyApp: proxyApp, } } @@ -362,7 +364,7 @@ func newConsensusState(config cfg.Config) *consensus.ConsensusState { // Create two proxyAppConn connections, // one for the consensus and one for the mempool. - proxyApp := proxy.NewMultiAppConn(config, state, blockStore) + proxyApp := proxy.NewAppConns(config, state, blockStore) // add the chainid to the global config config.Set("chain_id", state.ChainID) diff --git a/proxy/multi_app_conn.go b/proxy/multi_app_conn.go index adc2747b..a98419fd 100644 --- a/proxy/multi_app_conn.go +++ b/proxy/multi_app_conn.go @@ -52,6 +52,16 @@ func Handshake(config cfg.Config, state State, blockStore BlockStore) { //--------- +type AppConns interface { + Mempool() AppConnMempool + Consensus() AppConnConsensus + Query() AppConnQuery +} + +func NewAppConns(config cfg.Config, state State, blockStore BlockStore) AppConns { + return NewMultiAppConn(config, state, blockStore) +} + // a multiAppConn is made of a few appConns (mempool, consensus) // and manages their underlying tmsp clients, ensuring they reboot together type multiAppConn struct { @@ -64,6 +74,7 @@ type multiAppConn struct { mempoolConn *appConnMempool consensusConn *appConnConsensus + queryConn *appConnQuery } // Make all necessary tmsp connections to the application @@ -88,18 +99,31 @@ func (app *multiAppConn) Consensus() AppConnConsensus { return app.consensusConn } +func (app *multiAppConn) Query() AppConnQuery { + return app.queryConn +} + func (app *multiAppConn) OnStart() error { app.QuitService.OnStart() addr := app.config.GetString("proxy_app") transport := app.config.GetString("tmsp") + // query connection + querycli, err := NewTMSPClient(addr, transport) + if err != nil { + return err + } + app.queryConn = NewAppConnMempool(querycli) + + // mempool connection memcli, err := NewTMSPClient(addr, transport) if err != nil { return err } app.mempoolConn = NewAppConnMempool(memcli) + // consensus connection concli, err := NewTMSPClient(addr, transport) if err != nil { return err