Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
G
Geth-Modification
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
张蕾
Geth-Modification
Commits
e27af97a
Commit
e27af97a
authored
May 18, 2016
by
Felix Lange
Browse files
Options
Browse Files
Download
Plain Diff
Merge pull request #2580 from fjl/p2p-config
node, p2p: move network config out of Server
parents
c8a8ad97
542b839e
Changes
4
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
36 additions
and
28 deletions
+36
-28
node.go
node/node.go
+3
-5
dial_test.go
p2p/dial_test.go
+2
-1
server.go
p2p/server.go
+8
-6
server_test.go
p2p/server_test.go
+23
-16
No files found.
node/node.go
View file @
e27af97a
...
...
@@ -49,7 +49,7 @@ type Node struct {
datadir
string
// Path to the currently used data directory
eventmux
*
event
.
TypeMux
// Event multiplexer used between the services of a stack
serverConfig
*
p2p
.
Server
// Configuration of the underlying P2P networking layer
serverConfig
p2p
.
Config
server
*
p2p
.
Server
// Currently running P2P networking layer
serviceFuncs
[]
ServiceConstructor
// Service constructors (in dependency order)
...
...
@@ -97,7 +97,7 @@ func New(conf *Config) (*Node, error) {
}
return
&
Node
{
datadir
:
conf
.
DataDir
,
serverConfig
:
&
p2p
.
Server
{
serverConfig
:
p2p
.
Config
{
PrivateKey
:
conf
.
NodeKey
(),
Name
:
conf
.
Name
,
Discovery
:
!
conf
.
NoDiscovery
,
...
...
@@ -151,9 +151,7 @@ func (n *Node) Start() error {
return
ErrNodeRunning
}
// Otherwise copy and specialize the P2P configuration
running
:=
new
(
p2p
.
Server
)
*
running
=
*
n
.
serverConfig
running
:=
&
p2p
.
Server
{
Config
:
n
.
serverConfig
}
services
:=
make
(
map
[
reflect
.
Type
]
Service
)
for
_
,
constructor
:=
range
n
.
serviceFuncs
{
// Create a new context for the particular service
...
...
p2p/dial_test.go
View file @
e27af97a
...
...
@@ -478,7 +478,8 @@ func TestDialResolve(t *testing.T) {
}
// Now run the task, it should resolve the ID once.
srv
:=
&
Server
{
ntab
:
table
,
Dialer
:
&
net
.
Dialer
{
Deadline
:
time
.
Now
()
.
Add
(
-
5
*
time
.
Minute
)}}
config
:=
Config
{
Dialer
:
&
net
.
Dialer
{
Deadline
:
time
.
Now
()
.
Add
(
-
5
*
time
.
Minute
)}}
srv
:=
&
Server
{
ntab
:
table
,
Config
:
config
}
tasks
[
0
]
.
Do
(
srv
)
if
!
reflect
.
DeepEqual
(
table
.
resolveCalls
,
[]
discover
.
NodeID
{
dest
.
ID
})
{
t
.
Fatalf
(
"wrong resolve calls, got %v"
,
table
.
resolveCalls
)
...
...
p2p/server.go
View file @
e27af97a
...
...
@@ -54,12 +54,8 @@ var errServerStopped = errors.New("server stopped")
var
srvjslog
=
logger
.
NewJsonLogger
()
// Server manages all peer connections.
//
// The fields of Server are used as configuration parameters.
// You should set them before starting the Server. Fields may not be
// modified while the server is running.
type
Server
struct
{
// Config holds Server options.
type
Config
struct
{
// This field must be set to a valid secp256k1 private key.
PrivateKey
*
ecdsa
.
PrivateKey
...
...
@@ -120,6 +116,12 @@ type Server struct {
// If NoDial is true, the server will not dial any peers.
NoDial
bool
}
// Server manages all peer connections.
type
Server
struct
{
// Config fields may not be modified while the server is running.
Config
// Hooks for testing. These are useful because we can inhibit
// the whole protocol stack.
...
...
p2p/server_test.go
View file @
e27af97a
...
...
@@ -67,11 +67,14 @@ func (c *testTransport) close(err error) {
}
func
startTestServer
(
t
*
testing
.
T
,
id
discover
.
NodeID
,
pf
func
(
*
Peer
))
*
Server
{
config
:=
Config
{
Name
:
"test"
,
MaxPeers
:
10
,
ListenAddr
:
"127.0.0.1:0"
,
PrivateKey
:
newkey
(),
}
server
:=
&
Server
{
Name
:
"test"
,
MaxPeers
:
10
,
ListenAddr
:
"127.0.0.1:0"
,
PrivateKey
:
newkey
(),
Config
:
config
,
newPeerHook
:
pf
,
newTransport
:
func
(
fd
net
.
Conn
)
transport
{
return
newTestTransport
(
id
,
fd
)
},
}
...
...
@@ -200,10 +203,10 @@ func TestServerTaskScheduling(t *testing.T) {
// The Server in this test isn't actually running
// because we're only interested in what run does.
srv
:=
&
Server
{
MaxPeers
:
10
,
quit
:
make
(
chan
struct
{}),
ntab
:
fakeTable
{},
running
:
true
,
Config
:
Config
{
MaxPeers
:
10
}
,
quit
:
make
(
chan
struct
{}),
ntab
:
fakeTable
{},
running
:
true
,
}
srv
.
loopWG
.
Add
(
1
)
go
func
()
{
...
...
@@ -314,10 +317,12 @@ func (t *testTask) Do(srv *Server) {
func
TestServerAtCap
(
t
*
testing
.
T
)
{
trustedID
:=
randomID
()
srv
:=
&
Server
{
PrivateKey
:
newkey
(),
MaxPeers
:
10
,
NoDial
:
true
,
TrustedNodes
:
[]
*
discover
.
Node
{{
ID
:
trustedID
}},
Config
:
Config
{
PrivateKey
:
newkey
(),
MaxPeers
:
10
,
NoDial
:
true
,
TrustedNodes
:
[]
*
discover
.
Node
{{
ID
:
trustedID
}},
},
}
if
err
:=
srv
.
Start
();
err
!=
nil
{
t
.
Fatalf
(
"could not start: %v"
,
err
)
...
...
@@ -415,10 +420,12 @@ func TestServerSetupConn(t *testing.T) {
for
i
,
test
:=
range
tests
{
srv
:=
&
Server
{
PrivateKey
:
srvkey
,
MaxPeers
:
10
,
NoDial
:
true
,
Protocols
:
[]
Protocol
{
discard
},
Config
:
Config
{
PrivateKey
:
srvkey
,
MaxPeers
:
10
,
NoDial
:
true
,
Protocols
:
[]
Protocol
{
discard
},
},
newTransport
:
func
(
fd
net
.
Conn
)
transport
{
return
test
.
tt
},
}
if
!
test
.
dontstart
{
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment