mirror of
https://github.com/status-im/nim-eth-p2p.git
synced 2025-02-03 10:33:41 +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,
|
chain: AbstractChainDB,
|
||||||
clientId = "nim-eth-p2p/0.2.0", # TODO: read this value from nimble somehow
|
clientId = "nim-eth-p2p/0.2.0", # TODO: read this value from nimble somehow
|
||||||
addAllCapabilities = true,
|
addAllCapabilities = true,
|
||||||
useCompression: bool = false): EthereumNode =
|
useCompression: bool = false,
|
||||||
|
minPeers = 10): EthereumNode =
|
||||||
new result
|
new result
|
||||||
result.keys = keys
|
result.keys = keys
|
||||||
result.networkId = networkId
|
result.networkId = networkId
|
||||||
@ -53,6 +54,11 @@ proc newEthereumNode*(keys: KeyPair,
|
|||||||
|
|
||||||
result.protocolStates.newSeq allProtocols.len
|
result.protocolStates.newSeq allProtocols.len
|
||||||
|
|
||||||
|
result.peerPool = newPeerPool(result, networkId,
|
||||||
|
keys, nil,
|
||||||
|
clientId, address.tcpPort,
|
||||||
|
minPeers = minPeers)
|
||||||
|
|
||||||
if addAllCapabilities:
|
if addAllCapabilities:
|
||||||
for p in allProtocols:
|
for p in allProtocols:
|
||||||
result.addCapability(p)
|
result.addCapability(p)
|
||||||
@ -88,19 +94,14 @@ proc startListening*(node: EthereumNode) =
|
|||||||
proc connectToNetwork*(node: EthereumNode,
|
proc connectToNetwork*(node: EthereumNode,
|
||||||
bootstrapNodes: seq[ENode],
|
bootstrapNodes: seq[ENode],
|
||||||
startListening = true,
|
startListening = true,
|
||||||
enableDiscovery = true,
|
enableDiscovery = true) {.async.} =
|
||||||
minPeers = 10) {.async.} =
|
|
||||||
assert node.connectionState == ConnectionState.None
|
assert node.connectionState == ConnectionState.None
|
||||||
|
|
||||||
node.connectionState = Connecting
|
node.connectionState = Connecting
|
||||||
node.discovery = newDiscoveryProtocol(node.keys.seckey,
|
node.discovery = newDiscoveryProtocol(node.keys.seckey,
|
||||||
node.address,
|
node.address,
|
||||||
bootstrapNodes)
|
bootstrapNodes)
|
||||||
|
node.peerPool.discovery = node.discovery
|
||||||
node.peerPool = newPeerPool(node, node.networkId,
|
|
||||||
node.keys, node.discovery,
|
|
||||||
node.clientId, node.address.tcpPort,
|
|
||||||
minPeers = minPeers)
|
|
||||||
|
|
||||||
if startListening:
|
if startListening:
|
||||||
eth_p2p.startListening(node)
|
eth_p2p.startListening(node)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user