mirror of
https://github.com/status-im/nim-eth-p2p.git
synced 2025-02-03 02:23:30 +00:00
make it impossible to run a network node without PeerPool
This commit is contained in:
parent
99b6b86414
commit
8981d98786
17
eth_p2p.nim
17
eth_p2p.nim
@ -37,7 +37,8 @@ proc newEthereumNode*(keys: KeyPair,
|
||||
chain: AbstractChainDB,
|
||||
clientId = "nim-eth-p2p/0.2.0", # TODO: read this value from nimble somehow
|
||||
addAllCapabilities = true,
|
||||
useCompression: bool = false): EthereumNode =
|
||||
useCompression: bool = false,
|
||||
minPeers = 10): EthereumNode =
|
||||
new result
|
||||
result.keys = keys
|
||||
result.networkId = networkId
|
||||
@ -53,6 +54,11 @@ proc newEthereumNode*(keys: KeyPair,
|
||||
|
||||
result.protocolStates.newSeq allProtocols.len
|
||||
|
||||
result.peerPool = newPeerPool(result, networkId,
|
||||
keys, nil,
|
||||
clientId, address.tcpPort,
|
||||
minPeers = minPeers)
|
||||
|
||||
if addAllCapabilities:
|
||||
for p in allProtocols:
|
||||
result.addCapability(p)
|
||||
@ -88,19 +94,14 @@ proc startListening*(node: EthereumNode) =
|
||||
proc connectToNetwork*(node: EthereumNode,
|
||||
bootstrapNodes: seq[ENode],
|
||||
startListening = true,
|
||||
enableDiscovery = true,
|
||||
minPeers = 10) {.async.} =
|
||||
enableDiscovery = true) {.async.} =
|
||||
assert node.connectionState == ConnectionState.None
|
||||
|
||||
node.connectionState = Connecting
|
||||
node.discovery = newDiscoveryProtocol(node.keys.seckey,
|
||||
node.address,
|
||||
bootstrapNodes)
|
||||
|
||||
node.peerPool = newPeerPool(node, node.networkId,
|
||||
node.keys, node.discovery,
|
||||
node.clientId, node.address.tcpPort,
|
||||
minPeers = minPeers)
|
||||
node.peerPool.discovery = node.discovery
|
||||
|
||||
if startListening:
|
||||
eth_p2p.startListening(node)
|
||||
|
Loading…
x
Reference in New Issue
Block a user