GitHub Action commited on
Commit
90eafcb
·
1 Parent(s): 920d275

Sync from GitHub with Git LFS

Browse files
Files changed (1) hide show
  1. agents/peer_sync.py +0 -88
agents/peer_sync.py CHANGED
@@ -113,94 +113,6 @@ def load_bootstrap_peers(filename="bootstrap.txt"):
113
  source="bootstrap", status="offline")
114
  print(f"[Bootstrap] Loaded peer {did} -> {expanded_addresses}")
115
 
116
- # ---------------------------
117
- # TCP Listener (обработка входящих PEER_EXCHANGE_REQUEST)
118
- # ---------------------------
119
- def tcp_listener():
120
- listen_sockets = []
121
-
122
- # Создаём TCP сокеты на всех локальных портах
123
- for port in local_ports:
124
- try:
125
- sock4 = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
126
- sock4.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
127
- sock4.bind(("", port))
128
- sock4.listen(5)
129
- listen_sockets.append(sock4)
130
- print(f"[TCP Listener] Listening IPv4 on *:{port}")
131
- except Exception as e:
132
- print(f"[TCP Listener] IPv4 bind failed on port {port}: {e}")
133
-
134
- try:
135
- sock6 = socket.socket(socket.AF_INET6, socket.SOCK_STREAM)
136
- sock6.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
137
- sock6.bind(("::", port))
138
- sock6.listen(5)
139
- listen_sockets.append(sock6)
140
- print(f"[TCP Listener] Listening IPv6 on [::]:{port}")
141
- except Exception as e:
142
- print(f"[TCP Listener] IPv6 bind failed on port {port}: {e}")
143
-
144
- while True:
145
- if not listen_sockets:
146
- time.sleep(1)
147
- continue
148
- rlist, _, _ = select.select(listen_sockets, [], [], 1)
149
- for s in rlist:
150
- try:
151
- conn, addr = s.accept()
152
- data = conn.recv(1024)
153
-
154
- if data == b"PEER_EXCHANGE_REQUEST":
155
- print(f"[TCP Listener] PEER_EXCHANGE_REQUEST from {addr}")
156
-
157
- # --- (1) Сохраняем нового пира ---
158
- peer_host, peer_port = addr[0], addr[1]
159
- peer_id = f"did:hmp:{peer_host}:{peer_port}" # временный ID, пока пир не представился
160
- storage.add_or_update_peer(
161
- peer_id,
162
- name="incoming",
163
- addresses=[f"tcp4://{peer_host}:{peer_port}"],
164
- source="incoming",
165
- status="online"
166
- )
167
-
168
- # --- (2) Отправляем список известных ---
169
- peers_list = []
170
- for peer in storage.get_known_peers(my_id, limit=50):
171
- peer_id = peer["id"]
172
- addresses_json = peer["addresses"]
173
- try:
174
- addresses = json.loads(addresses_json)
175
- except:
176
- addresses = []
177
- peers_list.append({"id": peer_id, "addresses": addresses})
178
- payload = json.dumps(peers_list).encode("utf-8")
179
- conn.sendall(payload)
180
-
181
- # --- (3) Делаем встречный запрос ---
182
- try:
183
- with socket.create_connection((peer_host, peer_port), timeout=3) as s2:
184
- s2.sendall(b"PEER_EXCHANGE_REQUEST")
185
- resp = s2.recv(65536)
186
- if resp:
187
- new_peers = json.loads(resp.decode("utf-8"))
188
- for p in new_peers:
189
- storage.add_or_update_peer(
190
- p["id"],
191
- name="from_incoming",
192
- addresses=p.get("addresses", []),
193
- source="reverse-sync",
194
- status="online"
195
- )
196
- print(f"[TCP Listener] Reverse sync: got {len(new_peers)} peers from {peer_host}:{peer_port}")
197
- except Exception as e:
198
- print(f"[TCP Listener] Reverse sync failed with {peer_host}:{peer_port}: {e}")
199
-
200
- conn.close()
201
- except Exception as e:
202
- print(f"[TCP Listener] Connection handling error: {e}")
203
-
204
  # ---------------------------
205
  # UDP Discovery
206
  # ---------------------------
 
113
  source="bootstrap", status="offline")
114
  print(f"[Bootstrap] Loaded peer {did} -> {expanded_addresses}")
115
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
116
  # ---------------------------
117
  # UDP Discovery
118
  # ---------------------------