node: cleanup setup for indexer and evidence components (#8378)

This commit is contained in:
Sam Kleinman
2022-04-19 11:35:14 -04:00
committed by GitHub
parent d919a42f53
commit ad249ca178
3 changed files with 14 additions and 41 deletions

View File

@@ -29,6 +29,7 @@ import (
rpccore "github.com/tendermint/tendermint/internal/rpc/core"
sm "github.com/tendermint/tendermint/internal/state"
"github.com/tendermint/tendermint/internal/state/indexer"
"github.com/tendermint/tendermint/internal/state/indexer/sink"
"github.com/tendermint/tendermint/internal/statesync"
"github.com/tendermint/tendermint/internal/store"
"github.com/tendermint/tendermint/libs/log"
@@ -168,15 +169,19 @@ func makeNode(
Metrics: nodeMetrics.eventlog,
})
if err != nil {
return nil, fmt.Errorf("initializing event log: %w", err)
return nil, combineCloseError(fmt.Errorf("initializing event log: %w", err), makeCloser(closers))
}
}
indexerService, eventSinks, err := createIndexerService(
cfg, dbProvider, eventBus, logger, genDoc.ChainID, nodeMetrics.indexer)
eventSinks, err := sink.EventSinksFromConfig(cfg, dbProvider, genDoc.ChainID)
if err != nil {
return nil, combineCloseError(err, makeCloser(closers))
}
indexerService := indexer.NewService(indexer.ServiceArgs{
Sinks: eventSinks,
EventBus: eventBus,
Logger: logger.With("module", "txindex"),
Metrics: nodeMetrics.indexer,
})
privValidator, err := createPrivval(ctx, logger, cfg, genDoc, filePrivval)
if err != nil {

View File

@@ -28,6 +28,7 @@ import (
"github.com/tendermint/tendermint/internal/pubsub"
sm "github.com/tendermint/tendermint/internal/state"
"github.com/tendermint/tendermint/internal/state/indexer"
"github.com/tendermint/tendermint/internal/state/indexer/sink"
"github.com/tendermint/tendermint/internal/store"
"github.com/tendermint/tendermint/internal/test/factory"
"github.com/tendermint/tendermint/libs/log"
@@ -636,11 +637,9 @@ func TestNodeSetEventSink(t *testing.T) {
genDoc, err := types.GenesisDocFromFile(cfg.GenesisFile())
require.NoError(t, err)
indexService, eventSinks, err := createIndexerService(cfg,
config.DefaultDBProvider, eventBus, logger, genDoc.ChainID,
indexer.NopMetrics())
eventSinks, err := sink.EventSinksFromConfig(cfg, config.DefaultDBProvider, genDoc.ChainID)
require.NoError(t, err)
t.Cleanup(indexService.Wait)
return eventSinks
}
cleanup := func(ns service.Service) func() {

View File

@@ -23,7 +23,6 @@ import (
"github.com/tendermint/tendermint/internal/p2p/pex"
sm "github.com/tendermint/tendermint/internal/state"
"github.com/tendermint/tendermint/internal/state/indexer"
"github.com/tendermint/tendermint/internal/state/indexer/sink"
"github.com/tendermint/tendermint/internal/statesync"
"github.com/tendermint/tendermint/internal/store"
"github.com/tendermint/tendermint/libs/log"
@@ -95,29 +94,6 @@ func initDBs(
return blockStore, stateDB, makeCloser(closers), nil
}
func createIndexerService(
cfg *config.Config,
dbProvider config.DBProvider,
eventBus *eventbus.EventBus,
logger log.Logger,
chainID string,
metrics *indexer.Metrics,
) (*indexer.Service, []indexer.EventSink, error) {
eventSinks, err := sink.EventSinksFromConfig(cfg, dbProvider, chainID)
if err != nil {
return nil, nil, err
}
indexerService := indexer.NewService(indexer.ServiceArgs{
Sinks: eventSinks,
EventBus: eventBus,
Logger: logger.With("module", "txindex"),
Metrics: metrics,
})
return indexerService, eventSinks, nil
}
func logNodeStartupInfo(state sm.State, pubKey crypto.PubKey, logger log.Logger, mode string) {
// Log the version info.
logger.Info("Version info",
@@ -215,20 +191,13 @@ func createEvidenceReactor(
if err != nil {
return nil, nil, func() error { return nil }, fmt.Errorf("unable to initialize evidence db: %w", err)
}
dbCloser := evidenceDB.Close
logger = logger.With("module", "evidence")
evidencePool := evidence.NewPool(logger, evidenceDB, store, blockStore, metrics, eventBus)
evidenceReactor := evidence.NewReactor(logger, chCreator, peerEvents, evidencePool)
evidenceReactor := evidence.NewReactor(
logger,
chCreator,
peerEvents,
evidencePool,
)
return evidenceReactor, evidencePool, dbCloser, nil
return evidenceReactor, evidencePool, evidenceDB.Close, nil
}
func createPeerManager(