MCPcopy
hub / github.com/bnb-chain/bsc / Server

Struct Server

p2p/server.go:187–231  ·  view source on GitHub ↗

Server manages all peer connections.

Source from the content-addressed store, hash-verified

185
186// Server manages all peer connections.
187type Server struct {
188 // Config fields may not be modified while the server is running.
189 Config
190
191 // Hooks for testing. These are useful because we can inhibit
192 // the whole protocol stack.
193 newTransport func(net.Conn, *ecdsa.PublicKey) transport
194 newPeerHook func(*Peer)
195 listenFunc func(network, addr string) (net.Listener, error)
196
197 lock sync.Mutex // protects running
198 running bool
199
200 listener net.Listener
201 ourHandshake *protoHandshake
202 loopWG sync.WaitGroup // loop, listenLoop
203 peerFeed event.Feed
204 log log.Logger
205
206 nodedb *enode.DB
207 localnode *enode.LocalNode
208 ntab *discover.UDPv4
209 DiscV5 *discover.UDPv5
210 discmix *enode.FairMix
211 dialsched *dialScheduler
212
213 forkFilter forkid.Filter
214
215 // This is read by the NAT port mapping loop.
216 portMappingRegister chan *portMapping
217
218 // Channels into the run loop.
219 quit chan struct{}
220 addtrusted chan *enode.Node
221 removetrusted chan *enode.Node
222 peerOp chan peerOpFunc
223 peerOpDone chan struct{}
224 delpeer chan peerDrop
225 checkpointPostHandshake chan *conn
226 checkpointAddPeer chan *conn
227
228 // State of run loop and listenLoop.
229 inboundHistory expHeap
230 disconnectEnodeSet map[enode.ID]struct{}
231}
232
233type peerOpFunc func(map[enode.ID]*Peer)
234

Callers

nothing calls this directly

Calls

no outgoing calls

Tested by

no test coverage detected