Skip to content

Commit 708e607

Browse files
committed
client: added RLPx port as a CLI option (local option was inactive before -> always defaulted to 30303)
1 parent 3c4583c commit 708e607

File tree

4 files changed

+29
-19
lines changed

4 files changed

+29
-19
lines changed

packages/client/bin/cli.ts

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,10 @@ const args = require('yargs')
5050
describe: 'Network bootnodes',
5151
array: true,
5252
},
53+
port: {
54+
describe: 'RLPx listening port',
55+
default: Config.PORT_DEFAULT,
56+
},
5357
multiaddrs: {
5458
describe: 'Network multiaddrs',
5559
array: true,
@@ -182,6 +186,7 @@ async function run() {
182186
datadir: args.datadir,
183187
transports: args.transports,
184188
bootnodes: args.bootnodes ? parseMultiaddrs(args.bootnodes) : undefined,
189+
port: args.port,
185190
multiaddrs: args.multiaddrs ? parseMultiaddrs(args.multiaddrs) : undefined,
186191
rpc: args.rpc,
187192
rpcport: args.rpcport,

packages/client/lib/config.ts

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@ export interface ConfigOptions {
4343
/**
4444
* Network transports ('rlpx' and/or 'libp2p')
4545
*
46-
* Default: `['rlpx:port=30303', 'libp2p']`
46+
* Default: `['rlpx', 'libp2p']`
4747
*/
4848
transports?: string[]
4949

@@ -53,6 +53,13 @@ export interface ConfigOptions {
5353
*/
5454
bootnodes?: Multiaddr[]
5555

56+
/**
57+
* RLPx listening port
58+
*
59+
* Default: `30303`
60+
*/
61+
port?: number
62+
5663
/**
5764
* Network multiaddrs for libp2p
5865
* (e.g. /ip4/127.0.0.1/tcp/50505/p2p/QmABC)
@@ -157,7 +164,8 @@ export class Config {
157164
public static readonly SYNCMODE_DEFAULT = 'full'
158165
public static readonly LIGHTSERV_DEFAULT = false
159166
public static readonly DATADIR_DEFAULT = `./datadir`
160-
public static readonly TRANSPORTS_DEFAULT = ['rlpx:port=30303', 'libp2p']
167+
public static readonly TRANSPORTS_DEFAULT = ['rlpx', 'libp2p']
168+
public static readonly PORT_DEFAULT = 30303
161169
public static readonly RPC_DEFAULT = false
162170
public static readonly RPCPORT_DEFAULT = 8545
163171
public static readonly RPCADDR_DEFAULT = 'localhost'
@@ -174,6 +182,7 @@ export class Config {
174182
public readonly datadir: string
175183
public readonly transports: string[]
176184
public readonly bootnodes?: Multiaddr[]
185+
public readonly port?: number
177186
public readonly multiaddrs?: Multiaddr[]
178187
public readonly rpc: boolean
179188
public readonly rpcport: number
@@ -197,6 +206,7 @@ export class Config {
197206
this.lightserv = options.lightserv ?? Config.LIGHTSERV_DEFAULT
198207
this.transports = options.transports ?? Config.TRANSPORTS_DEFAULT
199208
this.bootnodes = options.bootnodes
209+
this.port = options.port ?? Config.PORT_DEFAULT
200210
this.multiaddrs = options.multiaddrs
201211
this.datadir = options.datadir ?? Config.DATADIR_DEFAULT
202212
this.rpc = options.rpc ?? Config.RPC_DEFAULT

packages/client/lib/net/server/rlpxserver.ts

Lines changed: 10 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -4,9 +4,6 @@ import { RlpxPeer } from '../peer/rlpxpeer'
44
import { Server, ServerOptions } from './server'
55

66
export interface RlpxServerOptions extends ServerOptions {
7-
/* Local port to listen on (default: 30303) */
8-
port?: number
9-
107
/* List of supported clients */
118
clientFilter?: string[]
129
}
@@ -50,7 +47,6 @@ const ignoredErrors = new RegExp(
5047
export class RlpxServer extends Server {
5148
private peers: Map<string, RlpxPeer> = new Map()
5249

53-
public port: number
5450
public discovery: boolean
5551
private clientFilter: string[]
5652

@@ -67,7 +63,6 @@ export class RlpxServer extends Server {
6763

6864
// TODO: get the external ip from the upnp service
6965
this.ip = '::'
70-
this.port = options.port ?? 30303
7166
this.discovery = options.config.discV4 || options.config.discDns
7267
this.clientFilter = options.clientFilter ?? [
7368
'go1.5',
@@ -100,17 +95,17 @@ export class RlpxServer extends Server {
10095
enode: undefined,
10196
id: undefined,
10297
ip: this.ip,
103-
listenAddr: `[${this.ip}]:${this.port}`,
104-
ports: { discovery: this.port, listener: this.port },
98+
listenAddr: `[${this.ip}]:${this.config.port}`,
99+
ports: { discovery: this.config.port, listener: this.config.port },
105100
}
106101
}
107102
const id = this.rlpx._id.toString('hex')
108103
return {
109-
enode: `enode://${id}@[${this.ip}]:${this.port}`,
104+
enode: `enode://${id}@[${this.ip}]:${this.config.port}`,
110105
id: id,
111106
ip: this.ip,
112-
listenAddr: `[${this.ip}]:${this.port}`,
113-
ports: { discovery: this.port, listener: this.port },
107+
listenAddr: `[${this.ip}]:${this.config.port}`,
108+
ports: { discovery: this.config.port, listener: this.config.port },
114109
}
115110
}
116111

@@ -233,8 +228,8 @@ export class RlpxServer extends Server {
233228

234229
this.dpt.on('error', (e: Error) => this.error(e))
235230

236-
if (this.port) {
237-
this.dpt.bind(this.port, '0.0.0.0')
231+
if (this.config.port) {
232+
this.dpt.bind(this.config.port, '0.0.0.0')
238233
}
239234
}
240235

@@ -248,7 +243,7 @@ export class RlpxServer extends Server {
248243
maxPeers: this.config.maxPeers,
249244
capabilities: RlpxPeer.capabilities(Array.from(this.protocols)),
250245
remoteClientIdFilter: this.clientFilter,
251-
listenPort: this.port,
246+
listenPort: this.config.port,
252247
common: this.config.chainCommon,
253248
})
254249

@@ -304,8 +299,8 @@ export class RlpxServer extends Server {
304299
})
305300
})
306301

307-
if (this.port) {
308-
this.rlpx.listen(this.port, '0.0.0.0')
302+
if (this.config.port) {
303+
this.rlpx.listen(this.config.port, '0.0.0.0')
309304
}
310305
}
311306
}

packages/client/test/net/server/rlpxserver.spec.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -179,7 +179,7 @@ tape('[RlpxServer]', async (t) => {
179179
const config = new Config({ loglevel: 'error', transports: [] })
180180
const server = new RlpxServer({ config })
181181
server.initDpt()
182-
td.verify((server.dpt as any).bind(server.port, '0.0.0.0'))
182+
td.verify((server.dpt as any).bind(server.config.port, '0.0.0.0'))
183183
server.on('error', (err: any) => t.equals(err, 'err0', 'got error'))
184184
;(server.dpt as any).emit('error', 'err0')
185185
})
@@ -193,7 +193,7 @@ tape('[RlpxServer]', async (t) => {
193193
td.when(RlpxPeer.prototype.accept(rlpxPeer, td.matchers.isA(RlpxServer))).thenResolve()
194194
server.initRlpx()
195195
td.verify(RlpxPeer.capabilities(Array.from((server as any).protocols)))
196-
td.verify(server.rlpx!.listen(server.port, '0.0.0.0'))
196+
td.verify(server.rlpx!.listen(server.config.port, '0.0.0.0'))
197197
server.on('connected', (peer: any) => t.ok(peer instanceof RlpxPeer, 'connected'))
198198
server.on('disconnected', (peer: any) => t.equals(peer.id, '01', 'disconnected'))
199199
server.on('error', (err: Error) => t.equals(err.message, 'err0', 'got error'))

0 commit comments

Comments
 (0)