diff --git a/go.mod b/go.mod index 68a0c1e34..c7723b096 100644 --- a/go.mod +++ b/go.mod @@ -35,8 +35,8 @@ require ( github.com/stretchr/testify v1.7.0 github.com/tendermint/tm-db v0.6.4 github.com/vektra/mockery/v2 v2.9.0 - golang.org/x/crypto v0.0.0-20210314154223-e6e6c4f2bb5b - golang.org/x/net v0.0.0-20210405180319-a5a99cb37ef4 + golang.org/x/crypto v0.0.0-20210513164829-c07d793c2f9a + golang.org/x/net v0.0.0-20210428140749-89ef3d95e781 golang.org/x/sync v0.0.0-20210220032951-036812b2e83c // indirect google.golang.org/grpc v1.40.0 gopkg.in/check.v1 v1.0.0-20200902074654-038fdea0a05b // indirect diff --git a/inspect/rpc/rpc.go b/inspect/rpc/rpc.go index c33213838..b61a8c624 100644 --- a/inspect/rpc/rpc.go +++ b/inspect/rpc/rpc.go @@ -8,6 +8,7 @@ import ( "github.com/rs/cors" "github.com/tendermint/tendermint/config" + "github.com/tendermint/tendermint/internal/consensus" "github.com/tendermint/tendermint/libs/log" "github.com/tendermint/tendermint/libs/pubsub" "github.com/tendermint/tendermint/rpc/core" @@ -28,11 +29,11 @@ type Server struct { // Routes returns the set of routes used by the Inspect server. func Routes(cfg config.RPCConfig, s state.Store, bs state.BlockStore, es []indexer.EventSink) core.RoutesMap { env := &core.Environment{ - Config: cfg, - EventSinks: es, - StateStore: s, - BlockStore: bs, - WaitSyncChecker: waitSyncCheckerImpl{}, + Config: cfg, + EventSinks: es, + StateStore: s, + BlockStore: bs, + ConsensusReactor: waitSyncCheckerImpl{}, } return core.RoutesMap{ "blockchain": server.NewRPCFunc(env.BlockchainInfo, "minHeight,maxHeight", true), @@ -93,6 +94,10 @@ func (_ waitSyncCheckerImpl) WaitSync() bool { return false } +func (_ waitSyncCheckerImpl) GetPeerState(peerID types.NodeID) (*consensus.PeerState, bool) { + return nil, false +} + // ListenAndServe listens on the address specified in srv.Addr and handles any // incoming requests over HTTP using the Inspect rpc handler specified on the server. func (srv *Server) ListenAndServe(ctx context.Context) error { diff --git a/node/node.go b/node/node.go index c9ba84fce..9cb5315bc 100644 --- a/node/node.go +++ b/node/node.go @@ -441,17 +441,16 @@ func makeNode(config *cfg.Config, ProxyAppQuery: proxyApp.Query(), ProxyAppMempool: proxyApp.Mempool(), - StateStore: stateStore, - BlockStore: blockStore, - EvidencePool: evPool, - ConsensusState: csState, - - WaitSyncChecker: csReactor, - BlockSyncReactor: bcReactor.(cs.BlockSyncReactor), - - P2PPeers: sw, - PeerManager: peerManager, + StateStore: stateStore, + BlockStore: blockStore, + EvidencePool: evPool, + ConsensusState: csState, + ConsensusReactor: csReactor, + BlockSyncReactor: bcReactor.(cs.BlockSyncReactor), + + P2PPeers: sw, + PeerManager: peerManager, GenDoc: genDoc, EventSinks: eventSinks, @@ -459,17 +458,6 @@ func makeNode(config *cfg.Config, Mempool: mp, Logger: logger.With("module", "rpc"), Config: *config.RPC, - - P2PPeers: sw, - PeerManager: peerManager, - - GenDoc: genDoc, - EventSinks: eventSinks, - ConsensusReactor: csReactor, - EventBus: eventBus, - Mempool: mp, - Logger: logger.With("module", "rpc"), - Config: *config.RPC, }, } diff --git a/rpc/core/env.go b/rpc/core/env.go index fa2fd98dd..7069bc4d4 100644 --- a/rpc/core/env.go +++ b/rpc/core/env.go @@ -58,8 +58,9 @@ type peers interface { Peers() p2p.IPeerSet } -type WaitSyncChecker interface { +type consensusReactor interface { WaitSync() bool + GetPeerState(peerID types.NodeID) (*consensus.PeerState, bool) } type peerManager interface { @@ -76,21 +77,19 @@ type Environment struct { ProxyAppMempool proxy.AppConnMempool // interfaces defined in types and above - StateStore sm.Store - BlockStore sm.BlockStore - EvidencePool sm.EvidencePool - ConsensusState Consensus - WaitSyncChecker WaitSyncChecker - P2PPeers peers - P2PTransport transport - + StateStore sm.Store + BlockStore sm.BlockStore + EvidencePool sm.EvidencePool + ConsensusState consensusState + ConsensusReactor consensusReactor + P2PPeers peers + // Legacy p2p stack P2PTransport transport // interfaces for new p2p interfaces PeerManager peerManager - // objects PubKey crypto.PubKey GenDoc *types.GenesisDoc // cache the genesis structure @@ -206,7 +205,7 @@ func (env *Environment) getHeight(latestHeight int64, heightPtr *int64) (int64, } func (env *Environment) latestUncommittedHeight() int64 { - nodeIsSyncing := env.WaitSyncChecker.WaitSync() + nodeIsSyncing := env.ConsensusReactor.WaitSync() if nodeIsSyncing { return env.BlockStore.Height() } diff --git a/rpc/core/status.go b/rpc/core/status.go index a21b15859..815ab37f5 100644 --- a/rpc/core/status.go +++ b/rpc/core/status.go @@ -70,7 +70,7 @@ func (env *Environment) Status(ctx *rpctypes.Context) (*ctypes.ResultStatus, err EarliestBlockHeight: earliestBlockHeight, EarliestBlockTime: time.Unix(0, earliestBlockTimeNano), MaxPeerBlockHeight: env.BlockSyncReactor.GetMaxPeerBlockHeight(), - CatchingUp: env.WaitSyncChecker.WaitSync(), + CatchingUp: env.ConsensusReactor.WaitSync(), TotalSyncedTime: env.BlockSyncReactor.GetTotalSyncedTime(), RemainingTime: env.BlockSyncReactor.GetRemainingSyncTime(), },