mirror of
https://github.com/tendermint/tendermint.git
synced 2026-07-19 22:42:24 +00:00
p2p: channel shim cleanup (#7129)
This commit is contained in:
+4
-26
@@ -19,7 +19,6 @@ import (
|
||||
"github.com/tendermint/tendermint/internal/consensus"
|
||||
"github.com/tendermint/tendermint/internal/mempool"
|
||||
"github.com/tendermint/tendermint/internal/p2p"
|
||||
"github.com/tendermint/tendermint/internal/p2p/pex"
|
||||
"github.com/tendermint/tendermint/internal/proxy"
|
||||
rpccore "github.com/tendermint/tendermint/internal/rpc/core"
|
||||
sm "github.com/tendermint/tendermint/internal/state"
|
||||
@@ -277,7 +276,7 @@ func makeNode(cfg *config.Config,
|
||||
makeCloser(closers))
|
||||
}
|
||||
|
||||
mpReactorShim, mpReactor, mp, err := createMempoolReactor(
|
||||
mpReactor, mp, err := createMempoolReactor(
|
||||
cfg, proxyApp, state, nodeMetrics.mempool, peerManager, router, logger,
|
||||
)
|
||||
if err != nil {
|
||||
@@ -285,7 +284,7 @@ func makeNode(cfg *config.Config,
|
||||
|
||||
}
|
||||
|
||||
evReactorShim, evReactor, evPool, err := createEvidenceReactor(
|
||||
evReactor, evPool, err := createEvidenceReactor(
|
||||
cfg, dbProvider, stateDB, blockStore, peerManager, router, logger,
|
||||
)
|
||||
if err != nil {
|
||||
@@ -304,7 +303,7 @@ func makeNode(cfg *config.Config,
|
||||
sm.BlockExecutorWithMetrics(nodeMetrics.state),
|
||||
)
|
||||
|
||||
csReactorShim, csReactor, csState := createConsensusReactor(
|
||||
csReactor, csState := createConsensusReactor(
|
||||
cfg, state, blockExec, blockStore, mp, evPool,
|
||||
privValidator, nodeMetrics.consensus, stateSync || blockSync, eventBus,
|
||||
peerManager, router, consensusLogger,
|
||||
@@ -312,7 +311,7 @@ func makeNode(cfg *config.Config,
|
||||
|
||||
// Create the blockchain reactor. Note, we do not start block sync if we're
|
||||
// doing a state sync first.
|
||||
bcReactorShim, bcReactor, err := createBlockchainReactor(
|
||||
bcReactor, err := createBlockchainReactor(
|
||||
logger, state, blockExec, blockStore, csReactor,
|
||||
peerManager, router, blockSync && !stateSync, nodeMetrics.consensus,
|
||||
)
|
||||
@@ -335,7 +334,6 @@ func makeNode(cfg *config.Config,
|
||||
// we should clean this whole thing up. See:
|
||||
// https://github.com/tendermint/tendermint/issues/4644
|
||||
ssLogger := logger.With("module", "statesync")
|
||||
ssReactorShim := p2p.NewReactorShim(ssLogger, "StateSyncShim", statesync.ChannelShims)
|
||||
channels := makeChannelsFromShims(router, statesync.ChannelShims)
|
||||
|
||||
peerUpdates := peerManager.Subscribe()
|
||||
@@ -357,16 +355,6 @@ func makeNode(cfg *config.Config,
|
||||
nodeMetrics.statesync,
|
||||
)
|
||||
|
||||
// add the channel descriptors to both the transports
|
||||
// FIXME: This should be removed when the legacy p2p stack is removed and
|
||||
// transports can either be agnostic to channel descriptors or can be
|
||||
// declared in the constructor.
|
||||
transport.AddChannelDescriptors(mpReactorShim.GetChannels())
|
||||
transport.AddChannelDescriptors(bcReactorShim.GetChannels())
|
||||
transport.AddChannelDescriptors(csReactorShim.GetChannels())
|
||||
transport.AddChannelDescriptors(evReactorShim.GetChannels())
|
||||
transport.AddChannelDescriptors(ssReactorShim.GetChannels())
|
||||
|
||||
// Optionally, start the pex reactor
|
||||
//
|
||||
// TODO:
|
||||
@@ -382,9 +370,6 @@ func makeNode(cfg *config.Config,
|
||||
|
||||
var pexReactor service.Service
|
||||
|
||||
pexCh := pex.ChannelDescriptor()
|
||||
transport.AddChannelDescriptors([]*p2p.ChannelDescriptor{&pexCh})
|
||||
|
||||
pexReactor, err = createPEXReactor(logger, peerManager, router)
|
||||
if err != nil {
|
||||
return nil, combineCloseError(err, makeCloser(closers))
|
||||
@@ -501,13 +486,6 @@ func makeSeedNode(cfg *config.Config,
|
||||
|
||||
var pexReactor service.Service
|
||||
|
||||
// add the pex reactor
|
||||
// FIXME: we add channel descriptors to both the router and the transport but only the router
|
||||
// should be aware of channel info. We should remove this from transport once the legacy
|
||||
// p2p stack is removed.
|
||||
pexCh := pex.ChannelDescriptor()
|
||||
transport.AddChannelDescriptors([]*p2p.ChannelDescriptor{&pexCh})
|
||||
|
||||
pexReactor, err = createPEXReactor(logger, peerManager, router)
|
||||
if err != nil {
|
||||
return nil, combineCloseError(err, closer)
|
||||
|
||||
+13
-18
@@ -196,11 +196,10 @@ func createMempoolReactor(
|
||||
peerManager *p2p.PeerManager,
|
||||
router *p2p.Router,
|
||||
logger log.Logger,
|
||||
) (*p2p.ReactorShim, service.Service, mempool.Mempool, error) {
|
||||
) (service.Service, mempool.Mempool, error) {
|
||||
|
||||
logger = logger.With("module", "mempool", "version", cfg.Mempool.Version)
|
||||
channelShims := mempoolv0.GetChannelShims(cfg.Mempool)
|
||||
reactorShim := p2p.NewReactorShim(logger, "MempoolShim", channelShims)
|
||||
|
||||
channels := makeChannelsFromShims(router, channelShims)
|
||||
peerUpdates := peerManager.Subscribe()
|
||||
@@ -231,7 +230,7 @@ func createMempoolReactor(
|
||||
mp.EnableTxsAvailable()
|
||||
}
|
||||
|
||||
return reactorShim, reactor, mp, nil
|
||||
return reactor, mp, nil
|
||||
|
||||
case config.MempoolV1:
|
||||
mp := mempoolv1.NewTxMempool(
|
||||
@@ -257,10 +256,10 @@ func createMempoolReactor(
|
||||
mp.EnableTxsAvailable()
|
||||
}
|
||||
|
||||
return reactorShim, reactor, mp, nil
|
||||
return reactor, mp, nil
|
||||
|
||||
default:
|
||||
return nil, nil, nil, fmt.Errorf("unknown mempool version: %s", cfg.Mempool.Version)
|
||||
return nil, nil, fmt.Errorf("unknown mempool version: %s", cfg.Mempool.Version)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -272,18 +271,17 @@ func createEvidenceReactor(
|
||||
peerManager *p2p.PeerManager,
|
||||
router *p2p.Router,
|
||||
logger log.Logger,
|
||||
) (*p2p.ReactorShim, *evidence.Reactor, *evidence.Pool, error) {
|
||||
) (*evidence.Reactor, *evidence.Pool, error) {
|
||||
evidenceDB, err := dbProvider(&config.DBContext{ID: "evidence", Config: cfg})
|
||||
if err != nil {
|
||||
return nil, nil, nil, err
|
||||
return nil, nil, err
|
||||
}
|
||||
|
||||
logger = logger.With("module", "evidence")
|
||||
reactorShim := p2p.NewReactorShim(logger, "EvidenceShim", evidence.ChannelShims)
|
||||
|
||||
evidencePool, err := evidence.NewPool(logger, evidenceDB, sm.NewStore(stateDB), blockStore)
|
||||
if err != nil {
|
||||
return nil, nil, nil, fmt.Errorf("creating evidence pool: %w", err)
|
||||
return nil, nil, fmt.Errorf("creating evidence pool: %w", err)
|
||||
}
|
||||
|
||||
evidenceReactor := evidence.NewReactor(
|
||||
@@ -293,7 +291,7 @@ func createEvidenceReactor(
|
||||
evidencePool,
|
||||
)
|
||||
|
||||
return reactorShim, evidenceReactor, evidencePool, nil
|
||||
return evidenceReactor, evidencePool, nil
|
||||
}
|
||||
|
||||
func createBlockchainReactor(
|
||||
@@ -306,11 +304,10 @@ func createBlockchainReactor(
|
||||
router *p2p.Router,
|
||||
blockSync bool,
|
||||
metrics *consensus.Metrics,
|
||||
) (*p2p.ReactorShim, service.Service, error) {
|
||||
) (service.Service, error) {
|
||||
|
||||
logger = logger.With("module", "blockchain")
|
||||
|
||||
reactorShim := p2p.NewReactorShim(logger, "BlockchainShim", blocksync.ChannelShims)
|
||||
channels := makeChannelsFromShims(router, blocksync.ChannelShims)
|
||||
peerUpdates := peerManager.Subscribe()
|
||||
|
||||
@@ -320,10 +317,10 @@ func createBlockchainReactor(
|
||||
metrics,
|
||||
)
|
||||
if err != nil {
|
||||
return nil, nil, err
|
||||
return nil, err
|
||||
}
|
||||
|
||||
return reactorShim, reactor, nil
|
||||
return reactor, nil
|
||||
}
|
||||
|
||||
func createConsensusReactor(
|
||||
@@ -340,7 +337,7 @@ func createConsensusReactor(
|
||||
peerManager *p2p.PeerManager,
|
||||
router *p2p.Router,
|
||||
logger log.Logger,
|
||||
) (*p2p.ReactorShim, *consensus.Reactor, *consensus.State) {
|
||||
) (*consensus.Reactor, *consensus.State) {
|
||||
|
||||
consensusState := consensus.NewState(
|
||||
cfg.Consensus,
|
||||
@@ -356,8 +353,6 @@ func createConsensusReactor(
|
||||
consensusState.SetPrivValidator(privValidator)
|
||||
}
|
||||
|
||||
reactorShim := p2p.NewReactorShim(logger, "ConsensusShim", consensus.ChannelShims)
|
||||
|
||||
var (
|
||||
channels map[p2p.ChannelID]*p2p.Channel
|
||||
peerUpdates *p2p.PeerUpdates
|
||||
@@ -382,7 +377,7 @@ func createConsensusReactor(
|
||||
// consensusReactor will set it on consensusState and blockExecutor.
|
||||
reactor.SetEventBus(eventBus)
|
||||
|
||||
return reactorShim, reactor, consensusState
|
||||
return reactor, consensusState
|
||||
}
|
||||
|
||||
func createTransport(logger log.Logger, cfg *config.Config) *p2p.MConnTransport {
|
||||
|
||||
Reference in New Issue
Block a user