Skip to content
Snippets Groups Projects
entrynodes.go 885 B
Newer Older
package autopeering

import (
	"encoding/base64"
	"strings"

	"github.com/iotaledger/autopeering-sim/peer"
capossele's avatar
capossele committed
	"github.com/iotaledger/autopeering-sim/peer/service"
	"github.com/iotaledger/goshimmer/packages/errors"
	"github.com/iotaledger/hive.go/parameter"
)

func parseEntryNodes() (result []*peer.Peer, err error) {
	for _, entryNodeDefinition := range strings.Fields(parameter.NodeConfig.GetString(CFG_ENTRY_NODES)) {
		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")
		}

capossele's avatar
capossele committed
		services := service.New()
		services.Update(service.PeeringKey, "udp", parts[1])

		result = append(result, peer.NewPeer(pubKey, services))