|
|
@@ -1,11 +1,7 @@
|
|
|
package p2p
|
|
|
|
|
|
import (
|
|
|
- "blockchain-go/log"
|
|
|
- "blockchain-go/p2p/enode"
|
|
|
"errors"
|
|
|
- "net"
|
|
|
- "sync"
|
|
|
)
|
|
|
|
|
|
var (
|
|
|
@@ -15,47 +11,40 @@ var (
|
|
|
// Server manages all peer connections.
|
|
|
type Server struct {
|
|
|
// Config fields may not be modified while the server is running.
|
|
|
- Config
|
|
|
+ //Config
|
|
|
|
|
|
// Hooks for testing. These are useful because we can inhibit
|
|
|
// the whole protocol stack.
|
|
|
//newTransport func(net.Conn, *ecdsa.PublicKey) transport
|
|
|
//newPeerHook func(*Peer)
|
|
|
- listenFunc func(network, addr string) (net.Listener, error)
|
|
|
+ //listenFunc func(network, addr string) (net.Listener, error)
|
|
|
|
|
|
- lock sync.Mutex // protects running
|
|
|
- running bool
|
|
|
+ //lock sync.Mutex // protects running
|
|
|
+ //running bool
|
|
|
|
|
|
- listener net.Listener
|
|
|
+ //listener net.Listener
|
|
|
//ourHandshake *protoHandshake
|
|
|
- loopWG sync.WaitGroup // loop, listenLoop
|
|
|
+ //loopWG sync.WaitGroup // loop, listenLoop
|
|
|
//peerFeed event.Feed
|
|
|
- log log.Logger
|
|
|
+ //log log.Logger
|
|
|
|
|
|
- nodedb *enode.DB
|
|
|
- localnode *enode.LocalNode
|
|
|
+ //nodedb *enode.DB
|
|
|
+ //localnode *enode.LocalNode
|
|
|
//ntab *discover.UDPv4
|
|
|
//DiscV5 *discover.UDPv5
|
|
|
- discmix *enode.FairMix
|
|
|
+ //discmix *enode.FairMix
|
|
|
//dialsched *dialScheduler
|
|
|
|
|
|
// Channels into the run loop.
|
|
|
- quit chan struct{}
|
|
|
- addtrusted chan *enode.Node
|
|
|
- removetrusted chan *enode.Node
|
|
|
+ //quit chan struct{}
|
|
|
+ //addtrusted chan *enode.Node
|
|
|
+ //removetrusted chan *enode.Node
|
|
|
//peerOp chan peerOpFunc
|
|
|
- peerOpDone chan struct{}
|
|
|
- delpeer chan peerDrop
|
|
|
- checkpointPostHandshake chan *conn
|
|
|
- checkpointAddPeer chan *conn
|
|
|
+ //peerOpDone chan struct{}
|
|
|
+ //delpeer chan peerDrop
|
|
|
+ //checkpointPostHandshake chan *conn
|
|
|
+ //checkpointAddPeer chan *conn
|
|
|
|
|
|
// State of run loop and listenLoop.
|
|
|
//inboundHistory expHeap
|
|
|
}
|
|
|
-
|
|
|
-//type peerOpFunc func(map[enode.ID]*Peer)
|
|
|
-type peerDrop struct {
|
|
|
- *Peer
|
|
|
- err error
|
|
|
- requested bool // true if signaled by the peer
|
|
|
-}
|