GitHub Action commited on
Commit
5de0c3e
·
1 Parent(s): 1c4d3c0

Sync from GitHub with Git LFS

Browse files
Files changed (2) hide show
  1. agents/peer_sync.py +1 -32
  2. agents/tools/storage.py +29 -0
agents/peer_sync.py CHANGED
@@ -23,38 +23,7 @@ local_addresses = storage.get_config_value("local_addresses", [])
23
  global_addresses = storage.get_config_value("global_addresses", [])
24
  all_addresses = local_addresses + global_addresses # один раз
25
 
26
- # Получаем уникальные локальные порты
27
- def get_local_ports(storage):
28
- """
29
- Возвращает список портов для всех локальных адресов.
30
- Формат конфигурации: список dict {"addr": str, "nonce": int, "pow_hash": str, "expires": ...}
31
- """
32
- local_addrs_json = storage.get_config("local_addresses")
33
- if not local_addrs_json:
34
- return []
35
-
36
- try:
37
- local_addrs = json.loads(local_addrs_json)
38
- except:
39
- print("[WARN] Не удалось разобрать local_addresses из БД")
40
- return []
41
-
42
- ports = []
43
- for entry in local_addrs:
44
- # Если entry — словарь, берём поле addr, иначе предполагаем строку
45
- addr_str = entry["addr"] if isinstance(entry, dict) else entry
46
-
47
- # Разбираем протокол и host:port
48
- try:
49
- proto, hostport = addr_str.split("://", 1)
50
- _, port = storage.parse_hostport(hostport)
51
- ports.append(port)
52
- except Exception as e:
53
- print(f"[WARN] Не удалось разобрать адрес {addr_str}: {e}")
54
-
55
- return ports
56
-
57
- local_ports = get_local_ports()
58
  print(f"[PeerSync] Local ports: {local_ports}")
59
 
60
  # ---------------------------
 
23
  global_addresses = storage.get_config_value("global_addresses", [])
24
  all_addresses = local_addresses + global_addresses # один раз
25
 
26
+ local_ports = storage.get_local_ports()
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
27
  print(f"[PeerSync] Local ports: {local_ports}")
28
 
29
  # ---------------------------
agents/tools/storage.py CHANGED
@@ -967,6 +967,35 @@ class Storage:
967
 
968
  return f"{proto}://{host}:{port}" if port else f"{proto}://{host}"
969
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
970
  # Нормализация DID
971
  @staticmethod
972
  def normalize_did(did: str) -> str:
 
967
 
968
  return f"{proto}://{host}:{port}" if port else f"{proto}://{host}"
969
 
970
+ # Получаем уникальные локальные порты
971
+ def get_local_ports(self):
972
+ """
973
+ Возвращает список портов для всех локальных адресов.
974
+ Формат конфигурации: список dict {"address": str, "pow": {...}, "expires": str, "difficulty": int}
975
+ """
976
+ local_addrs_json = self.get_config_value("local_addresses")
977
+ if not local_addrs_json:
978
+ return []
979
+
980
+ try:
981
+ local_addrs = json.loads(local_addrs_json)
982
+ except Exception:
983
+ print("[WARN] Не удалось разобрать local_addresses из БД")
984
+ return []
985
+
986
+ ports = []
987
+ for entry in local_addrs:
988
+ addr_str = entry["address"] if isinstance(entry, dict) else entry
989
+
990
+ try:
991
+ proto, hostport = addr_str.split("://", 1)
992
+ _, port = self.parse_hostport(hostport)
993
+ ports.append(port)
994
+ except Exception as e:
995
+ print(f"[WARN] Не удалось разобрать адрес {addr_str}: {e}")
996
+
997
+ return ports
998
+
999
  # Нормализация DID
1000
  @staticmethod
1001
  def normalize_did(did: str) -> str: