diff --git a/cmd/peerserver/main.go b/cmd/peerserver/main.go new file mode 100644 index 000000000..0fa7a9b44 --- /dev/null +++ b/cmd/peerserver/main.go @@ -0,0 +1,40 @@ +package main + +import ( + "crypto/elliptic" + "fmt" + "log" + "net" + "os" + + "github.com/ethereum/go-ethereum/crypto" + "github.com/ethereum/go-ethereum/logger" + "github.com/ethereum/go-ethereum/p2p" +) + +func main() { + logger.AddLogSystem(logger.NewStdLogSystem(os.Stdout, log.LstdFlags, logger.InfoLevel)) + key, _ := crypto.GenerateKey() + marshaled := elliptic.Marshal(crypto.S256(), key.PublicKey.X, key.PublicKey.Y) + + srv := p2p.Server{ + MaxPeers: 10, + Identity: p2p.NewSimpleClientIdentity("Ethereum(G)", "0.1", "Peer Server Two", string(marshaled)), + ListenAddr: ":30301", + NAT: p2p.UPNP(), + } + if err := srv.Start(); err != nil { + fmt.Println("could not start server:", err) + os.Exit(1) + } + + // add seed peers + seed, err := net.ResolveTCPAddr("tcp", "poc-7.ethdev.com:30300") + if err != nil { + fmt.Println("couldn't resolve:", err) + os.Exit(1) + } + srv.SuggestPeer(seed.IP, seed.Port, nil) + + select {} +}