|
|
@@ -3,7 +3,6 @@ package p2p
|
|
|
import (
|
|
|
"blockchain-go/common/gopool"
|
|
|
"blockchain-go/p2p/discover"
|
|
|
- "blockchain-go/p2p/dnsdisc"
|
|
|
"blockchain-go/p2p/enode"
|
|
|
"blockchain-go/p2p/enr"
|
|
|
"blockchain-go/p2p/nat"
|
|
|
@@ -131,6 +130,12 @@ running:
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+func (server *Server) launchPeer(c *conn) *Peer {
|
|
|
+ p := newPeer(c, server.Protocols)
|
|
|
+ // TODO 首先完成eth协议,封装在在eth/protocols/eth/handler.go
|
|
|
+ return p
|
|
|
+}
|
|
|
+
|
|
|
func (server *Server) StopListener() {
|
|
|
<-server.sigs
|
|
|
|
|
|
@@ -163,10 +168,10 @@ func (server *Server) setupCaps() (err error) {
|
|
|
func (server *Server) setupDiscovery() (err error) {
|
|
|
server.discmix = enode.NewFairMix(discmixTimeout)
|
|
|
|
|
|
- // 添加特定协议的发现源。
|
|
|
- dnsclient := dnsdisc.NewClient(dnsdisc.Config{})
|
|
|
- dialCandidates, err := dnsclient.NewIterator()
|
|
|
- server.discmix.AddSource(dialCandidates)
|
|
|
+ // TODO 添加特定协议的发现源。
|
|
|
+ //dnsclient := dnsdisc.NewClient(dnsdisc.Config{})
|
|
|
+ //dialCandidates, err := dnsclient.NewIterator()
|
|
|
+ //server.discmix.AddSource(dialCandidates)
|
|
|
|
|
|
addr, err := net.ResolveUDPAddr("udp", server.ListenAddr)
|
|
|
if err != nil {
|
|
|
@@ -389,7 +394,7 @@ func (server *Server) newRLPX(conn net.Conn, dialDest *ecdsa.PublicKey) transpor
|
|
|
}
|
|
|
|
|
|
func (server *Server) SetupConn(fd net.Conn, flags connFlag, dialDest *enode.Node) error {
|
|
|
- fmt.Printf("setup conn %v.", fd.RemoteAddr())
|
|
|
+ //fmt.Printf("Setup conn %v.\n", fd.RemoteAddr())
|
|
|
|
|
|
c := &conn{fd: fd, flags: flags, cont: make(chan error)}
|
|
|
if dialDest == nil {
|
|
|
@@ -413,7 +418,7 @@ func (server *Server) setupConn(c *conn, dialDest *enode.Node) error {
|
|
|
|
|
|
// 将connection转换成node
|
|
|
c.node = enode.NodeFromConn(remotePubkey, c.fd)
|
|
|
- fmt.Printf("id: %v, addr: %v, conn: %v", c.node.ID(), c.fd.RemoteAddr(), c.flags)
|
|
|
+ //fmt.Printf("Parse node: id: %v, addr: %v\n", c.node.ID(), c.fd.RemoteAddr())
|
|
|
|
|
|
// 检查是否需要握手
|
|
|
err = server.checkpoint(c, server.checkpointPostHandshake)
|
|
|
@@ -427,6 +432,7 @@ func (server *Server) setupConn(c *conn, dialDest *enode.Node) error {
|
|
|
return err
|
|
|
}
|
|
|
c.caps, c.name = phs.Caps, phs.Name
|
|
|
+ //fmt.Printf("Handshake ok, id: %v, addr: %v.\n", c.node.ID(), c.fd.RemoteAddr())
|
|
|
|
|
|
// 握手成功后将此链接放入addPeer的检查点
|
|
|
err = server.checkpoint(c, server.checkpointAddPeer)
|