Implemented propagation node peering key generation and peering cost signalling

This commit is contained in:
Mark Qvist 2025-10-31 13:53:59 +01:00
commit 434267784d
6 changed files with 257 additions and 96 deletions

View file

@ -154,18 +154,20 @@ def pn_announce_data_is_valid(data):
if len(data) < 7: raise ValueError("Invalid announce data: Insufficient peer data")
else:
try: int(data[1])
except: raise ValueError("Invalid announce data: Could not decode peer timebase")
except: raise ValueError("Invalid announce data: Could not decode timebase")
if data[2] != True and data[2] != False: raise ValueError("Invalid announce data: Indeterminate propagation node status")
try: int(data[3])
except: raise ValueError("Invalid announce data: Could not decode peer propagation transfer limit")
except: raise ValueError("Invalid announce data: Could not decode propagation transfer limit")
try: int(data[4])
except: raise ValueError("Invalid announce data: Could not decode peer propagation sync limit")
if type(data[4]) != list: raise ValueError("Invalid announce data: Could not decode peer stamp costs")
except: raise ValueError("Invalid announce data: Could not decode propagation sync limit")
if type(data[4]) != list: raise ValueError("Invalid announce data: Could not decode stamp costs")
try: int(data[5][0])
except: raise ValueError("Invalid announce data: Could not decode peer target stamp cost")
except: raise ValueError("Invalid announce data: Could not decode target stamp cost")
try: int(data[5][1])
except: raise ValueError("Invalid announce data: Could not decode peer stamp cost flexibility")
if type(data[6]) != dict: raise ValueError("Invalid announce data: Could not decode peer metadata")
except: raise ValueError("Invalid announce data: Could not decode stamp cost flexibility")
try: int(data[5][2])
except: raise ValueError("Invalid announce data: Could not decode peering cost")
if type(data[6]) != dict: raise ValueError("Invalid announce data: Could not decode metadata")
except Exception as e:
RNS.log(f"Could not validate propagation node announce data: {e}", RNS.LOG_DEBUG)