"check_frequency_minutes" : 30,
"seeds" : [
{
- "alias" : "seed1",
"xpub" : "f2767279cd01ed8793808e0542a18958e1a2f3a6b6fe5328ec79596a022bc6f085951a98a631917563f86bb91db9159dd2969ff9d690fc12b250baff2b6f6a1d",
"ip": "47.103.79.68",
"port": 56656
},
{
- "alias" : "seed2",
"xpub" : "c785deb76af14e918ea05eeab863288c48b16d1816621adf74ada868e8e3246780bf5206dc5a0e3efef0c119978e11ed75eca9d3b50846e37c55cf8d56717c4f",
"ip": "47.103.13.86",
"port": 56656
},
{
- "alias" : "seed3",
"xpub" : "22bc19ec65d4ee524c5130575ddff041e712dbb415740eae314fd3359aa3978319384cd3ded8c4125ca2774716d7285268ebf1d85091eef8e7ad03077857e7ab",
"ip": "47.102.193.119",
"port": 56656
},
{
- "alias" : "seed4",
"xpub" : "214c0e6827346e9fee1056c4c8b96cefd67b75ed1dead59e4e4e3eee8c1fe095dbe7a7fb61bb23b4ab66cde2a1c04466b8d3e8efa21cf7eee064c70fb1525b14",
"ip": "47.103.17.22",
"port": 56656
}
type Node struct {
- Alias string `json:"alias"`
XPub *chainkd.XPub `json:"xpub"`
PublicKey string `json:"public_key"`
IP string `json:"ip"`
log.WithFields(log.Fields{"new node": node}).Info("discover")
- if err := m.upSertNode(&config.Node{
+ if err := m.upsertNode(&config.Node{
PublicKey: node.ID.String(),
IP: node.IP.String(),
Port: node.TCP,
}); err != nil {
- log.WithFields(log.Fields{"node": node, "err": err}).Error("upSertNode")
+ log.WithFields(log.Fields{"node": node, "err": err}).Error("upsertNode")
} else {
m.discvMap[node.ID.String()] = node
}
var seeds []string
for _, node := range m.cfg.Nodes {
seeds = append(seeds, fmt.Sprintf("%s:%d", node.IP, node.Port))
- if err := m.upSertNode(&node); err != nil {
- log.WithFields(log.Fields{"node": node, "err": err}).Error("upSertNode")
+ if err := m.upsertNode(&node); err != nil {
+ log.WithFields(log.Fields{"node": node, "err": err}).Error("upsertNode")
}
}
m.nodeCfg.P2P.Seeds = strings.Join(seeds, ",")
)
// create or update: https://github.com/jinzhu/gorm/issues/1307
-func (m *monitor) upSertNode(node *config.Node) error {
+func (m *monitor) upsertNode(node *config.Node) error {
if node.XPub != nil {
node.PublicKey = fmt.Sprintf("%v", node.XPub.PublicKey().String())
}
return err
}
- if node.Alias != "" {
- ormNode.Alias = node.Alias
- }
if node.XPub != nil {
ormNode.Xpub = node.XPub.String()
}
ormNode.Port = node.Port
return m.db.Where(&orm.Node{PublicKey: ormNode.PublicKey}).
Assign(&orm.Node{
- Xpub: ormNode.Xpub,
- Alias: ormNode.Alias,
- IP: ormNode.IP,
- Port: ormNode.Port,
+ Xpub: ormNode.Xpub,
+ IP: ormNode.IP,
+ Port: ormNode.Port,
}).FirstOrCreate(ormNode).Error
}