import (
// "encoding/binary"
- "io/ioutil"
+ // "io/ioutil"
+ "fmt"
"os"
+ "strings"
"time"
"github.com/jinzhu/gorm"
"github.com/vapor/toolbar/precog/database/orm"
)
-const vaporNetID = 10817814959495988245
-
type monitor struct {
cfg *config.Config
db *gorm.DB
}
func NewMonitor(cfg *config.Config, db *gorm.DB) *monitor {
- dirPath, err := ioutil.TempDir(".", "")
- if err != nil {
- log.Fatal(err)
- }
-
nodeCfg := &vaporCfg.Config{
BaseConfig: vaporCfg.DefaultBaseConfig(),
P2P: vaporCfg.DefaultP2PConfig(),
Federation: vaporCfg.DefaultFederationConfig(),
}
- nodeCfg.DBPath = dirPath
+ nodeCfg.DBPath = "vapor_precog_data"
return &monitor{
cfg: cfg,
// create or update: https://github.com/jinzhu/gorm/issues/1307
func (m *monitor) updateBootstrapNodes() {
+ var seeds []string
for _, node := range m.cfg.Nodes {
ormNode := &orm.Node{
PublicKey: node.PublicKey.String(),
Host: node.Host,
Port: node.Port,
}
+ seeds = append(seeds, fmt.Sprintf("%s:%d", node.Host, node.Port))
if err := m.db.Where(&orm.Node{PublicKey: ormNode.PublicKey}).
Assign(&orm.Node{
continue
}
}
+ m.nodeCfg.P2P.Seeds = strings.Join(seeds, ",")
}
// TODO:
// /home/gavin/work/go/src/github.com/vapor/
// p2p/test_util.go
// p2p/switch_test.go
+// syncManager
+// notificationMgr
func (m *monitor) discovery() {
sw, err := m.makeSwitch()
if err != nil {
}
l, listenAddr := p2p.GetListener(m.nodeCfg.P2P)
- discv, err := dht.NewDiscover(m.nodeCfg, swPrivKey, l.ExternalAddress().Port, vaporNetID)
+ discv, err := dht.NewDiscover(m.nodeCfg, swPrivKey, l.ExternalAddress().Port, m.cfg.NetworkID)
if err != nil {
return nil, err
}
lanDiscv := mdns.NewLANDiscover(mdns.NewProtocol(), int(l.ExternalAddress().Port))
- return p2p.NewSwitch(m.nodeCfg, discv, lanDiscv, l, swPrivKey, listenAddr, vaporNetID)
+ return p2p.NewSwitch(m.nodeCfg, discv, lanDiscv, l, swPrivKey, listenAddr, m.cfg.NetworkID)
}
func (m *monitor) monitorRountine() error {