config/indexer: custom event indexing (#6411)

This commit is contained in:
JayT106
2021-05-27 10:44:46 -04:00
committed by GitHub
parent 76a773d24c
commit 711a718162
28 changed files with 1766 additions and 283 deletions
+9 -11
View File
@@ -15,6 +15,7 @@ import (
"github.com/rs/cors"
dbm "github.com/tendermint/tm-db"
_ "github.com/lib/pq" // provide the psql db driver
abci "github.com/tendermint/tendermint/abci/types"
cfg "github.com/tendermint/tendermint/config"
cs "github.com/tendermint/tendermint/consensus"
@@ -83,8 +84,7 @@ type Node struct {
evidencePool *evidence.Pool // tracking evidence
proxyApp proxy.AppConns // connection to the application
rpcListeners []net.Listener // rpc servers
txIndexer indexer.TxIndexer
blockIndexer indexer.BlockIndexer
eventSinks []indexer.EventSink
indexerService *indexer.Service
prometheusSrv *http.Server
}
@@ -166,7 +166,7 @@ func NewNode(config *cfg.Config,
return nil, err
}
indexerService, txIndexer, blockIndexer, err := createAndStartIndexerService(config, dbProvider, eventBus, logger)
indexerService, eventSinks, err := createAndStartIndexerService(config, dbProvider, eventBus, logger, genDoc.ChainID)
if err != nil {
return nil, err
}
@@ -232,7 +232,7 @@ func NewNode(config *cfg.Config,
// TODO: Fetch and provide real options and do proper p2p bootstrapping.
// TODO: Use a persistent peer database.
nodeInfo, err := makeNodeInfo(config, nodeKey, txIndexer, genDoc, state)
nodeInfo, err := makeNodeInfo(config, nodeKey, eventSinks, genDoc, state)
if err != nil {
return nil, err
}
@@ -437,10 +437,9 @@ func NewNode(config *cfg.Config,
evidenceReactor: evReactor,
evidencePool: evPool,
proxyApp: proxyApp,
txIndexer: txIndexer,
indexerService: indexerService,
blockIndexer: blockIndexer,
eventBus: eventBus,
eventSinks: eventSinks,
}
node.BaseService = *service.NewBaseService(logger, "Node", node)
@@ -810,8 +809,7 @@ func (n *Node) ConfigureRPC() (*rpccore.Environment, error) {
P2PTransport: n,
GenDoc: n.genesisDoc,
TxIndexer: n.txIndexer,
BlockIndexer: n.blockIndexer,
EventSinks: n.eventSinks,
ConsensusReactor: n.consensusReactor,
EventBus: n.eventBus,
Mempool: n.mempool,
@@ -1040,9 +1038,9 @@ func (n *Node) Config() *cfg.Config {
return n.config
}
// TxIndexer returns the Node's TxIndexer.
func (n *Node) TxIndexer() indexer.TxIndexer {
return n.txIndexer
// EventSinks returns the Node's event indexing sinks.
func (n *Node) EventSinks() []indexer.EventSink {
return n.eventSinks
}
//------------------------------------------------------------------------------