Skip to content

Commit 09ef898

Browse files
committed
refactor(p2p): implement PeerConnections
1 parent fe84bec commit 09ef898

26 files changed

+590
-388
lines changed

hathor/metrics.py

+5-5
Original file line numberDiff line numberDiff line change
@@ -109,8 +109,8 @@ class Metrics:
109109
# Variables to store the last block when we updated the RocksDB storage metrics
110110
last_txstorage_data_block: Optional[int] = None
111111

112-
# Peers connected
113-
connected_peers: int = 0
112+
# Peers ready
113+
ready_peers: int = 0
114114
# Peers handshaking
115115
handshaking_peers: int = 0
116116
# Peers connecting
@@ -200,7 +200,7 @@ def handle_publish(self, key: HathorEvents, args: EventArguments) -> None:
200200
):
201201
peers_connection_metrics: PeerConnectionsMetrics = data["peers_count"]
202202

203-
self.connected_peers = peers_connection_metrics.connected_peers_count
203+
self.ready_peers = peers_connection_metrics.ready_peers_count
204204
self.connecting_peers = peers_connection_metrics.connecting_peers_count
205205
self.handshaking_peers = peers_connection_metrics.handshaking_peers_count
206206
self.known_peers = peers_connection_metrics.known_peers_count
@@ -247,14 +247,14 @@ def collect_peer_connection_metrics(self) -> None:
247247
"""
248248
self.peer_connection_metrics.clear()
249249

250-
for connection in self.connections.connections:
250+
for connection in self.connections.get_connected_peers():
251251
if not connection._peer:
252252
# A connection without peer will not be able to communicate
253253
# So we can just discard it for the sake of the metrics
254254
continue
255255

256256
metric = PeerConnectionMetrics(
257-
connection_string=str(connection.entrypoint) if connection.entrypoint else "",
257+
connection_string=str(connection.addr),
258258
peer_id=str(connection.peer.id),
259259
network=settings.NETWORK_NAME,
260260
received_messages=connection.metrics.received_messages,

hathor/p2p/factory.py

+4-4
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@
2020
from hathor.conf.settings import HathorSettings
2121
from hathor.p2p.manager import ConnectionsManager
2222
from hathor.p2p.peer import PrivatePeer
23+
from hathor.p2p.peer_endpoint import PeerAddress
2324
from hathor.p2p.protocol import HathorLineReceiver
2425

2526

@@ -41,15 +42,14 @@ def __init__(
4142
self.use_ssl = use_ssl
4243

4344
def buildProtocol(self, addr: IAddress) -> HathorLineReceiver:
44-
p = HathorLineReceiver(
45+
return HathorLineReceiver(
46+
addr=PeerAddress.from_address(addr),
4547
my_peer=self.my_peer,
4648
p2p_manager=self.p2p_manager,
4749
use_ssl=self.use_ssl,
4850
inbound=self.inbound,
49-
settings=self._settings
51+
settings=self._settings,
5052
)
51-
p.factory = self
52-
return p
5353

5454

5555
class HathorServerFactory(_HathorLineReceiverFactory, protocol.ServerFactory):

0 commit comments

Comments
 (0)