MCPcopy Create free account
hub / github.com/DeAI-Artist/Linkis / createAndStartIndexerService

Function createAndStartIndexerService

node/node.go:269–315  ·  view source on GitHub ↗
(
	config *cfg.Config,
	chainID string,
	dbProvider DBProvider,
	eventBus *types.EventBus,
	logger log.Logger,
)

Source from the content-addressed store, hash-verified

267}
268
269func createAndStartIndexerService(
270 config *cfg.Config,
271 chainID string,
272 dbProvider DBProvider,
273 eventBus *types.EventBus,
274 logger log.Logger,
275) (*txindex.IndexerService, txindex.TxIndexer, indexer.BlockIndexer, error) {
276 var (
277 txIndexer txindex.TxIndexer
278 blockIndexer indexer.BlockIndexer
279 )
280
281 switch config.TxIndex.Indexer {
282 case "kv":
283 store, err := dbProvider(&DBContext{"tx_index", config})
284 if err != nil {
285 return nil, nil, nil, err
286 }
287
288 txIndexer = kv.NewTxIndex(store)
289 blockIndexer = blockidxkv.New(dbm.NewPrefixDB(store, []byte("block_events")))
290
291 case "psql":
292 if config.TxIndex.PsqlConn == "" {
293 return nil, nil, nil, errors.New(`no psql-conn is set for the "psql" indexer`)
294 }
295 es, err := psql.NewEventSink(config.TxIndex.PsqlConn, chainID)
296 if err != nil {
297 return nil, nil, nil, fmt.Errorf("creating psql indexer: %w", err)
298 }
299 txIndexer = es.TxIndexer()
300 blockIndexer = es.BlockIndexer()
301
302 default:
303 txIndexer = &null.TxIndex{}
304 blockIndexer = &blockidxnull.BlockerIndexer{}
305 }
306
307 indexerService := txindex.NewIndexerService(txIndexer, blockIndexer, eventBus, false)
308 indexerService.SetLogger(logger.With("module", "txindex"))
309
310 if err := indexerService.Start(); err != nil {
311 return nil, nil, nil, err
312 }
313
314 return indexerService, txIndexer, blockIndexer, nil
315}
316
317func doHandshake(
318 stateStore sm.Store,

Callers 1

NewNodeFunction · 0.70

Calls 8

TxIndexerMethod · 0.95
BlockIndexerMethod · 0.95
NewTxIndexFunction · 0.92
NewEventSinkFunction · 0.92
NewIndexerServiceFunction · 0.92
SetLoggerMethod · 0.65
WithMethod · 0.65
StartMethod · 0.65

Tested by

no test coverage detected