mirror of
https://github.com/fluencelabs/tendermint
synced 2025-04-25 06:42:16 +00:00
so they can be used in rpc/core/types/responses.go. ``` So, it seems like we could use the actual structs here, but we don't want to have to import consensus to get them, as then clients are importing too much crap. So probably we should move some types from consensus into consensus/types so we can import. Will these raw messages be identical to: type ResultDumpConsensusState struct { RoundState cstypes.RoundState PeerRoundStates map[string]cstypes.PeerRoundState } ``` https://github.com/tendermint/tendermint/pull/724#discussion_r143598193
105 lines
2.2 KiB
Go
105 lines
2.2 KiB
Go
package core
|
|
|
|
import (
|
|
crypto "github.com/tendermint/go-crypto"
|
|
"github.com/tendermint/tendermint/consensus"
|
|
cstypes "github.com/tendermint/tendermint/consensus/types"
|
|
p2p "github.com/tendermint/tendermint/p2p"
|
|
"github.com/tendermint/tendermint/proxy"
|
|
sm "github.com/tendermint/tendermint/state"
|
|
"github.com/tendermint/tendermint/state/txindex"
|
|
"github.com/tendermint/tendermint/types"
|
|
"github.com/tendermint/tmlibs/log"
|
|
)
|
|
|
|
//----------------------------------------------
|
|
// These interfaces are used by RPC and must be thread safe
|
|
|
|
type Consensus interface {
|
|
GetState() *sm.State
|
|
GetValidators() (int, []*types.Validator)
|
|
GetRoundState() *cstypes.RoundState
|
|
}
|
|
|
|
type P2P interface {
|
|
Listeners() []p2p.Listener
|
|
Peers() p2p.IPeerSet
|
|
NumPeers() (outbound, inbound, dialig int)
|
|
NodeInfo() *p2p.NodeInfo
|
|
IsListening() bool
|
|
DialSeeds(*p2p.AddrBook, []string) error
|
|
}
|
|
|
|
//----------------------------------------------
|
|
// These package level globals come with setters
|
|
// that are expected to be called only once, on startup
|
|
|
|
var (
|
|
// external, thread safe interfaces
|
|
eventSwitch types.EventSwitch
|
|
proxyAppQuery proxy.AppConnQuery
|
|
|
|
// interfaces defined in types and above
|
|
blockStore types.BlockStore
|
|
mempool types.Mempool
|
|
consensusState Consensus
|
|
p2pSwitch P2P
|
|
|
|
// objects
|
|
pubKey crypto.PubKey
|
|
genDoc *types.GenesisDoc // cache the genesis structure
|
|
addrBook *p2p.AddrBook
|
|
txIndexer txindex.TxIndexer
|
|
consensusReactor *consensus.ConsensusReactor
|
|
|
|
logger log.Logger
|
|
)
|
|
|
|
func SetEventSwitch(evsw types.EventSwitch) {
|
|
eventSwitch = evsw
|
|
}
|
|
|
|
func SetBlockStore(bs types.BlockStore) {
|
|
blockStore = bs
|
|
}
|
|
|
|
func SetMempool(mem types.Mempool) {
|
|
mempool = mem
|
|
}
|
|
|
|
func SetConsensusState(cs Consensus) {
|
|
consensusState = cs
|
|
}
|
|
|
|
func SetSwitch(sw P2P) {
|
|
p2pSwitch = sw
|
|
}
|
|
|
|
func SetPubKey(pk crypto.PubKey) {
|
|
pubKey = pk
|
|
}
|
|
|
|
func SetGenesisDoc(doc *types.GenesisDoc) {
|
|
genDoc = doc
|
|
}
|
|
|
|
func SetAddrBook(book *p2p.AddrBook) {
|
|
addrBook = book
|
|
}
|
|
|
|
func SetProxyAppQuery(appConn proxy.AppConnQuery) {
|
|
proxyAppQuery = appConn
|
|
}
|
|
|
|
func SetTxIndexer(indexer txindex.TxIndexer) {
|
|
txIndexer = indexer
|
|
}
|
|
|
|
func SetConsensusReactor(conR *consensus.ConsensusReactor) {
|
|
consensusReactor = conR
|
|
}
|
|
|
|
func SetLogger(l log.Logger) {
|
|
logger = l
|
|
}
|