mirror of
https://github.com/tendermint/tendermint.git
synced 2026-01-04 20:23:59 +00:00
types/events+evidence: emit events + metrics on evidence validation (#7802)
* event: Added Events after evidence validation; evidence: refactored AddEvidence Added context and Metrics as parameter for the pool constructor * evidence: pushed event firing into evidence pool and added metrics to represent the size of the evpool * state: fixed parameters of evpool mock functions * evidence: added test to confirm events are generated * Removed obsolete EvidenceEventPublisher interface * evidence: pool removed error on missing eventbus
This commit is contained in:
committed by
GitHub
parent
ce898a738c
commit
e80541a251
@@ -20,6 +20,7 @@ import (
|
||||
"github.com/tendermint/tendermint/internal/blocksync"
|
||||
"github.com/tendermint/tendermint/internal/consensus"
|
||||
"github.com/tendermint/tendermint/internal/eventbus"
|
||||
"github.com/tendermint/tendermint/internal/evidence"
|
||||
"github.com/tendermint/tendermint/internal/mempool"
|
||||
"github.com/tendermint/tendermint/internal/p2p"
|
||||
"github.com/tendermint/tendermint/internal/p2p/pex"
|
||||
@@ -264,7 +265,7 @@ func makeNode(
|
||||
}
|
||||
|
||||
evReactor, evPool, err := createEvidenceReactor(ctx,
|
||||
cfg, dbProvider, stateDB, blockStore, peerManager, router, logger,
|
||||
cfg, dbProvider, stateDB, blockStore, peerManager, router, logger, nodeMetrics.evidence, eventBus,
|
||||
)
|
||||
if err != nil {
|
||||
return nil, combineCloseError(err, makeCloser(closers))
|
||||
@@ -689,6 +690,7 @@ type nodeMetrics struct {
|
||||
proxy *proxy.Metrics
|
||||
state *sm.Metrics
|
||||
statesync *statesync.Metrics
|
||||
evidence *evidence.Metrics
|
||||
}
|
||||
|
||||
// metricsProvider returns consensus, p2p, mempool, state, statesync Metrics.
|
||||
@@ -707,6 +709,7 @@ func defaultMetricsProvider(cfg *config.InstrumentationConfig) metricsProvider {
|
||||
proxy: proxy.PrometheusMetrics(cfg.Namespace, "chain_id", chainID),
|
||||
state: sm.PrometheusMetrics(cfg.Namespace, "chain_id", chainID),
|
||||
statesync: statesync.PrometheusMetrics(cfg.Namespace, "chain_id", chainID),
|
||||
evidence: evidence.PrometheusMetrics(cfg.Namespace, "chain_id", chainID),
|
||||
}
|
||||
}
|
||||
return &nodeMetrics{
|
||||
@@ -717,6 +720,7 @@ func defaultMetricsProvider(cfg *config.InstrumentationConfig) metricsProvider {
|
||||
proxy: proxy.NopMetrics(),
|
||||
state: sm.NopMetrics(),
|
||||
statesync: statesync.NopMetrics(),
|
||||
evidence: evidence.NopMetrics(),
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -298,7 +298,7 @@ func TestCreateProposalBlock(t *testing.T) {
|
||||
// Make EvidencePool
|
||||
evidenceDB := dbm.NewMemDB()
|
||||
blockStore := store.NewBlockStore(dbm.NewMemDB())
|
||||
evidencePool, err := evidence.NewPool(logger, evidenceDB, stateStore, blockStore)
|
||||
evidencePool, err := evidence.NewPool(logger, evidenceDB, stateStore, blockStore, evidence.NopMetrics())
|
||||
require.NoError(t, err)
|
||||
|
||||
// fill the evidence pool with more evidence
|
||||
@@ -357,7 +357,7 @@ func TestCreateProposalBlock(t *testing.T) {
|
||||
}
|
||||
assert.EqualValues(t, partSetFromHeader.ByteSize(), partSet.ByteSize())
|
||||
|
||||
err = blockExec.ValidateBlock(state, block)
|
||||
err = blockExec.ValidateBlock(ctx, state, block)
|
||||
assert.NoError(t, err)
|
||||
}
|
||||
|
||||
|
||||
@@ -219,6 +219,8 @@ func createEvidenceReactor(
|
||||
peerManager *p2p.PeerManager,
|
||||
router *p2p.Router,
|
||||
logger log.Logger,
|
||||
metrics *evidence.Metrics,
|
||||
eventBus *eventbus.EventBus,
|
||||
) (*evidence.Reactor, *evidence.Pool, error) {
|
||||
evidenceDB, err := dbProvider(&config.DBContext{ID: "evidence", Config: cfg})
|
||||
if err != nil {
|
||||
@@ -227,11 +229,13 @@ func createEvidenceReactor(
|
||||
|
||||
logger = logger.With("module", "evidence")
|
||||
|
||||
evidencePool, err := evidence.NewPool(logger, evidenceDB, sm.NewStore(stateDB), blockStore)
|
||||
evidencePool, err := evidence.NewPool(logger, evidenceDB, sm.NewStore(stateDB), blockStore, metrics)
|
||||
if err != nil {
|
||||
return nil, nil, fmt.Errorf("creating evidence pool: %w", err)
|
||||
}
|
||||
|
||||
evidencePool.SetEventBus(eventBus)
|
||||
|
||||
evidenceReactor, err := evidence.NewReactor(
|
||||
ctx,
|
||||
logger,
|
||||
@@ -295,7 +299,6 @@ func createConsensusReactor(
|
||||
// Services which will be publishing and/or subscribing for messages (events)
|
||||
// consensusReactor will set it on consensusState and blockExecutor.
|
||||
reactor.SetEventBus(eventBus)
|
||||
|
||||
return reactor, consensusState, nil
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user