Skip to content
Snippets Groups Projects
Commit 2c95e07d authored by capossele's avatar capossele
Browse files

:wrench: fixes parser for entry nodes and logs

parent 832210dc
No related branches found
No related tags found
No related merge requests found
......@@ -11,6 +11,9 @@
# Output of the go coverage tool, specifically when used with LiteIDE
*.out
# Logs
logs/*
# Project files
.idea
......
......@@ -5,23 +5,24 @@ go 1.13
require (
github.com/dgraph-io/badger v1.6.0
github.com/dgrijalva/jwt-go v3.2.0+incompatible
github.com/dgryski/go-farm v0.0.0-20191112170834-c2139c5d712b // indirect
github.com/gdamore/tcell v1.2.0
github.com/go-zeromq/zmq4 v0.5.0
github.com/gdamore/tcell v1.3.0
github.com/go-zeromq/zmq4 v0.6.2
github.com/google/open-location-code/go v0.0.0-20190903173953-119bc96a3a51
github.com/gorilla/websocket v1.4.1
github.com/iotaledger/autopeering-sim v0.0.0-20191120103907-203d7715f04c
github.com/iotaledger/autopeering-sim v0.0.0-20191121125328-c607091f6bc8
github.com/iotaledger/hive.go v0.0.0-20191118130432-89eebe8fe8eb
github.com/iotaledger/iota.go v1.0.0-beta.9
github.com/iotaledger/iota.go v1.0.0-beta.10
github.com/labstack/echo v3.3.10+incompatible
github.com/lucasb-eyer/go-colorful v1.0.3 // indirect
github.com/magiconair/properties v1.8.1
github.com/mattn/go-colorable v0.1.4 // indirect
github.com/mattn/go-isatty v0.0.10 // indirect
github.com/mattn/go-runewidth v0.0.6 // indirect
github.com/pkg/errors v0.8.1
github.com/rivo/tview v0.0.0-20190829161255-f8bc69b90341
go.uber.org/atomic v1.5.1 // indirect
go.uber.org/multierr v1.4.0 // indirect
go.uber.org/zap v1.13.0 // indirect
golang.org/x/crypto v0.0.0-20190829043050-9756ffdc2472
github.com/rivo/tview v0.0.0-20191018125527-685bf6da76c2
github.com/valyala/fasttemplate v1.1.0 // indirect
golang.org/x/crypto v0.0.0-20191119213627-4f8c1d86b1ba
golang.org/x/net v0.0.0-20191119073136-fc4aabc6c914
golang.org/x/sys v0.0.0-20191119195528-f068ffe820e4 // indirect
golang.org/x/tools v0.0.0-20191120001058-ad01d5993d97 // indirect
golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e // indirect
golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898 // indirect
)
This diff is collapsed.
......@@ -8,7 +8,6 @@ import (
"net"
"net/http"
"strconv"
"strings"
"github.com/iotaledger/autopeering-sim/discover"
"github.com/iotaledger/autopeering-sim/logger"
......@@ -16,24 +15,24 @@ import (
"github.com/iotaledger/autopeering-sim/selection"
"github.com/iotaledger/autopeering-sim/server"
"github.com/iotaledger/autopeering-sim/transport"
"github.com/iotaledger/goshimmer/packages/errors"
"github.com/iotaledger/goshimmer/packages/node"
"github.com/iotaledger/goshimmer/plugins/autopeering/parameters"
"github.com/iotaledger/goshimmer/plugins/gossip"
)
var (
PLUGIN = node.NewPlugin("Auto Peering", node.Enabled, configure, run)
close = make(chan struct{}, 1)
srv *server.Server
Discovery *discover.Protocol
Selection *selection.Protocol
PLUGIN = node.NewPlugin("Auto Peering", node.Enabled, configure, run)
debugLevel = "debug"
close = make(chan struct{}, 1)
srv *server.Server
Discovery *discover.Protocol
Selection *selection.Protocol
)
const defaultZLC = `{
"level": "info",
"development": false,
"outputPaths": ["stdout"],
"outputPaths": ["./logs/autopeering.log"],
"errorOutputPaths": ["stderr"],
"encoding": "console",
"encoderConfig": {
......@@ -53,25 +52,24 @@ const defaultZLC = `{
func start() {
var (
//listenAddr = "0.0.0.0:14626" //flag.String("addr", "127.0.0.1:14626", "listen address")
//gossipAddr = "127.0.0.1:14666"
masterPeer = "" //flag.String("master", "", "master node as 'pubKey@address' where pubKey is in Base64")
err error
)
host := getMyIP()
host := *parameters.ADDRESS.Value
localhost := host
apPort := strconv.Itoa(*parameters.PORT.Value)
gossipPort := strconv.Itoa(*gossip.PORT.Value)
if host == "0.0.0.0" {
host = getMyIP()
}
listenAddr := host + ":" + apPort
gossipAddr := host + ":" + gossipPort
logger := logger.NewLogger(defaultZLC, "debug")
defer func() { _ = logger.Sync() }() // ignore the returned error
logger := logger.NewLogger(defaultZLC, debugLevel)
logger.Debug(host)
defer func() { _ = logger.Sync() }() // ignore the returned error
addr, err := net.ResolveUDPAddr("udp", listenAddr)
addr, err := net.ResolveUDPAddr("udp", localhost+":"+apPort)
if err != nil {
log.Fatalf("ResolveUDPAddr: %v", err)
}
......@@ -81,12 +79,12 @@ func start() {
}
defer conn.Close()
var masterPeers []*peer.Peer
master, err := parseMaster(masterPeer)
masterPeers := []*peer.Peer{}
master, err := parseEntryNodes()
if err != nil {
log.Printf("Ignoring master: %v\n", err)
log.Printf("Ignoring entry nodes: %v\n", err)
} else if master != nil {
masterPeers = []*peer.Peer{master}
masterPeers = master
}
// use the UDP connection for transport
......@@ -127,27 +125,28 @@ func start() {
defer Selection.Close()
id := base64.StdEncoding.EncodeToString(local.PublicKey())
fmt.Println("Discovery protocol started: ID=" + id + ", address=" + srv.LocalAddr())
a, b, _ := net.SplitHostPort(srv.LocalAddr())
logger.Info("Discovery protocol started: ID="+id+", address="+srv.LocalAddr(), a, b)
<-close
}
func parseMaster(s string) (*peer.Peer, error) {
if len(s) == 0 {
return nil, nil
}
parts := strings.Split(s, "@")
if len(parts) != 2 {
return nil, errors.New("parseMaster")
}
pubKey, err := base64.StdEncoding.DecodeString(parts[0])
if err != nil {
return nil, errors.Wrap(err, "parseMaster")
}
return peer.NewPeer(pubKey, parts[1]), nil
}
// func parseMaster(s string) (*peer.Peer, error) {
// if len(s) == 0 {
// return nil, nil
// }
// parts := strings.Split(s, "@")
// if len(parts) != 2 {
// return nil, errors.New("parseMaster")
// }
// pubKey, err := base64.StdEncoding.DecodeString(parts[0])
// if err != nil {
// return nil, errors.Wrap(err, "parseMaster")
// }
// return peer.NewPeer(pubKey, parts[1]), nil
// }
func getMyIP() string {
url := "https://api.ipify.org?format=text"
......
package autopeering
import (
"encoding/base64"
"strings"
"github.com/iotaledger/autopeering-sim/peer"
"github.com/iotaledger/goshimmer/packages/errors"
"github.com/iotaledger/goshimmer/plugins/autopeering/parameters"
)
func parseEntryNodes() (result []*peer.Peer, err error) {
for _, entryNodeDefinition := range strings.Fields(*parameters.ENTRY_NODES.Value) {
if entryNodeDefinition == "" {
continue
}
parts := strings.Split(entryNodeDefinition, "@")
if len(parts) != 2 {
return nil, errors.New("parseMaster")
}
pubKey, err := base64.StdEncoding.DecodeString(parts[0])
if err != nil {
return nil, errors.Wrap(err, "parseMaster")
}
result = append(result, peer.NewPeer(pubKey, parts[1]))
}
return result, nil
}
......@@ -4,8 +4,8 @@ import "github.com/iotaledger/goshimmer/packages/parameter"
var (
ADDRESS = parameter.AddString("AUTOPEERING/ADDRESS", "0.0.0.0", "address to bind for incoming peering requests")
ENTRY_NODES = parameter.AddString("AUTOPEERING/ENTRY_NODES", "7f7a876a4236091257e650da8dcf195fbe3cb625@159.69.158.51:14626", "list of trusted entry nodes for auto peering")
ENTRY_NODES = parameter.AddString("AUTOPEERING/ENTRY_NODES", "qLsSGVTFm3WLJmFgTntHJM/NoFcvN6LpZl2/bFMv2To=@116.202.49.178:14626", "list of trusted entry nodes for auto peering")
PORT = parameter.AddInt("AUTOPEERING/PORT", 14626, "tcp port for incoming peering requests")
ACCEPT_REQUESTS = parameter.AddBool("AUTOPEERING/ACCEPT_REQUESTS", true, "accept incoming autopeering requests")
SEND_REQUESTS = parameter.AddBool("AUTOPEERING/SEND_REQUESTS", true, "send autopeering requests")
)
\ No newline at end of file
)
......@@ -35,15 +35,13 @@ func configureLogging(plugin *node.Plugin) {
selection.Events.IncomingPeering.Attach(events.NewClosure(func(ev *selection.PeeringEvent) {
plugin.LogDebug("accepted neighbor added: " + ev.Peer.Address() + " / " + ev.Peer.String())
address, _, _ := net.SplitHostPort(ev.Peer.Address())
port := ev.Services["gossip"].Address
address, port, _ := net.SplitHostPort(ev.Services["gossip"].Address)
gossip.AddNeighbor(gossip.NewNeighbor(ev.Peer, address, port))
}))
selection.Events.OutgoingPeering.Attach(events.NewClosure(func(ev *selection.PeeringEvent) {
plugin.LogDebug("chosen neighbor added: " + ev.Peer.Address() + " / " + ev.Peer.String())
address, _, _ := net.SplitHostPort(ev.Peer.Address())
port := ev.Services["gossip"].Address
address, port, _ := net.SplitHostPort(ev.Services["gossip"].Address)
gossip.AddNeighbor(gossip.NewNeighbor(ev.Peer, address, port))
}))
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment