OSDN Git Service

config networkID
[bytom/vapor.git] / toolbar / precog / monitor / monitor.go
index 2794b88..e11a657 100644 (file)
@@ -2,8 +2,10 @@ package monitor
 
 import (
        // "encoding/binary"
-       "io/ioutil"
+       // "io/ioutil"
+       "fmt"
        "os"
+       "strings"
        "time"
 
        "github.com/jinzhu/gorm"
@@ -22,8 +24,6 @@ import (
        "github.com/vapor/toolbar/precog/database/orm"
 )
 
-const vaporNetID = 10817814959495988245
-
 type monitor struct {
        cfg     *config.Config
        db      *gorm.DB
@@ -31,17 +31,12 @@ type monitor struct {
 }
 
 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,
@@ -64,6 +59,7 @@ func (m *monitor) Run() {
 
 // 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(),
@@ -71,6 +67,7 @@ func (m *monitor) updateBootstrapNodes() {
                        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{
@@ -82,6 +79,7 @@ func (m *monitor) updateBootstrapNodes() {
                        continue
                }
        }
+       m.nodeCfg.P2P.Seeds = strings.Join(seeds, ",")
 }
 
 // TODO:
@@ -89,6 +87,8 @@ func (m *monitor) updateBootstrapNodes() {
 // /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 {
@@ -105,13 +105,13 @@ func (m *monitor) makeSwitch() (*p2p.Switch, error) {
        }
 
        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 {