eventbus: publish without contexts (#8369)

This commit is contained in:
Sam Kleinman
2022-04-18 16:28:31 -04:00
committed by GitHub
parent 889341152a
commit c372390fea
29 changed files with 256 additions and 280 deletions

View File

@@ -292,16 +292,32 @@ func makeNode(
blockSync := !onlyValidatorIsUs(state, pubKey)
waitSync := stateSync || blockSync
csReactor, csState, err := createConsensusReactor(ctx,
cfg, stateStore, blockExec, blockStore, mp, evPool,
privValidator, nodeMetrics.consensus, waitSync, eventBus,
peerManager, node.router.OpenChannel, logger,
csState, err := consensus.NewState(logger.With("module", "consensus"),
cfg.Consensus,
stateStore,
blockExec,
blockStore,
mp,
evPool,
eventBus,
consensus.StateMetrics(nodeMetrics.consensus),
consensus.SkipStateStoreBootstrap,
)
if err != nil {
return nil, combineCloseError(err, makeCloser(closers))
}
node.services = append(node.services, csReactor)
node.rpcEnv.ConsensusState = csState
csReactor := consensus.NewReactor(
logger,
csState,
node.router.OpenChannel,
peerManager.Subscribe,
eventBus,
waitSync,
nodeMetrics.consensus,
)
node.services = append(node.services, csReactor)
node.rpcEnv.ConsensusReactor = csReactor
// Create the blockchain reactor. Note, we do not start block sync if we're
@@ -370,6 +386,9 @@ func makeNode(
))
if cfg.Mode == config.ModeValidator {
if privValidator != nil {
csState.SetPrivValidator(ctx, privValidator)
}
node.rpcEnv.PubKey = pubKey
}

View File

@@ -231,56 +231,6 @@ func createEvidenceReactor(
return evidenceReactor, evidencePool, dbCloser, nil
}
func createConsensusReactor(
ctx context.Context,
cfg *config.Config,
store sm.Store,
blockExec *sm.BlockExecutor,
blockStore sm.BlockStore,
mp mempool.Mempool,
evidencePool *evidence.Pool,
privValidator types.PrivValidator,
csMetrics *consensus.Metrics,
waitSync bool,
eventBus *eventbus.EventBus,
peerManager *p2p.PeerManager,
chCreator p2p.ChannelCreator,
logger log.Logger,
) (*consensus.Reactor, *consensus.State, error) {
logger = logger.With("module", "consensus")
consensusState, err := consensus.NewState(ctx,
logger,
cfg.Consensus,
store,
blockExec,
blockStore,
mp,
evidencePool,
eventBus,
consensus.StateMetrics(csMetrics),
consensus.SkipStateStoreBootstrap,
)
if err != nil {
return nil, nil, err
}
if privValidator != nil && cfg.Mode == config.ModeValidator {
consensusState.SetPrivValidator(ctx, privValidator)
}
reactor := consensus.NewReactor(
logger,
consensusState,
chCreator,
peerManager.Subscribe,
eventBus,
waitSync,
csMetrics,
)
return reactor, consensusState, nil
}
func createPeerManager(
cfg *config.Config,
dbProvider config.DBProvider,