From dfc0bb4ec8a7e208ac0c757f97f0b07d5cc95b64 Mon Sep 17 00:00:00 2001 From: Luca Vivona Date: Thu, 19 Jun 2025 21:24:39 -0400 Subject: [PATCH] chore(kad_dht): centralize shared values in common.py --- libp2p/kad_dht/common.py | 10 ++++++++++ libp2p/kad_dht/kad_dht.py | 12 ++++++------ libp2p/kad_dht/peer_routing.py | 8 +++++--- libp2p/kad_dht/provider_store.py | 9 ++++++--- libp2p/kad_dht/value_store.py | 10 +++++----- 5 files changed, 32 insertions(+), 17 deletions(-) create mode 100644 libp2p/kad_dht/common.py diff --git a/libp2p/kad_dht/common.py b/libp2p/kad_dht/common.py new file mode 100644 index 00000000..ccabb002 --- /dev/null +++ b/libp2p/kad_dht/common.py @@ -0,0 +1,10 @@ +from libp2p.custom_types import ( + TProtocol, +) + +# Constants for the Kademlia algorithm +ALPHA = 3 # Concurrency parameter +PROTOCOL_ID = TProtocol("/ipfs/kad/1.0.0") +QUERY_TIMEOUT = 10 + +TTL = DEFAULT_TTL = 24 * 60 * 60 # 24 hours in seconds \ No newline at end of file diff --git a/libp2p/kad_dht/kad_dht.py b/libp2p/kad_dht/kad_dht.py index 7daad4cb..8a917bda 100644 --- a/libp2p/kad_dht/kad_dht.py +++ b/libp2p/kad_dht/kad_dht.py @@ -49,16 +49,16 @@ from .routing_table import ( from .value_store import ( ValueStore, ) +from .common import ( + PROTOCOL_ID, + ALPHA, + QUERY_TIMEOUT +) logger = logging.getLogger("kademlia-example.kad_dht") # logger = logging.getLogger("libp2p.kademlia") # Default parameters -PROTOCOL_ID = TProtocol("/ipfs/kad/1.0.0") -ROUTING_TABLE_REFRESH_INTERVAL = 1 * 60 # 1 min in seconds for testing -TTL = 24 * 60 * 60 # 24 hours in seconds -ALPHA = 3 -QUERY_TIMEOUT = 10 # seconds - +ROUTING_TABLE_REFRESH_INTERVAL = 60 # 1 min in seconds for testing class DHTMode(Enum): """DHT operation modes.""" diff --git a/libp2p/kad_dht/peer_routing.py b/libp2p/kad_dht/peer_routing.py index f3689e11..2e2107a0 100644 --- a/libp2p/kad_dht/peer_routing.py +++ b/libp2p/kad_dht/peer_routing.py @@ -25,12 +25,17 @@ from libp2p.peer.peerinfo import ( PeerInfo, ) + from .pb.kademlia_pb2 import ( Message, ) from .routing_table import ( RoutingTable, ) +from .common import ( + PROTOCOL_ID, + ALPHA +) from .utils import ( sort_peer_ids_by_distance, ) @@ -38,10 +43,7 @@ from .utils import ( # logger = logging.getLogger("libp2p.kademlia.peer_routing") logger = logging.getLogger("kademlia-example.peer_routing") -# Constants for the Kademlia algorithm -ALPHA = 3 # Concurrency parameter MAX_PEER_LOOKUP_ROUNDS = 20 # Maximum number of rounds in peer lookup -PROTOCOL_ID = TProtocol("/ipfs/kad/1.0.0") class PeerRouting(IPeerRouting): diff --git a/libp2p/kad_dht/provider_store.py b/libp2p/kad_dht/provider_store.py index 00ac6010..4938be2e 100644 --- a/libp2p/kad_dht/provider_store.py +++ b/libp2p/kad_dht/provider_store.py @@ -33,6 +33,12 @@ from .pb.kademlia_pb2 import ( Message, ) +from .common import ( + PROTOCOL_ID, + ALPHA, + QUERY_TIMEOUT +) + # logger = logging.getLogger("libp2p.kademlia.provider_store") logger = logging.getLogger("kademlia-example.provider_store") @@ -40,9 +46,6 @@ logger = logging.getLogger("kademlia-example.provider_store") PROVIDER_RECORD_REPUBLISH_INTERVAL = 22 * 60 * 60 # 22 hours in seconds PROVIDER_RECORD_EXPIRATION_INTERVAL = 48 * 60 * 60 # 48 hours in seconds PROVIDER_ADDRESS_TTL = 30 * 60 # 30 minutes in seconds -PROTOCOL_ID = TProtocol("/ipfs/kad/1.0.0") -ALPHA = 3 # Number of parallel queries/advertisements -QUERY_TIMEOUT = 10 # Timeout for each query in seconds class ProviderRecord: diff --git a/libp2p/kad_dht/value_store.py b/libp2p/kad_dht/value_store.py index a2e54776..c133fd00 100644 --- a/libp2p/kad_dht/value_store.py +++ b/libp2p/kad_dht/value_store.py @@ -23,14 +23,14 @@ from .pb.kademlia_pb2 import ( Message, ) +from .common import ( + PROTOCOL_ID, + DEFAULT_TTL +) + # logger = logging.getLogger("libp2p.kademlia.value_store") logger = logging.getLogger("kademlia-example.value_store") -# Default time to live for values in seconds (24 hours) -DEFAULT_TTL = 24 * 60 * 60 -PROTOCOL_ID = TProtocol("/ipfs/kad/1.0.0") - - class ValueStore: """ Store for key-value pairs in a Kademlia DHT.