adding config params for each of the indra network environments. simnet, testnet and mainnet.
This commit is contained in:
@@ -3,6 +3,7 @@ package main
|
||||
import (
|
||||
"fmt"
|
||||
"github.com/Indra-Labs/indra"
|
||||
"github.com/Indra-Labs/indra/pkg/cfg"
|
||||
"github.com/Indra-Labs/indra/pkg/server"
|
||||
"github.com/cybriq/proc/pkg/app"
|
||||
"github.com/cybriq/proc/pkg/cmds"
|
||||
@@ -110,7 +111,7 @@ var commands = &cmds.Command{
|
||||
|
||||
log.I.Ln("running serve.")
|
||||
|
||||
if srv, err = server.New(server.DefaultServerConfig); check(err) {
|
||||
if srv, err = server.New(cfg.MainNetServerParams, server.DefaultConfig); check(err) {
|
||||
return err
|
||||
}
|
||||
|
||||
|
||||
103
pkg/cfg/params.go
Normal file
103
pkg/cfg/params.go
Normal file
@@ -0,0 +1,103 @@
|
||||
package cfg
|
||||
|
||||
import (
|
||||
"github.com/Indra-Labs/indra"
|
||||
log2 "github.com/Indra-Labs/indra/pkg/proc/pkg/log"
|
||||
"github.com/Indra-Labs/indra/pkg/wire"
|
||||
"github.com/multiformats/go-multiaddr"
|
||||
)
|
||||
|
||||
var (
|
||||
log = log2.GetLogger(indra.PathBase)
|
||||
check = log.E.Chk
|
||||
)
|
||||
|
||||
type Params struct {
|
||||
|
||||
// Name defines a human-readable identifier for the network
|
||||
Name string
|
||||
|
||||
// Net is a uint32 magic byte identifier for the network
|
||||
Net wire.IndraNet
|
||||
|
||||
// DefaultPort is the default port for p2p listening
|
||||
DefaultPort string
|
||||
|
||||
// SeedAddresses is a list of DNS hostnames used to bootstrap a new node on the network
|
||||
SeedAddresses []string
|
||||
}
|
||||
|
||||
func(self *Params) ParseSeedMultiAddresses() (addresses []multiaddr.Multiaddr, err error) {
|
||||
|
||||
var adr multiaddr.Multiaddr
|
||||
|
||||
for _, addr := range self.SeedAddresses {
|
||||
|
||||
if adr, err = multiaddr.NewMultiaddr(addr+":"+self.DefaultPort); check(err) {
|
||||
return
|
||||
}
|
||||
|
||||
addresses = append(addresses, adr)
|
||||
}
|
||||
|
||||
return
|
||||
}
|
||||
|
||||
var MainNetServerParams = &Params{
|
||||
|
||||
Name: "mainnet",
|
||||
|
||||
Net: wire.MainNet,
|
||||
|
||||
DefaultPort: "8337",
|
||||
|
||||
SeedAddresses: []string{
|
||||
// "seed0.indra.org",
|
||||
// "seed1.indra.org",
|
||||
// "seed2.indra.org",
|
||||
// "seed3.indra.org",
|
||||
// "seed0.example.com",
|
||||
// "seed1.example.com",
|
||||
// "seed2.example.com",
|
||||
// "seed3.example.com",
|
||||
// "1.1.1.1",
|
||||
// "::1",
|
||||
},
|
||||
|
||||
}
|
||||
|
||||
var TestNetServerParams = &Params{
|
||||
|
||||
Name: "testnet",
|
||||
|
||||
Net: wire.TestNet,
|
||||
|
||||
DefaultPort: "58337",
|
||||
|
||||
SeedAddresses: []string{
|
||||
// "seed0.testnet.indra.org",
|
||||
// "seed1.testnet.indra.org",
|
||||
// "seed2.testnet.indra.org",
|
||||
// "seed3.testnet.indra.org",
|
||||
// "seed0.testnet.example.com",
|
||||
// "seed1.testnet.example.com",
|
||||
// "seed2.testnet.example.com",
|
||||
// "seed3.testnet.example.com",
|
||||
// "1.1.1.1",
|
||||
// "::1",
|
||||
},
|
||||
|
||||
}
|
||||
|
||||
var SimnetServerParams = &Params{
|
||||
|
||||
Name: "simnet",
|
||||
|
||||
Net: wire.SimNet,
|
||||
|
||||
DefaultPort: "62134",
|
||||
|
||||
SeedAddresses: []string{
|
||||
// We likely will never need any seed addresses here
|
||||
},
|
||||
}
|
||||
@@ -1,43 +1,26 @@
|
||||
package server
|
||||
|
||||
import "github.com/multiformats/go-multiaddr"
|
||||
|
||||
var (
|
||||
seedList = []string{
|
||||
//"/dns4/seed0.indra.org/tcp/8337",
|
||||
//"/dns4/seed1.indra.org/tcp/8337",
|
||||
//"/dns4/seed2.indra.org/tcp/8337",
|
||||
//"/dns4/seed3.indra.org/tcp/8337",
|
||||
//"/dns4/seed0.example.com/tcp/8337",
|
||||
//"/dns4/seed1.example.com/tcp/8337",
|
||||
//"/dns4/seed2.example.com/tcp/8337",
|
||||
//"/dns4/seed3.example.com/tcp/8337",
|
||||
//"/ip4/1.1.1.1/tcp/8337",
|
||||
//"/ip6/::1/tcp/3217",
|
||||
}
|
||||
import (
|
||||
"github.com/multiformats/go-multiaddr"
|
||||
)
|
||||
|
||||
var DefaultServerConfig = Config{
|
||||
func NewMultiAddr(addr string) (maddr multiaddr.Multiaddr) {
|
||||
|
||||
SeedAddresses: []multiaddr.Multiaddr{},
|
||||
ListenAddresses: []multiaddr.Multiaddr{},
|
||||
var err error
|
||||
|
||||
if maddr, err = multiaddr.NewMultiaddr(addr); check(err) {
|
||||
panic("Not a valid multiaddress.")
|
||||
}
|
||||
|
||||
return
|
||||
}
|
||||
|
||||
var SimnetServerConfig = Config{
|
||||
|
||||
SeedAddresses: []multiaddr.Multiaddr{},
|
||||
var DefaultConfig = &Config{
|
||||
ListenAddresses: []multiaddr.Multiaddr{},
|
||||
}
|
||||
|
||||
func NewMultiAddrForced(addr string) multiaddr.Multiaddr {
|
||||
|
||||
var mta, _ = multiaddr.NewMultiaddr(addr)
|
||||
|
||||
return mta
|
||||
}
|
||||
|
||||
type Config struct {
|
||||
|
||||
PublicAddress multiaddr.Multiaddr
|
||||
ListenAddresses []multiaddr.Multiaddr
|
||||
SeedAddresses []multiaddr.Multiaddr
|
||||
}
|
||||
|
||||
@@ -3,12 +3,15 @@ package server
|
||||
import (
|
||||
"context"
|
||||
"github.com/Indra-Labs/indra"
|
||||
"github.com/Indra-Labs/indra/pkg/cfg"
|
||||
"github.com/cybriq/proc/pkg/interrupt"
|
||||
log2 "github.com/cybriq/proc/pkg/log"
|
||||
"github.com/davecgh/go-spew/spew"
|
||||
"github.com/libp2p/go-libp2p"
|
||||
dht "github.com/libp2p/go-libp2p-kad-dht"
|
||||
"github.com/libp2p/go-libp2p/core/host"
|
||||
"github.com/libp2p/go-libp2p/core/peer"
|
||||
"github.com/multiformats/go-multiaddr"
|
||||
"sync"
|
||||
)
|
||||
|
||||
@@ -22,6 +25,8 @@ type Server struct {
|
||||
|
||||
config Config
|
||||
|
||||
params *cfg.Params
|
||||
|
||||
host host.Host
|
||||
dht *dht.IpfsDHT
|
||||
}
|
||||
@@ -67,7 +72,14 @@ func (srv *Server) Serve() (err error) {
|
||||
|
||||
// We will first attempt to connect to the seed addresses.
|
||||
var wg sync.WaitGroup
|
||||
for _, peerAddr := range srv.config.SeedAddresses {
|
||||
|
||||
spew.Dump(srv.params.ParseSeedMultiAddresses())
|
||||
|
||||
var seedAddresses []multiaddr.Multiaddr
|
||||
|
||||
seedAddresses, err = srv.params.ParseSeedMultiAddresses()
|
||||
|
||||
for _, peerAddr := range seedAddresses {
|
||||
peerinfo, _ := peer.AddrInfoFromP2pAddr(peerAddr)
|
||||
wg.Add(1)
|
||||
go func() {
|
||||
@@ -79,16 +91,20 @@ func (srv *Server) Serve() (err error) {
|
||||
}
|
||||
}()
|
||||
}
|
||||
|
||||
wg.Wait()
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
func New(config Config) (srv *Server, err error) {
|
||||
func New(params *cfg.Params, config *Config) (srv *Server, err error) {
|
||||
|
||||
log.I.Ln("initializing the server.")
|
||||
|
||||
var s Server
|
||||
|
||||
s.params = params
|
||||
|
||||
var cancel context.CancelFunc
|
||||
|
||||
s.Context, cancel = context.WithCancel(context.Background())
|
||||
|
||||
14
pkg/wire/protocol.go
Normal file
14
pkg/wire/protocol.go
Normal file
@@ -0,0 +1,14 @@
|
||||
package wire
|
||||
|
||||
type IndraNet uint32
|
||||
|
||||
const (
|
||||
// MainNet represents the main indra network.
|
||||
MainNet IndraNet = 0xd9b4bef9
|
||||
|
||||
// TestNet represents the regression test network.
|
||||
TestNet IndraNet = 0xdab5bffa
|
||||
|
||||
// SimNet represents the simulation test network.
|
||||
SimNet IndraNet = 0x12141c16
|
||||
)
|
||||
Reference in New Issue
Block a user