protocolReactor := NewProtocolReactor(chain, txPool, manager.sw, manager.blockKeeper, manager.fetcher, manager.peers, manager.newPeerCh, manager.txSyncCh, manager.dropPeerCh)
manager.sw.AddReactor("PROTOCOL", protocolReactor)
+ // Create & add listener
+ p, address := protocolAndAddress(manager.config.P2P.ListenAddress)
+ l := p2p.NewDefaultListener(p, address, manager.config.P2P.SkipUPNP, nil)
+ manager.sw.AddListener(l)
+ manager.sw.SetNodeInfo(manager.makeNodeInfo())
+ manager.sw.SetNodePrivKey(manager.privKey)
+
// Optionally, start the pex reactor
//var addrBook *p2p.AddrBook
if config.P2P.PexReactor {
}
func (sm *SyncManager) netStart() error {
- // Create & add listener
- p, address := protocolAndAddress(sm.config.P2P.ListenAddress)
-
- l := p2p.NewDefaultListener(p, address, sm.config.P2P.SkipUPNP, nil)
-
- sm.sw.AddListener(l)
-
// Start the switch
- sm.sw.SetNodeInfo(sm.makeNodeInfo())
- sm.sw.SetNodePrivKey(sm.privKey)
_, err := sm.sw.Start()
if err != nil {
return err
for {
select {
case newTx := <-newTxCh:
- peers,err:=sm.peers.BroadcastTx(newTx)
+ peers, err := sm.peers.BroadcastTx(newTx)
if err != nil {
log.Errorf("Broadcast new tx error. %v", err)
return
"fmt"
"math/rand"
"net"
+ "strings"
"sync"
"time"
- "strings"
log "github.com/sirupsen/logrus"
crypto "github.com/tendermint/go-crypto"
type Switch struct {
cmn.BaseService
- config *cfg.P2PConfig
- peerConfig *PeerConfig
- listeners []Listener
- reactors map[string]Reactor
- chDescs []*ChannelDescriptor
- reactorsByCh map[byte]Reactor
- peers *PeerSet
- dialing *cmn.CMap
- nodeInfo *NodeInfo // our node info
- nodePrivKey crypto.PrivKeyEd25519 // our node privkey
- bannedPeer map[string]time.Time
- db dbm.DB
- mtx sync.Mutex
+ config *cfg.P2PConfig
+ peerConfig *PeerConfig
+ listeners []Listener
+ reactors map[string]Reactor
+ chDescs []*ChannelDescriptor
+ reactorsByCh map[byte]Reactor
+ peers *PeerSet
+ dialing *cmn.CMap
+ nodeInfo *NodeInfo // our node info
+ nodePrivKey crypto.PrivKeyEd25519 // our node privkey
+ bannedPeer map[string]time.Time
+ db dbm.DB
+ mtx sync.Mutex
filterConnByAddr func(net.Addr) error
filterConnByPubKey func(crypto.PubKeyEd25519) error
addrBook.Save()
}
- // permute the list, dial them in random order.
- //perm := rand.Perm(len(netAddrs))
- //for i := 0; i < len(perm); i++ {
- // j := perm[i]
- // sw.dialSeed(netAddrs[j])
- //}
return nil
}