mirror of
https://github.com/logos-storage/logos-storage-nim.git
synced 2026-06-26 12:29:30 +00:00
28 lines
682 B
Nim
28 lines
682 B
Nim
import pkg/libp2p
|
|
import pkg/libp2p/errors
|
|
|
|
import pkg/storage/rng
|
|
|
|
proc newStandardSwitch*(
|
|
addrs: MultiAddress | seq[MultiAddress] = newSeq[MultiAddress](),
|
|
transportFlags: set[ServerFlags] = {},
|
|
sendSignedPeerRecord = false,
|
|
): Switch {.raises: [LPError].} =
|
|
var addrs =
|
|
when addrs is MultiAddress:
|
|
@[addrs]
|
|
else:
|
|
addrs
|
|
if addrs.len == 0:
|
|
addrs = @[MultiAddress.init("/ip4/127.0.0.1/tcp/0").expect("invalid multiaddress")]
|
|
|
|
SwitchBuilder
|
|
.new()
|
|
.withRng(Rng.instance())
|
|
.withSignedPeerRecord(sendSignedPeerRecord)
|
|
.withAddresses(addrs)
|
|
.withTcpTransport(transportFlags)
|
|
.withMplex()
|
|
.withNoise()
|
|
.build()
|