diff --git a/src/client.py b/src/client.py index 303f19d..59a91cd 100644 --- a/src/client.py +++ b/src/client.py @@ -213,7 +213,7 @@ class IP_Message(BaseModel): dest_ip: str message_name: str source_ip: str - pk: int + pk: Tuple[int, int] class Request_Message(BaseModel): @@ -305,7 +305,7 @@ async def recieve_request(i_m: IP_Message): message = b"hello world" + random.randbytes(8) # send message to nodes - await send_messages(node_ips, message, dest_ip, pk_B, threshold) # type: ignore + await send_messages(tuple(node_ips), message, dest_ip, pk_B, threshold) response = {"threshold": threshold, "public_key": own_public_key} return response diff --git a/src/server.py b/src/server.py index c4b8fa3..18d6214 100644 --- a/src/server.py +++ b/src/server.py @@ -29,6 +29,7 @@ def init(): asyncio.create_task(receive_heartbeat_internal()) def clean_env(): + clear_database() # 关闭游标和连接 cursor.close() conn.close() @@ -86,14 +87,14 @@ async def delete_node(ip: str) -> None: print(f"Node with IP {ip} not found.") # 接收节点心跳包 -@app.post("/server/heartbeat") +@app.get("/server/heartbeat") async def receive_heartbeat(ip: str): cursor.execute("UPDATE nodes SET last_heartbeat = ? WHERE ip = ?", (time.time(), ip)) return {"status": "received"} async def receive_heartbeat_internal(): while 1: - timeout = 70 + timeout = 7 # 删除超时的节点 # cursor.execute("DELETE FROM nodes WHERE last_heartbeat < ?", (time.time() - timeout,)) # conn.commit() @@ -120,12 +121,12 @@ async def send_nodes_list(count: int) -> list: return nodes_list -@app.get("/server/clear_database") -async def clear_database() -> None: +# @app.get("/server/clear_database") +def clear_database() -> None: cursor.execute("DELETE FROM nodes") conn.commit() if __name__ == "__main__": import uvicorn # pylint: disable=e0401 - uvicorn.run("server:app", host="0.0.0.0", port=8000, reload=True) \ No newline at end of file + uvicorn.run("server:app", host="0.0.0.0", port=8000, reload=True)