Skip to content

Commit 94e19d8

Browse files
committed
fix: fixes related to PR feedback
1 parent fd3a1b1 commit 94e19d8

File tree

17 files changed

+70
-55
lines changed

17 files changed

+70
-55
lines changed

packages/libp2p/src/address-manager/utils.ts

+1-2
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
import { type ObjectSchema, object, array, string, mixed } from 'yup'
22
import { validateMultiaddr } from '../config/helpers.js'
3-
import type { AddressManagerInit } from '.'
43
import type { Multiaddr } from '@multiformats/multiaddr'
54

65
export function debounce (func: () => void, wait: number): () => void {
@@ -17,7 +16,7 @@ export function debounce (func: () => void, wait: number): () => void {
1716
}
1817
}
1918

20-
export function validateAddressManagerConfig (opts: AddressManagerInit): ObjectSchema<Record<string, unknown>> {
19+
export function validateAddressManagerConfig (): ObjectSchema<Record<string, unknown>> {
2120
return object({
2221
listen: array().of(string()).test('is multiaddr', validateMultiaddr).default([]),
2322
announce: array().of(string()).test('is multiaddr', validateMultiaddr).default([]),

packages/libp2p/src/config/config.ts

+3-4
Original file line numberDiff line numberDiff line change
@@ -5,12 +5,11 @@ import mergeOptions from 'merge-options'
55
import { object } from 'yup'
66
import { validateAddressManagerConfig } from '../address-manager/utils.js'
77
import { validateConnectionManagerConfig } from '../connection-manager/utils.js'
8-
import type { AddressManagerInit } from '../address-manager'
98
import type { ConnectionManagerInit } from '../connection-manager/index.js'
109
import type { Libp2pInit } from '../index.js'
1110
import type { ServiceMap, RecursivePartial } from '@libp2p/interface'
1211

13-
const DefaultConfig: Partial<Libp2pInit> = {
12+
const defaultConfig: Partial<Libp2pInit> = {
1413
connectionManager: {
1514
resolvers: {
1615
dnsaddr: dnsaddrResolver
@@ -24,13 +23,13 @@ const DefaultConfig: Partial<Libp2pInit> = {
2423

2524
export function validateConfig<T extends ServiceMap = Record<string, unknown>> (opts: RecursivePartial<Libp2pInit<T>>): Libp2pInit<T> {
2625
const libp2pConfig = object({
27-
addresses: validateAddressManagerConfig(opts?.addresses as AddressManagerInit),
26+
addresses: validateAddressManagerConfig(),
2827
connectionManager: validateConnectionManagerConfig(opts?.connectionManager as ConnectionManagerInit)
2928
})
3029

3130
const parsedOpts = libp2pConfig.validateSync(opts)
3231

33-
const resultingOptions: Libp2pInit<T> = mergeOptions(DefaultConfig, parsedOpts)
32+
const resultingOptions: Libp2pInit<T> = mergeOptions(defaultConfig, parsedOpts)
3433

3534
return resultingOptions
3635
}

packages/libp2p/src/config/helpers.ts

+5
Original file line numberDiff line numberDiff line change
@@ -3,12 +3,17 @@ import { multiaddr } from '@multiformats/multiaddr'
33
import { codes } from '../errors.js'
44

55
export const validateMultiaddr = (value: Array<string | undefined> | undefined): boolean => {
6+
if (value == null || value === undefined) {
7+
return false
8+
}
9+
610
value?.forEach((addr) => {
711
try {
812
multiaddr(addr)
913
} catch (err) {
1014
throw new CodeError(`invalid multiaddr: ${addr}`, codes.ERR_INVALID_MULTIADDR)
1115
}
1216
})
17+
1318
return true
1419
}

packages/libp2p/src/connection-manager/utils.ts

+3-3
Original file line numberDiff line numberDiff line change
@@ -78,11 +78,11 @@ export const validateConnectionManagerConfig = (opts: ConnectionManagerInit): Ob
7878
autoDialConcurrency: number().integer().min(0).default(AUTO_DIAL_CONCURRENCY),
7979
autoDialPriority: number().integer().min(0).default(AUTO_DIAL_PRIORITY),
8080
maxParallelDials: number().integer().min(0).default(MAX_PARALLEL_DIALS),
81-
maxPeerAddrsToDialed: number().min(0).integer().default(MAX_PEER_ADDRS_TO_DIAL),
81+
maxPeerAddrsToDialed: number().integer().min(0).default(MAX_PEER_ADDRS_TO_DIAL),
8282
dialTimeout: number().integer().min(0).default(DIAL_TIMEOUT),
8383
inboundUpgradeTimeout: number().integer().min(0).default(INBOUND_UPGRADE_TIMEOUT),
84-
allow: array().of(string()).test('is multiaddr', validateMultiaddr).optional(),
85-
deny: array().of(string()).test('is multiaddr', validateMultiaddr).optional(),
84+
allow: array().of(string()).test('is multiaddr', validateMultiaddr).default([]),
85+
deny: array().of(string()).test('is multiaddr', validateMultiaddr).default([]),
8686
inboundConnectionThreshold: number().integer().min(0).default(INBOUND_CONNECTION_THRESHOLD),
8787
maxIncomingPendingConnections: number().integer().min(0).default(MAX_INCOMING_PENDING_CONNECTIONS)
8888
})
+12
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
// https://github.com/libp2p/specs/blob/master/relay/DCUtR.md#rpc-messages
2+
export const MAX_DCUTR_MESSAGE_SIZE = 1024 * 4
3+
// ensure the dial has a high priority to jump to the head of the dial queue
4+
export const DCUTR_DIAL_PRIORITY = 100
5+
6+
export const DEFAULT_MAX_INBOUND_STREAMS = 1
7+
8+
export const DEFAULT_MAX_OUTBOUND_STREAMS = 1
9+
10+
export const DEFAULT_TIMEOUT = 5000
11+
12+
export const DEFAULT_RETRIES = 3

packages/protocol-dcutr/src/dcutr.ts

+5-9
Original file line numberDiff line numberDiff line change
@@ -3,25 +3,21 @@ import { type Multiaddr, multiaddr } from '@multiformats/multiaddr'
33
import delay from 'delay'
44
import { pbStream } from 'it-protobuf-stream'
55
import { number, object } from 'yup'
6+
import { DCUTR_DIAL_PRIORITY, DEFAULT_MAX_INBOUND_STREAMS, DEFAULT_MAX_OUTBOUND_STREAMS, DEFAULT_RETRIES, DEFAULT_TIMEOUT, MAX_DCUTR_MESSAGE_SIZE } from './constants.js'
67
import { HolePunch } from './pb/message.js'
78
import { isPublicAndDialable } from './utils.js'
89
import { multicodec } from './index.js'
910
import type { DCUtRServiceComponents, DCUtRServiceInit } from './index.js'
1011
import type { Logger, Connection, Stream, PeerStore, Startable } from '@libp2p/interface'
1112
import type { AddressManager, ConnectionManager, Registrar, TransportManager } from '@libp2p/interface-internal'
1213

13-
// https://github.com/libp2p/specs/blob/master/relay/DCUtR.md#rpc-messages
14-
const MAX_DCUTR_MESSAGE_SIZE = 1024 * 4
15-
// ensure the dial has a high priority to jump to the head of the dial queue
16-
const DCUTR_DIAL_PRIORITY = 100
17-
1814
const configValidator = object({
1915
// https://github.com/libp2p/go-libp2p/blob/8d2e54e1637041d5cf4fac1e531287560bd1f4ac/p2p/protocol/holepunch/holepuncher.go#L27
20-
timeout: number().integer().default(5000).min(0),
16+
timeout: number().integer().min(0).default(DEFAULT_TIMEOUT),
2117
// https://github.com/libp2p/go-libp2p/blob/8d2e54e1637041d5cf4fac1e531287560bd1f4ac/p2p/protocol/holepunch/holepuncher.go#L28
22-
retries: number().integer().default(3).min(0),
23-
maxInboundStreams: number().integer().default(1).min(0),
24-
maxOutboundStreams: number().integer().default(1).min(0)
18+
retries: number().integer().min(0).default(DEFAULT_RETRIES),
19+
maxInboundStreams: number().integer().min(0).default(DEFAULT_MAX_INBOUND_STREAMS),
20+
maxOutboundStreams: number().integer().min(0).default(DEFAULT_MAX_OUTBOUND_STREAMS)
2521
})
2622

2723
export class DefaultDCUtRService implements Startable {

packages/protocol-fetch/src/constants.ts

+1
Original file line numberDiff line numberDiff line change
@@ -5,3 +5,4 @@ export const PROTOCOL_NAME = 'fetch'
55
export const MAX_INBOUND_STREAMS = 1
66
export const MAX_OUTBOUND_STREAMS = 1
77
export const TIMEOUT = 10000
8+
export const PROTOCOL_PREFIX = 'libp2p'

packages/protocol-fetch/src/fetch.ts

+6-4
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,8 @@ import { CodeError, ERR_INVALID_MESSAGE, ERR_INVALID_PARAMETERS, ERR_TIMEOUT, se
22
import { pbStream } from 'it-protobuf-stream'
33
import { fromString as uint8arrayFromString } from 'uint8arrays/from-string'
44
import { toString as uint8arrayToString } from 'uint8arrays/to-string'
5-
import { object, number } from 'yup'
6-
import { MAX_INBOUND_STREAMS, MAX_OUTBOUND_STREAMS, PROTOCOL_NAME, PROTOCOL_VERSION, TIMEOUT } from './constants.js'
5+
import { object, number, string } from 'yup'
6+
import { MAX_INBOUND_STREAMS, MAX_OUTBOUND_STREAMS, PROTOCOL_NAME, PROTOCOL_PREFIX, PROTOCOL_VERSION, TIMEOUT } from './constants.js'
77
import { FetchRequest, FetchResponse } from './pb/proto.js'
88
import type { Fetch as FetchInterface, FetchComponents, FetchInit, LookupFunction } from './index.js'
99
import type { AbortOptions, Logger, Stream, PeerId, Startable } from '@libp2p/interface'
@@ -19,8 +19,10 @@ import type { IncomingStreamData } from '@libp2p/interface-internal'
1919
const configValidator = object({
2020
timeout: number().integer().default(TIMEOUT),
2121
maxInboundStreams: number().integer().min(0).default(MAX_INBOUND_STREAMS),
22-
maxOutboundStreams: number().integer().min(0).default(MAX_OUTBOUND_STREAMS)
22+
maxOutboundStreams: number().integer().min(0).default(MAX_OUTBOUND_STREAMS),
23+
protocolPrefix: string().default(PROTOCOL_PREFIX)
2324
})
25+
2426
export class Fetch implements Startable, FetchInterface {
2527
public readonly protocol: string
2628
private readonly components: FetchComponents
@@ -40,7 +42,7 @@ export class Fetch implements Startable, FetchInterface {
4042

4143
const config = configValidator.validateSync(init)
4244

43-
this.protocol = `/${init.protocolPrefix ?? 'libp2p'}/${PROTOCOL_NAME}/${PROTOCOL_VERSION}`
45+
this.protocol = `/${config.protocolPrefix}/${PROTOCOL_NAME}/${PROTOCOL_VERSION}`
4446
this.timeout = config.timeout
4547
this.maxInboundStreams = config.maxInboundStreams
4648
this.maxOutboundStreams = config.maxOutboundStreams

packages/protocol-identify/src/identify.ts

+4-4
Original file line numberDiff line numberDiff line change
@@ -20,9 +20,9 @@ import {
2020
MAX_OUTBOUND_STREAMS,
2121
MAX_IDENTIFY_MESSAGE_SIZE,
2222
TIMEOUT,
23-
RUN_ON_CONNECTION_OPEN,
23+
RUN_ON_CONNECTION_OPEN as DEFAULT_RUN_ON_CONNECTION_OPEN,
2424
PROTOCOL_PREFIX,
25-
RUN_ON_TRANSIENT_CONNECTION,
25+
RUN_ON_TRANSIENT_CONNECTION as DEFAULT_RUN_ON_TRANSIENT_CONNECTIONS,
2626
MAX_PUSH_INCOMING_STREAMS,
2727
MAX_PUSH_OUTGOING_STREAMS,
2828
MAX_OBSERVED_ADDRESSES
@@ -41,8 +41,8 @@ const configValidator = object({
4141
maxPushOutgoingStreams: number().integer().min(0).default(MAX_PUSH_OUTGOING_STREAMS),
4242
maxOutboundStreams: number().integer().min(0).default(MAX_OUTBOUND_STREAMS),
4343
maxObservedAddresses: number().integer().min(0).default(MAX_OBSERVED_ADDRESSES),
44-
runOnConnectionOpen: boolean().default(RUN_ON_CONNECTION_OPEN),
45-
runOnTransientConnection: boolean().default(RUN_ON_TRANSIENT_CONNECTION)
44+
runOnConnectionOpen: boolean().default(DEFAULT_RUN_ON_CONNECTION_OPEN),
45+
runOnTransientConnection: boolean().default(DEFAULT_RUN_ON_TRANSIENT_CONNECTIONS)
4646
})
4747

4848
export class Identify implements Startable, IdentifyInterface {

packages/protocol-ping/src/constants.ts

+1
Original file line numberDiff line numberDiff line change
@@ -13,5 +13,6 @@ export const TIMEOUT = 10000
1313
// opening stream A even though the dialing peer is opening stream B and closing stream A).
1414
export const MAX_INBOUND_STREAMS = 2
1515
export const MAX_OUTBOUND_STREAMS = 1
16+
export const DEFAULT_RUN_ON_TRANSIENT_CONNECTIONS = true
1617

1718
export const ERR_WRONG_PING_ACK = 'ERR_WRONG_PING_ACK'

packages/protocol-ping/src/ping.ts

+2-2
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ import first from 'it-first'
44
import { pipe } from 'it-pipe'
55
import { equals as uint8ArrayEquals } from 'uint8arrays/equals'
66
import { boolean, number, object, string } from 'yup'
7-
import { PROTOCOL_PREFIX, PROTOCOL_NAME, PING_LENGTH, PROTOCOL_VERSION, TIMEOUT, MAX_INBOUND_STREAMS, MAX_OUTBOUND_STREAMS, ERR_WRONG_PING_ACK } from './constants.js'
7+
import { PROTOCOL_PREFIX, PROTOCOL_NAME, PING_LENGTH, PROTOCOL_VERSION, TIMEOUT, MAX_INBOUND_STREAMS, MAX_OUTBOUND_STREAMS, ERR_WRONG_PING_ACK, DEFAULT_RUN_ON_TRANSIENT_CONNECTIONS } from './constants.js'
88
import type { PingServiceComponents, PingServiceInit, PingService as PingServiceInterface } from './index.js'
99
import type { AbortOptions, Logger, Stream, PeerId, Startable } from '@libp2p/interface'
1010
import type { IncomingStreamData } from '@libp2p/interface-internal'
@@ -15,7 +15,7 @@ const configValidator = object({
1515
timeout: number().integer().min(0).default(TIMEOUT),
1616
maxInboundStreams: number().integer().min(0).default(MAX_INBOUND_STREAMS),
1717
maxOutboundStreams: number().integer().min(0).default(MAX_OUTBOUND_STREAMS),
18-
runOnTransientConnection: boolean().default(true)
18+
runOnTransientConnection: boolean().default(DEFAULT_RUN_ON_TRANSIENT_CONNECTIONS)
1919
})
2020

2121
export class PingService implements Startable, PingServiceInterface {

packages/transport-circuit-relay-v2/src/constants.ts

+8
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,14 @@ export const RELAY_SOURCE_TAG = 'circuit-relay-source'
4242

4343
export const RELAY_TAG = 'circuit-relay-relay'
4444

45+
export const DEFAULT_DEFAULT_APPLY_LIMIT = true
46+
47+
export const DEFAULT_RESERVATION_COMPLETION_TIMEOUT = 10000
48+
49+
export const DEFAULT_MAX_RESERVATION_QUEUE_LENGTH = 100
50+
51+
export const DEFAULT_DISCOVER_RELAYS = 0
52+
4553
// circuit v2 connection limits
4654
// https://github.com/libp2p/go-libp2p/blob/master/p2p/protocol/circuitv2/relay/resources.go#L61-L66
4755

packages/transport-circuit-relay-v2/src/server/index.ts

+3-13
Original file line numberDiff line numberDiff line change
@@ -4,16 +4,12 @@ import { RecordEnvelope } from '@libp2p/peer-record'
44
import { type Multiaddr, multiaddr } from '@multiformats/multiaddr'
55
import { pbStream, type ProtobufStream } from 'it-protobuf-stream'
66
import pDefer from 'p-defer'
7-
import { object, number, boolean } from 'yup'
7+
import { object, number } from 'yup'
88
import {
99
CIRCUIT_PROTO_CODE,
10-
DEFAULT_DURATION_LIMIT,
1110
DEFAULT_HOP_TIMEOUT,
1211
DEFAULT_MAX_INBOUND_STREAMS,
1312
DEFAULT_MAX_OUTBOUND_STREAMS,
14-
DEFAULT_MAX_RESERVATION_CLEAR_INTERVAL,
15-
DEFAULT_MAX_RESERVATION_STORE_SIZE,
16-
DEFAULT_MAX_RESERVATION_TTL,
1713
MAX_CONNECTIONS,
1814
RELAY_SOURCE_TAG,
1915
RELAY_V2_HOP_CODEC,
@@ -22,7 +18,7 @@ import {
2218
import { HopMessage, type Reservation, Status, StopMessage } from '../pb/index.js'
2319
import { createLimitedRelay } from '../utils.js'
2420
import { AdvertService, type AdvertServiceComponents, type AdvertServiceInit } from './advert-service.js'
25-
import { ReservationStore, type ReservationStoreInit } from './reservation-store.js'
21+
import { ReservationStore, reservationStoreConfigValidator, type ReservationStoreInit } from './reservation-store.js'
2622
import { ReservationVoucherRecord } from './reservation-voucher.js'
2723
import type { CircuitRelayService, RelayReservation } from '../index.js'
2824
import type { ComponentLogger, Logger, Connection, Stream, ConnectionGater, PeerId, PeerStore, Startable } from '@libp2p/interface'
@@ -95,13 +91,7 @@ export interface RelayServerEvents {
9591

9692
const configValidator = object({
9793
hopTimeout: number().integer().min(0).default(DEFAULT_HOP_TIMEOUT),
98-
reservations: object({
99-
maxReservations: number().integer().min(0).default(DEFAULT_MAX_RESERVATION_STORE_SIZE),
100-
reservationClearInterval: number().integer().min(0).default(DEFAULT_MAX_RESERVATION_CLEAR_INTERVAL),
101-
applyDefaultLimit: boolean().default(false),
102-
reservationTtl: number().integer().min(0).default(DEFAULT_MAX_RESERVATION_TTL),
103-
defaultDurationLimit: number().integer().min(0).default(DEFAULT_DURATION_LIMIT)
104-
}),
94+
reservations: reservationStoreConfigValidator,
10595
maxInboundHopStreams: number().integer().min(0).default(DEFAULT_MAX_INBOUND_STREAMS),
10696
maxOutboundHopStreams: number().integer().min(0).default(DEFAULT_MAX_OUTBOUND_STREAMS),
10797
maxOutboundStopStreams: number().integer().min(0).default(MAX_CONNECTIONS)

packages/transport-circuit-relay-v2/src/server/reservation-store.ts

+6-6
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import { PeerMap } from '@libp2p/peer-collections'
22
import { object, mixed, number, boolean } from 'yup'
3-
import { DEFAULT_DATA_LIMIT, DEFAULT_DURATION_LIMIT, DEFAULT_MAX_RESERVATION_CLEAR_INTERVAL, DEFAULT_MAX_RESERVATION_STORE_SIZE, DEFAULT_MAX_RESERVATION_TTL } from '../constants.js'
3+
import { DEFAULT_DATA_LIMIT, DEFAULT_DEFAULT_APPLY_LIMIT, DEFAULT_DURATION_LIMIT, DEFAULT_MAX_RESERVATION_CLEAR_INTERVAL, DEFAULT_MAX_RESERVATION_STORE_SIZE, DEFAULT_MAX_RESERVATION_TTL } from '../constants.js'
44
import { type Limit, Status } from '../pb/index.js'
55
import type { RelayReservation } from '../index.js'
66
import type { RecursivePartial, PeerId, Startable } from '@libp2p/interface'
@@ -37,13 +37,13 @@ export interface ReservationStoreInit {
3737

3838
export type ReservationStoreOptions = RecursivePartial<ReservationStoreInit>
3939

40-
const configValidator = object({
40+
export const reservationStoreConfigValidator = object({
4141
maxReservations: number().min(0).integer().default(DEFAULT_MAX_RESERVATION_STORE_SIZE),
4242
reservationClearInterval: number().integer().min(0).default(DEFAULT_MAX_RESERVATION_CLEAR_INTERVAL),
43-
applyDefaultLimit: boolean().default(true),
43+
applyDefaultLimit: boolean().default(DEFAULT_DEFAULT_APPLY_LIMIT),
4444
reservationTtl: number().integer().min(0).default(DEFAULT_MAX_RESERVATION_TTL),
4545
defaultDurationLimit: number().integer().min(0).default(DEFAULT_DURATION_LIMIT),
46-
defaultDataLimit: mixed().test('is-bigint', 'Invalid bigint', value => typeof value === 'bigint').default(DEFAULT_DATA_LIMIT)
46+
defaultDataLimit: mixed<bigint>().test('is-bigint', 'Invalid bigint', value => typeof value === 'bigint').default(DEFAULT_DATA_LIMIT)
4747
})
4848
export class ReservationStore implements Startable {
4949
public readonly reservations = new PeerMap<RelayReservation>()
@@ -57,14 +57,14 @@ export class ReservationStore implements Startable {
5757
private readonly defaultDataLimit: bigint
5858

5959
constructor (options: ReservationStoreOptions = {}) {
60-
const config = configValidator.validateSync(options)
60+
const config = reservationStoreConfigValidator.validateSync(options)
6161

6262
this.maxReservations = config.maxReservations
6363
this.reservationClearInterval = config.reservationClearInterval
6464
this.applyDefaultLimit = config.applyDefaultLimit
6565
this.reservationTtl = config.reservationTtl
6666
this.defaultDurationLimit = config.defaultDurationLimit
67-
this.defaultDataLimit = config.defaultDataLimit as bigint
67+
this.defaultDataLimit = config.defaultDataLimit
6868
}
6969

7070
isStarted (): boolean {

packages/transport-circuit-relay-v2/src/transport/reservation-store.ts

+4-4
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ import { multiaddr } from '@multiformats/multiaddr'
55
import { pbStream } from 'it-protobuf-stream'
66
import { equals as uint8ArrayEquals } from 'uint8arrays/equals'
77
import { number, object } from 'yup'
8-
import { DEFAULT_RESERVATION_CONCURRENCY, RELAY_TAG, RELAY_V2_HOP_CODEC } from '../constants.js'
8+
import { DEFAULT_DISCOVER_RELAYS, DEFAULT_MAX_RESERVATION_QUEUE_LENGTH, DEFAULT_RESERVATION_COMPLETION_TIMEOUT, DEFAULT_RESERVATION_CONCURRENCY, RELAY_TAG, RELAY_V2_HOP_CODEC } from '../constants.js'
99
import { HopMessage, Status } from '../pb/index.js'
1010
import { getExpirationMilliseconds } from '../utils.js'
1111
import type { Reservation } from '../pb/index.js'
@@ -71,9 +71,9 @@ export interface ReservationStoreEvents {
7171
}
7272

7373
const configValidator = object({
74-
discoverRelays: number().integer().min(0).default(0),
75-
maxReservationQueueLength: number().integer().min(0).default(100),
76-
reservationCompletionTimeout: number().integer().min(0).default(10000),
74+
discoverRelays: number().integer().min(0).default(DEFAULT_DISCOVER_RELAYS),
75+
maxReservationQueueLength: number().integer().min(0).default(DEFAULT_MAX_RESERVATION_QUEUE_LENGTH),
76+
reservationCompletionTimeout: number().integer().min(0).default(DEFAULT_RESERVATION_COMPLETION_TIMEOUT),
7777
reservationConcurrency: number().integer().min(0).default(DEFAULT_RESERVATION_CONCURRENCY)
7878
})
7979

packages/transport-circuit-relay-v2/src/transport/transport.ts

+2-2
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ import * as mafmt from '@multiformats/mafmt'
66
import { multiaddr } from '@multiformats/multiaddr'
77
import { pbStream } from 'it-protobuf-stream'
88
import { object, number } from 'yup'
9-
import { CIRCUIT_PROTO_CODE, DEFAULT_STOP_TIMEOUT, ERR_HOP_REQUEST_FAILED, ERR_RELAYED_DIAL, MAX_CONNECTIONS, RELAY_V2_HOP_CODEC, RELAY_V2_STOP_CODEC } from '../constants.js'
9+
import { CIRCUIT_PROTO_CODE, DEFAULT_DISCOVER_RELAYS, DEFAULT_STOP_TIMEOUT, ERR_HOP_REQUEST_FAILED, ERR_RELAYED_DIAL, MAX_CONNECTIONS, RELAY_V2_HOP_CODEC, RELAY_V2_STOP_CODEC } from '../constants.js'
1010
import { StopMessage, HopMessage, Status } from '../pb/index.js'
1111
import { RelayDiscovery } from './discovery.js'
1212
import { createListener } from './listener.js'
@@ -40,7 +40,7 @@ interface ConnectOptions {
4040
}
4141

4242
const configValidator = object({
43-
discoverRelays: number().min(0).integer().default(0),
43+
discoverRelays: number().min(0).integer().default(DEFAULT_DISCOVER_RELAYS),
4444
maxInboundStopStreams: number().min(0).integer().default(MAX_CONNECTIONS),
4545
maxOutboundStopStreams: number().min(0).integer().default(MAX_CONNECTIONS),
4646
stopTimeout: number().min(0).integer().default(DEFAULT_STOP_TIMEOUT)

packages/upnp-nat/src/upnp-nat.ts

+4-2
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,8 @@ import type { Logger, Startable } from '@libp2p/interface'
1010

1111
const DEFAULT_TTL = 7200
1212

13+
const DEFAULT_KEEP_ALIVE = true
14+
1315
function highPort (min = 1024, max = 65535): number {
1416
return Math.floor(Math.random() * (max - min + 1) + min)
1517
}
@@ -21,7 +23,7 @@ const configValidator = object({
2123
localAddress: string().matches(validIPRegex, 'Invalid IP address'),
2224
description: string(),
2325
ttl: number().integer().min(0).default(DEFAULT_TTL),
24-
keepAlive: boolean().default(true),
26+
keepAlive: boolean().default(DEFAULT_KEEP_ALIVE),
2527
gateway: string().optional()
2628
})
2729

@@ -31,7 +33,7 @@ export class UPnPNAT implements Startable {
3133
private readonly localAddress?: string
3234
private readonly description: string
3335
private readonly ttl: number
34-
private readonly keepAlive?: boolean
36+
private readonly keepAlive: boolean
3537
private readonly gateway?: string
3638
private started: boolean
3739
private client?: NatAPI

0 commit comments

Comments
 (0)