rename stutter

This commit is contained in:
tycho garen
2021-09-17 14:28:42 -04:00
parent 152f2ac807
commit feb21aa621
24 changed files with 69 additions and 69 deletions

View File

@@ -9,8 +9,8 @@ import (
//go:generate ../scripts/mockery_generate.sh ClientCreator
// ClientCreator creates new ABCI clients.
type ClientCreator interface {
// Creator creates new ABCI clients.
type Creator interface {
// NewABCIClient returns a new ABCI client.
NewABCIClient() (Client, error)
}
@@ -18,45 +18,45 @@ type ClientCreator interface {
//----------------------------------------------------
// local proxy uses a mutex on an in-proc app
type localClientCreator struct {
type localCreator struct {
mtx *tmsync.RWMutex
app types.Application
}
// NewLocalClientCreator returns a ClientCreator for the given app,
// NewLocalCreator returns a ClientCreator for the given app,
// which will be running locally.
func NewLocalClientCreator(app types.Application) ClientCreator {
return &localClientCreator{
func NewLocalCreator(app types.Application) Creator {
return &localCreator{
mtx: new(tmsync.RWMutex),
app: app,
}
}
func (l *localClientCreator) NewABCIClient() (Client, error) {
func (l *localCreator) NewABCIClient() (Client, error) {
return NewLocalClient(l.mtx, l.app), nil
}
//---------------------------------------------------------------
// remote proxy opens new connections to an external app process
type remoteClientCreator struct {
type remoteCreator struct {
addr string
transport string
mustConnect bool
}
// NewRemoteClientCreator returns a ClientCreator for the given address (e.g.
// NewRemoteCreator returns a ClientCreator for the given address (e.g.
// "192.168.0.1") and transport (e.g. "tcp"). Set mustConnect to true if you
// want the client to connect before reporting success.
func NewRemoteClientCreator(addr, transport string, mustConnect bool) ClientCreator {
return &remoteClientCreator{
func NewRemoteCreator(addr, transport string, mustConnect bool) Creator {
return &remoteCreator{
addr: addr,
transport: transport,
mustConnect: mustConnect,
}
}
func (r *remoteClientCreator) NewABCIClient() (Client, error) {
func (r *remoteCreator) NewABCIClient() (Client, error) {
remoteApp, err := NewClient(r.addr, r.transport, r.mustConnect)
if err != nil {
return nil, fmt.Errorf("failed to connect to proxy: %w", err)

View File

@@ -98,7 +98,7 @@ func (rts *reactorTestSuite) addNode(t *testing.T,
t.Helper()
rts.nodes = append(rts.nodes, nodeID)
rts.app[nodeID] = proxy.NewAppConns(abciclient.NewLocalClientCreator(&abci.BaseApplication{}))
rts.app[nodeID] = proxy.NewAppConns(abciclient.NewLocalCreator(&abci.BaseApplication{}))
require.NoError(t, rts.app[nodeID].Start())
blockDB := dbm.NewMemDB()

View File

@@ -164,7 +164,7 @@ func newTestReactor(t *testing.T, p testReactorParams) *BlockchainReactor {
appl = &mockBlockApplier{}
} else {
app := &testApp{}
cc := abciclient.NewLocalClientCreator(app)
cc := abciclient.NewLocalCreator(app)
proxyApp := proxy.NewAppConns(cc)
err := proxyApp.Start()
require.NoError(t, err)
@@ -483,7 +483,7 @@ func newReactorStore(
require.Len(t, privVals, 1)
app := &testApp{}
cc := abciclient.NewLocalClientCreator(app)
cc := abciclient.NewLocalCreator(app)
proxyApp := proxy.NewAppConns(cc)
err := proxyApp.Start()
if err != nil {

View File

@@ -54,7 +54,7 @@ func (emptyMempool) CloseWAL() {}
// the real app.
func newMockProxyApp(appHash []byte, abciResponses *tmstate.ABCIResponses) proxy.AppConnConsensus {
clientCreator := abciclient.NewLocalClientCreator(&mockProxyApp{
clientCreator := abciclient.NewLocalCreator(&mockProxyApp{
appHash: appHash,
abciResponses: abciResponses,
})

View File

@@ -741,7 +741,7 @@ func testHandshakeReplay(t *testing.T, sim *simulatorTestSuite, nBlocks int, mod
filepath.Join(config.DBDir(), fmt.Sprintf("replay_test_%d_%d_a_r%d", nBlocks, mode, rand.Int())))
t.Cleanup(func() { require.NoError(t, kvstoreApp.Close()) })
clientCreator2 := abciclient.NewLocalClientCreator(kvstoreApp)
clientCreator2 := abciclient.NewLocalCreator(kvstoreApp)
if nBlocks > 0 {
// run nBlocks against a new client to build up the app state.
// use a throwaway tendermint state
@@ -891,7 +891,7 @@ func buildTMStateFromChain(
kvstoreApp := kvstore.NewPersistentKVStoreApplication(
filepath.Join(config.DBDir(), fmt.Sprintf("replay_test_%d_%d_t", nBlocks, mode)))
defer kvstoreApp.Close()
clientCreator := abciclient.NewLocalClientCreator(kvstoreApp)
clientCreator := abciclient.NewLocalCreator(kvstoreApp)
proxyApp := proxy.NewAppConns(clientCreator)
if err := proxyApp.Start(); err != nil {
@@ -959,7 +959,7 @@ func TestHandshakePanicsIfAppReturnsWrongAppHash(t *testing.T) {
// - 0x03
{
app := &badApp{numBlocks: 3, allHashesAreWrong: true}
clientCreator := abciclient.NewLocalClientCreator(app)
clientCreator := abciclient.NewLocalCreator(app)
proxyApp := proxy.NewAppConns(clientCreator)
err := proxyApp.Start()
require.NoError(t, err)
@@ -983,7 +983,7 @@ func TestHandshakePanicsIfAppReturnsWrongAppHash(t *testing.T) {
// - RANDOM HASH
{
app := &badApp{numBlocks: 3, onlyLastHashIsWrong: true}
clientCreator := abciclient.NewLocalClientCreator(app)
clientCreator := abciclient.NewLocalCreator(app)
proxyApp := proxy.NewAppConns(clientCreator)
err := proxyApp.Start()
require.NoError(t, err)
@@ -1226,7 +1226,7 @@ func TestHandshakeUpdatesValidators(t *testing.T) {
val, _ := factory.RandValidator(true, 10)
vals := types.NewValidatorSet([]*types.Validator{val})
app := &initChainApp{vals: types.TM2PB.ValidatorUpdates(vals)}
clientCreator := abciclient.NewLocalClientCreator(app)
clientCreator := abciclient.NewLocalCreator(app)
config := ResetConfig("handshake_test_")
t.Cleanup(func() { _ = os.RemoveAll(config.RootDir) })

View File

@@ -65,7 +65,7 @@ func WALGenerateNBlocks(t *testing.T, wr io.Writer, numBlocks int) (err error) {
blockStore := store.NewBlockStore(blockStoreDB)
proxyApp := proxy.NewAppConns(abciclient.NewLocalClientCreator(app))
proxyApp := proxy.NewAppConns(abciclient.NewLocalCreator(app))
proxyApp.SetLogger(logger.With("module", "proxy"))
if err := proxyApp.Start(); err != nil {
return fmt.Errorf("failed to start proxy app connections: %w", err)

View File

@@ -13,7 +13,7 @@ import (
func BenchmarkReap(b *testing.B) {
app := kvstore.NewApplication()
cc := abciclient.NewLocalClientCreator(app)
cc := abciclient.NewLocalCreator(app)
mp, cleanup := newMempoolWithApp(cc)
defer cleanup()
mp.config.Size = 100000
@@ -34,7 +34,7 @@ func BenchmarkReap(b *testing.B) {
func BenchmarkCheckTx(b *testing.B) {
app := kvstore.NewApplication()
cc := abciclient.NewLocalClientCreator(app)
cc := abciclient.NewLocalCreator(app)
mp, cleanup := newMempoolWithApp(cc)
defer cleanup()
@@ -56,7 +56,7 @@ func BenchmarkCheckTx(b *testing.B) {
func BenchmarkParallelCheckTx(b *testing.B) {
app := kvstore.NewApplication()
cc := abciclient.NewLocalClientCreator(app)
cc := abciclient.NewLocalCreator(app)
mp, cleanup := newMempoolWithApp(cc)
defer cleanup()
@@ -81,7 +81,7 @@ func BenchmarkParallelCheckTx(b *testing.B) {
func BenchmarkCheckDuplicateTx(b *testing.B) {
app := kvstore.NewApplication()
cc := abciclient.NewLocalClientCreator(app)
cc := abciclient.NewLocalCreator(app)
mp, cleanup := newMempoolWithApp(cc)
defer cleanup()

View File

@@ -16,7 +16,7 @@ import (
func TestCacheAfterUpdate(t *testing.T) {
app := kvstore.NewApplication()
cc := abciclient.NewLocalClientCreator(app)
cc := abciclient.NewLocalCreator(app)
mp, cleanup := newMempoolWithApp(cc)
defer cleanup()

View File

@@ -31,11 +31,11 @@ import (
// test.
type cleanupFunc func()
func newMempoolWithApp(cc abciclient.ClientCreator) (*CListMempool, cleanupFunc) {
func newMempoolWithApp(cc abciclient.Creator) (*CListMempool, cleanupFunc) {
return newMempoolWithAppAndConfig(cc, cfg.ResetTestRoot("mempool_test"))
}
func newMempoolWithAppAndConfig(cc abciclient.ClientCreator, config *cfg.Config) (*CListMempool, cleanupFunc) {
func newMempoolWithAppAndConfig(cc abciclient.Creator, config *cfg.Config) (*CListMempool, cleanupFunc) {
appConnMem, _ := cc.NewABCIClient()
appConnMem.SetLogger(log.TestingLogger().With("module", "abci-client", "connection", "mempool"))
err := appConnMem.Start()
@@ -92,7 +92,7 @@ func checkTxs(t *testing.T, mp mempool.Mempool, count int, peerID uint16) types.
func TestReapMaxBytesMaxGas(t *testing.T) {
app := kvstore.NewApplication()
cc := abciclient.NewLocalClientCreator(app)
cc := abciclient.NewLocalCreator(app)
mp, cleanup := newMempoolWithApp(cc)
defer cleanup()
@@ -141,7 +141,7 @@ func TestReapMaxBytesMaxGas(t *testing.T) {
func TestMempoolFilters(t *testing.T) {
app := kvstore.NewApplication()
cc := abciclient.NewLocalClientCreator(app)
cc := abciclient.NewLocalCreator(app)
mp, cleanup := newMempoolWithApp(cc)
defer cleanup()
emptyTxArr := []types.Tx{[]byte{}}
@@ -180,7 +180,7 @@ func TestMempoolFilters(t *testing.T) {
func TestMempoolUpdate(t *testing.T) {
app := kvstore.NewApplication()
cc := abciclient.NewLocalClientCreator(app)
cc := abciclient.NewLocalCreator(app)
mp, cleanup := newMempoolWithApp(cc)
defer cleanup()
@@ -216,7 +216,7 @@ func TestMempoolUpdate(t *testing.T) {
func TestMempool_KeepInvalidTxsInCache(t *testing.T) {
app := kvstore.NewApplication()
cc := abciclient.NewLocalClientCreator(app)
cc := abciclient.NewLocalCreator(app)
wcfg := cfg.DefaultConfig()
wcfg.Mempool.KeepInvalidTxsInCache = true
mp, cleanup := newMempoolWithAppAndConfig(cc, wcfg)
@@ -264,7 +264,7 @@ func TestMempool_KeepInvalidTxsInCache(t *testing.T) {
func TestTxsAvailable(t *testing.T) {
app := kvstore.NewApplication()
cc := abciclient.NewLocalClientCreator(app)
cc := abciclient.NewLocalCreator(app)
mp, cleanup := newMempoolWithApp(cc)
defer cleanup()
mp.EnableTxsAvailable()
@@ -308,7 +308,7 @@ func TestTxsAvailable(t *testing.T) {
func TestSerialReap(t *testing.T) {
app := kvstore.NewApplication()
cc := abciclient.NewLocalClientCreator(app)
cc := abciclient.NewLocalCreator(app)
mp, cleanup := newMempoolWithApp(cc)
defer cleanup()
@@ -419,7 +419,7 @@ func TestSerialReap(t *testing.T) {
func TestMempool_CheckTxChecksTxSize(t *testing.T) {
app := kvstore.NewApplication()
cc := abciclient.NewLocalClientCreator(app)
cc := abciclient.NewLocalCreator(app)
mempl, cleanup := newMempoolWithApp(cc)
defer cleanup()
@@ -464,7 +464,7 @@ func TestMempool_CheckTxChecksTxSize(t *testing.T) {
func TestMempoolTxsBytes(t *testing.T) {
app := kvstore.NewApplication()
cc := abciclient.NewLocalClientCreator(app)
cc := abciclient.NewLocalCreator(app)
config := cfg.ResetTestRoot("mempool_test")
config.Mempool.MaxTxsBytes = 10
mp, cleanup := newMempoolWithAppAndConfig(cc, config)
@@ -507,7 +507,7 @@ func TestMempoolTxsBytes(t *testing.T) {
// 6. zero after tx is rechecked and removed due to not being valid anymore
app2 := kvstore.NewApplication()
cc = abciclient.NewLocalClientCreator(app2)
cc = abciclient.NewLocalCreator(app2)
mp, cleanup = newMempoolWithApp(cc)
defer cleanup()
@@ -597,10 +597,10 @@ func newRemoteApp(
addr string,
app abci.Application,
) (
clientCreator abciclient.ClientCreator,
clientCreator abciclient.Creator,
server service.Service,
) {
clientCreator = abciclient.NewRemoteClientCreator(addr, "socket", true)
clientCreator = abciclient.NewRemoteCreator(addr, "socket", true)
// Start server
server = abciserver.NewSocketServer(addr, app)

View File

@@ -55,7 +55,7 @@ func setup(t *testing.T, cfg *cfg.MempoolConfig, numNodes int, chBuf uint) *reac
for nodeID := range rts.network.Nodes {
rts.kvstores[nodeID] = kvstore.NewApplication()
cc := abciclient.NewLocalClientCreator(rts.kvstores[nodeID])
cc := abciclient.NewLocalCreator(rts.kvstores[nodeID])
mempool, memCleanup := newMempoolWithApp(cc)
t.Cleanup(memCleanup)

View File

@@ -76,7 +76,7 @@ func setup(t testing.TB, cacheSize int, options ...TxMempoolOption) *TxMempool {
t.Helper()
app := &application{kvstore.NewApplication()}
cc := abciclient.NewLocalClientCreator(app)
cc := abciclient.NewLocalCreator(app)
cfg := config.ResetTestRoot(strings.ReplaceAll(t.Name(), "/", "|"))
cfg.Mempool.CacheSize = cacheSize

View File

@@ -48,7 +48,7 @@ var SOCKET = "socket"
func TestEcho(t *testing.T) {
sockPath := fmt.Sprintf("unix:///tmp/echo_%v.sock", tmrand.Str(6))
clientCreator := abciclient.NewRemoteClientCreator(sockPath, SOCKET, true)
clientCreator := abciclient.NewRemoteCreator(sockPath, SOCKET, true)
// Start server
s := server.NewSocketServer(sockPath, kvstore.NewApplication())
@@ -96,7 +96,7 @@ func TestEcho(t *testing.T) {
func BenchmarkEcho(b *testing.B) {
b.StopTimer() // Initialize
sockPath := fmt.Sprintf("unix:///tmp/echo_%v.sock", tmrand.Str(6))
clientCreator := abciclient.NewRemoteClientCreator(sockPath, SOCKET, true)
clientCreator := abciclient.NewRemoteCreator(sockPath, SOCKET, true)
// Start server
s := server.NewSocketServer(sockPath, kvstore.NewApplication())
@@ -149,7 +149,7 @@ func BenchmarkEcho(b *testing.B) {
func TestInfo(t *testing.T) {
sockPath := fmt.Sprintf("unix:///tmp/echo_%v.sock", tmrand.Str(6))
clientCreator := abciclient.NewRemoteClientCreator(sockPath, SOCKET, true)
clientCreator := abciclient.NewRemoteCreator(sockPath, SOCKET, true)
// Start server
s := server.NewSocketServer(sockPath, kvstore.NewApplication())

View File

@@ -14,18 +14,18 @@ import (
//
// The Closer is a noop except for persistent_kvstore applications,
// which will clean up the store.
func DefaultClientCreator(addr, transport, dbDir string) (abciclient.ClientCreator, io.Closer) {
func DefaultClientCreator(addr, transport, dbDir string) (abciclient.Creator, io.Closer) {
switch addr {
case "kvstore":
return abciclient.NewLocalClientCreator(kvstore.NewApplication()), noopCloser{}
return abciclient.NewLocalCreator(kvstore.NewApplication()), noopCloser{}
case "persistent_kvstore":
app := kvstore.NewPersistentKVStoreApplication(dbDir)
return abciclient.NewLocalClientCreator(app), app
return abciclient.NewLocalCreator(app), app
case "noop":
return abciclient.NewLocalClientCreator(types.NewBaseApplication()), noopCloser{}
return abciclient.NewLocalCreator(types.NewBaseApplication()), noopCloser{}
default:
mustConnect := false // loop retrying
return abciclient.NewRemoteClientCreator(addr, transport, mustConnect), noopCloser{}
return abciclient.NewRemoteCreator(addr, transport, mustConnect), noopCloser{}
}
}

View File

@@ -33,7 +33,7 @@ type AppConns interface {
}
// NewAppConns calls NewMultiAppConn.
func NewAppConns(clientCreator abciclient.ClientCreator) AppConns {
func NewAppConns(clientCreator abciclient.Creator) AppConns {
return NewMultiAppConn(clientCreator)
}
@@ -55,11 +55,11 @@ type multiAppConn struct {
queryConnClient abciclient.Client
snapshotConnClient abciclient.Client
clientCreator abciclient.ClientCreator
clientCreator abciclient.Creator
}
// NewMultiAppConn makes all necessary abci connections to the application.
func NewMultiAppConn(clientCreator abciclient.ClientCreator) AppConns {
func NewMultiAppConn(clientCreator abciclient.Creator) AppConns {
multiAppConn := &multiAppConn{
clientCreator: clientCreator,
}

View File

@@ -120,7 +120,7 @@ func newDefaultNode(config *cfg.Config, logger log.Logger) (service.Service, err
func makeNode(config *cfg.Config,
privValidator types.PrivValidator,
nodeKey types.NodeKey,
clientCreator abciclient.ClientCreator,
clientCreator abciclient.Creator,
genesisDocProvider genesisDocProvider,
dbProvider cfg.DBProvider,
logger log.Logger) (service.Service, error) {

View File

@@ -214,7 +214,7 @@ func testFreeAddr(t *testing.T) string {
func TestCreateProposalBlock(t *testing.T) {
config := cfg.ResetTestRoot("node_create_proposal")
defer os.RemoveAll(config.RootDir)
cc := abciclient.NewLocalClientCreator(kvstore.NewApplication())
cc := abciclient.NewLocalCreator(kvstore.NewApplication())
proxyApp := proxy.NewAppConns(cc)
err := proxyApp.Start()
require.Nil(t, err)
@@ -306,7 +306,7 @@ func TestCreateProposalBlock(t *testing.T) {
func TestMaxTxsProposalBlockSize(t *testing.T) {
config := cfg.ResetTestRoot("node_create_proposal")
defer os.RemoveAll(config.RootDir)
cc := abciclient.NewLocalClientCreator(kvstore.NewApplication())
cc := abciclient.NewLocalCreator(kvstore.NewApplication())
proxyApp := proxy.NewAppConns(cc)
err := proxyApp.Start()
require.Nil(t, err)
@@ -368,7 +368,7 @@ func TestMaxTxsProposalBlockSize(t *testing.T) {
func TestMaxProposalBlockSize(t *testing.T) {
config := cfg.ResetTestRoot("node_create_proposal")
defer os.RemoveAll(config.RootDir)
cc := abciclient.NewLocalClientCreator(kvstore.NewApplication())
cc := abciclient.NewLocalCreator(kvstore.NewApplication())
proxyApp := proxy.NewAppConns(cc)
err := proxyApp.Start()
require.Nil(t, err)

View File

@@ -28,7 +28,7 @@ func NewDefault(conf *config.Config, logger log.Logger) (service.Service, error)
// value of the final argument.
func New(conf *config.Config,
logger log.Logger,
cf abciclient.ClientCreator,
cf abciclient.Creator,
gen *types.GenesisDoc,
) (service.Service, error) {
nodeKey, err := types.LoadOrGenNodeKey(conf.NodeKeyFile())

View File

@@ -51,7 +51,7 @@ func initDBs(config *cfg.Config, dbProvider cfg.DBProvider) (blockStore *store.B
return
}
func createAndStartProxyAppConns(clientCreator abciclient.ClientCreator, logger log.Logger) (proxy.AppConns, error) {
func createAndStartProxyAppConns(clientCreator abciclient.Creator, logger log.Logger) (proxy.AppConns, error) {
proxyApp := proxy.NewAppConns(clientCreator)
proxyApp.SetLogger(logger.With("module", "proxy"))
if err := proxyApp.Start(); err != nil {

View File

@@ -100,7 +100,7 @@ func StartTendermint(ctx context.Context,
} else {
logger = log.MustNewDefaultLogger(log.LogFormatPlain, log.LogLevelInfo, false)
}
papp := abciclient.NewLocalClientCreator(app)
papp := abciclient.NewLocalCreator(app)
node, err := nm.New(conf, logger, papp, nil)
if err != nil {
return nil, func(_ context.Context) error { return nil }, err

View File

@@ -35,7 +35,7 @@ var (
func TestApplyBlock(t *testing.T) {
app := &testApp{}
cc := abciclient.NewLocalClientCreator(app)
cc := abciclient.NewLocalCreator(app)
proxyApp := proxy.NewAppConns(cc)
err := proxyApp.Start()
require.Nil(t, err)
@@ -60,7 +60,7 @@ func TestApplyBlock(t *testing.T) {
// TestBeginBlockValidators ensures we send absent validators list.
func TestBeginBlockValidators(t *testing.T) {
app := &testApp{}
cc := abciclient.NewLocalClientCreator(app)
cc := abciclient.NewLocalCreator(app)
proxyApp := proxy.NewAppConns(cc)
err := proxyApp.Start()
require.Nil(t, err)
@@ -123,7 +123,7 @@ func TestBeginBlockValidators(t *testing.T) {
// TestBeginBlockByzantineValidators ensures we send byzantine validators list.
func TestBeginBlockByzantineValidators(t *testing.T) {
app := &testApp{}
cc := abciclient.NewLocalClientCreator(app)
cc := abciclient.NewLocalCreator(app)
proxyApp := proxy.NewAppConns(cc)
err := proxyApp.Start()
require.Nil(t, err)
@@ -348,7 +348,7 @@ func TestUpdateValidators(t *testing.T) {
// TestEndBlockValidatorUpdates ensures we update validator set and send an event.
func TestEndBlockValidatorUpdates(t *testing.T) {
app := &testApp{}
cc := abciclient.NewLocalClientCreator(app)
cc := abciclient.NewLocalCreator(app)
proxyApp := proxy.NewAppConns(cc)
err := proxyApp.Start()
require.Nil(t, err)
@@ -421,7 +421,7 @@ func TestEndBlockValidatorUpdates(t *testing.T) {
// would result in empty set causes no panic, an error is raised and NextValidators is not updated
func TestEndBlockValidatorUpdatesResultingInEmptySet(t *testing.T) {
app := &testApp{}
cc := abciclient.NewLocalClientCreator(app)
cc := abciclient.NewLocalCreator(app)
proxyApp := proxy.NewAppConns(cc)
err := proxyApp.Start()
require.Nil(t, err)

View File

@@ -30,7 +30,7 @@ type paramsChangeTestCase struct {
func newTestApp() proxy.AppConns {
app := &testApp{}
cc := abciclient.NewLocalClientCreator(app)
cc := abciclient.NewLocalCreator(app)
return proxy.NewAppConns(cc)
}

View File

@@ -130,7 +130,7 @@ func startNode(cfg *Config) error {
n, err := node.New(tmcfg,
nodeLogger,
abciclient.NewLocalClientCreator(app),
abciclient.NewLocalCreator(app),
nil,
)
if err != nil {

View File

@@ -14,7 +14,7 @@ var mp mempool.Mempool
func init() {
app := kvstore.NewApplication()
cc := abciclient.NewLocalClientCreator(app)
cc := abciclient.NewLocalCreator(app)
appConnMem, _ := cc.NewABCIClient()
err := appConnMem.Start()
if err != nil {

View File

@@ -14,7 +14,7 @@ var mp mempool.Mempool
func init() {
app := kvstore.NewApplication()
cc := abciclient.NewLocalClientCreator(app)
cc := abciclient.NewLocalCreator(app)
appConnMem, _ := cc.NewABCIClient()
err := appConnMem.Start()
if err != nil {