// TODO: set myself as SPV?
func NewMonitor(cfg *config.Config, db *gorm.DB) *monitor {
//TODO: for test
- cfg.CheckFreqSeconds = 1
+ cfg.CheckFreqSeconds = 5
- dir, err := makePath()
+ dbPath, err := makePath()
if err != nil {
log.Fatal(err)
}
P2P: vaporCfg.DefaultP2PConfig(),
Federation: vaporCfg.DefaultFederationConfig(),
}
- nodeCfg.DBPath = dir
+ nodeCfg.DBPath = dbPath
nodeCfg.ChainID = "mainnet"
discvCh := make(chan *dht.Node)
privKey, err := signlib.NewPrivKey()
log.Fatal(err)
}
+ protocolReactor, ok := m.sw.GetReactors()["PROTOCOL"]
+ if !ok {
+ log.Fatal("protocolReactor not found")
+ }
+
bestHeight := uint64(0)
ticker := time.NewTicker(time.Duration(m.cfg.CheckFreqSeconds) * time.Second)
for ; true; <-ticker.C {
for _, peer := range m.sw.GetPeers().List() {
peer.Start()
- }
-
- protocolReactor, ok := m.sw.GetReactors()["PROTOCOL"]
- if !ok {
- continue
+ protocolReactor.AddPeer(peer)
}
for _, peer := range m.sw.GetPeers().List() {
- protocolReactor.AddPeer(peer)
-
p := peers.GetPeer(peer.ID())
if p == nil {
continue
}
log.Info("bestHeight", bestHeight)
+ for _, peer := range m.sw.GetPeers().List() {
+ p := peers.GetPeer(peer.ID())
+ if p == nil {
+ continue
+ }
+
+ peers.RemovePeer(p.ID())
+ }
+
// msg := struct{ msgs.BlockchainMessage }{&msgs.GetBlockMessage{Height: bestHeight + 1}}
// for _, peer := range m.sw.GetPeers().List() {
// peers.SendMsg(peer.ID(), msgs.BlockchainChannel, msg)