"math/rand"
"net"
- wire "github.com/tendermint/go-wire"
+ "github.com/tendermint/go-wire"
"github.com/tendermint/tmlibs/flowrate"
"github.com/vapor/consensus"
flag consensus.ServiceFlag
srcPeer *P2PPeer
- remoteNode *ChainManager
+ remoteNode *Manager
msgCh chan []byte
async bool
}
return p.flag
}
-func (p *P2PPeer) SetConnection(srcPeer *P2PPeer, node *ChainManager) {
+func (p *P2PPeer) SetConnection(srcPeer *P2PPeer, node *Manager) {
p.srcPeer = srcPeer
p.remoteNode = node
}
return &PeerSet{}
}
-func (ps *PeerSet) AddBannedPeer(string) error { return nil }
-func (ps *PeerSet) StopPeerGracefully(string) {}
+func (ps *PeerSet) IsBanned(peerID string, level byte, reason string) bool {
+ return false
+}
+
+func (ps *PeerSet) StopPeerGracefully(string) {}
type NetWork struct {
- nodes map[*ChainManager]P2PPeer
+ nodes map[*Manager]P2PPeer
}
func NewNetWork() *NetWork {
- return &NetWork{map[*ChainManager]P2PPeer{}}
+ return &NetWork{map[*Manager]P2PPeer{}}
}
-func (nw *NetWork) Register(node *ChainManager, addr, id string, flag consensus.ServiceFlag) {
+func (nw *NetWork) Register(node *Manager, addr, id string, flag consensus.ServiceFlag) {
peer := NewP2PPeer(addr, id, flag)
nw.nodes[node] = *peer
}
-func (nw *NetWork) HandsShake(nodeA, nodeB *ChainManager) (*P2PPeer, *P2PPeer, error) {
+func (nw *NetWork) HandsShake(nodeA, nodeB *Manager) (*P2PPeer, *P2PPeer, error) {
B2A, ok := nw.nodes[nodeA]
if !ok {
return nil, nil, errors.New("can't find nodeA's p2p peer on network")
nodeA.AddPeer(&A2B)
nodeB.AddPeer(&B2A)
-
+ nodeA.SendStatus(B2A.srcPeer)
+ nodeB.SendStatus(A2B.srcPeer)
A2B.setAsync(true)
B2A.setAsync(true)
return &B2A, &A2B, nil
return blocks
}
-func mockSync(blocks []*types.Block) *ChainManager {
- chain := mock.NewChain()
+func mockSync(blocks []*types.Block, mempool *mock.Mempool) *Manager {
+ chain := mock.NewChain(mempool)
peers := peers.NewPeerSet(NewPeerSet())
chain.SetBestBlockHeader(&blocks[len(blocks)-1].BlockHeader)
for _, block := range blocks {
chain.SetBlockByHeight(block.Height, block)
}
- return &ChainManager{
+ return &Manager{
chain: chain,
blockKeeper: newBlockKeeper(chain, peers),
peers: peers,
+ mempool: mempool,
+ txSyncCh: make(chan *txSyncMsg),
}
}