def __init__(self, ksize=20, alpha=3, id=None, storage=None, talos_vc=None, rebub_delay=3600, tls_port=-1): """ Create a server instance. This will start listening on the given port. Args: ksize (int): The k parameter from the paper alpha (int): The alpha parameter from the paper id: The id for this node on the network. storage: An instance that implements :interface:`~kademlia.storage.IStorage` """ self.ksize = ksize self.alpha = alpha self.log = Logger(system=self) self.storage = storage or TalosLevelDBDHTStorage("./leveldb") self.node = Node(id or digest(random.getrandbits(255))) def start_looping_call(num_seconds): self.refreshLoop = LoopingCall(self.refreshTable).start(num_seconds) self.delay = rebub_delay task.deferLater(reactor, rebub_delay, start_looping_call, rebub_delay) self.talos_vc = talos_vc or AsyncPolicyApiClient() self.protocol = TalosKademliaProtocol(self.node, self.storage, ksize, talos_vc=self.talos_vc) self.httpprotocol_client = None self.tls_port = tls_port
def __init__(self, ttl=STORAGE_TTL): """ By default, max age is three years. """ self.data = OrderedDict() self.ttl = ttl self.log = Logger(system=self)
def __init__(self, ksize=20, alpha=3, priv_key=None, storage=None, talos_vc=None, rebub_delay=3600, c1bits=1, tls_port=-1): """ Create a server instance. This will start listening on the given port. Args: ksize (int): The k parameter from the paper alpha (int): The alpha parameter from the paper id: The id for this node on the network. storage: An instance that implements :interface:`~kademlia.storage.IStorage` """ self.ksize = ksize self.alpha = alpha self.log = Logger(system=self) self.storage = storage or TalosLevelDBDHTStorage("./leveldb") self.c1bits = c1bits if priv_key is None: self.priv_key, node_id = generate_keys_with_crypto_puzzle(c1bits) else: self.priv_key = priv_key node_id = pub_to_node_id(self.priv_key.public_key()) self.node = Node(node_id) def start_looping_call(num_seconds): self.refreshLoop = LoopingCall(self.refreshTable).start(num_seconds) self.delay = rebub_delay task.deferLater(reactor, rebub_delay, start_looping_call, rebub_delay) self.talos_vc = talos_vc or AsyncPolicyApiClient() self.protocol = TalosSKademliaProtocol(self.priv_key, self.node, self.storage, ksize, talos_vc=self.talos_vc, cbits=c1bits) self.httpprotocol_client = None self.tls_port = tls_port
def __init__(self, sourceNode, storage, ksize): RPCProtocol.__init__(self) self.router = RoutingTable(self, ksize, sourceNode) self.storage = storage self.sourceNode = sourceNode self.log = Logger(system=self) self.messages = []
def __init__(self, waitTimeout=10, max_packet_size=MAX_UDP_SIZE_PCK, noisy=False): self.max_packet_size = max_packet_size self.noisy = noisy self._waitTimeout = waitTimeout self._outstanding = {} self.log = Logger(system=self)
def __init__(self, sourceNode, storage, ksize, talos_vc=TalosVCRestClient()): TalosRPCProtocol.__init__(self) self.router = TalosKademliaRoutingTable(self, ksize, sourceNode) self.storage = storage self.sourceNode = sourceNode self.log = Logger(system=self) self.talos_vc = talos_vc self.http_client = None
def __init__(self, storage, talos_vc=TalosVCRestClient(), max_nonce_cache=1000, nonce_ttl=10): Resource.__init__(self) self.storage = storage self.log = Logger(system=self) self.talos_vc = talos_vc self.nonce_cache = TTLCache(max_nonce_cache, nonce_ttl) self.refreshLoop = LoopingCall(self.nonce_cache.expire).start(3600) self.sem = Semaphore(1)
def __init__(self, ksize=20, alpha=3, id=None, storage=None): """ Create a server instance. This will start listening on the given port. @param port: UDP port to listen on @param k: The k parameter from the paper @param alpha: The alpha parameter from the paper """ self.ksize = ksize self.alpha = alpha self.log = Logger(system=self) self.storage = storage or ForgetfulStorage() self.node = Node(id or digest(random.getrandbits(255))) self.protocol = KademliaProtocol(self.node, self.storage, ksize) self.refreshLoop = LoopingCall(self.refreshTable).start(3600)
def __init__(self, ksize=20, alpha=3, id=None, storage=None): """ Create a server instance. This will start listening on the given port. Args: ksize (int): The k parameter from the paper alpha (int): The alpha parameter from the paper id: The id for this node on the network. storage: An instance that implements :interface:`~kademlia.storage.IStorage` """ self.ksize = ksize self.alpha = alpha self.log = Logger(system=self) self.storage = storage or ForgetfulStorage() self.node = Node(id or digest(random.getrandbits(255))) self.protocol = KademliaProtocol(self.node, self.storage, ksize) self.refreshLoop = LoopingCall(self.refreshTable).start(3600)
def __init__(self, ecdsa_privkey, sourceNode, storage, ksize, talos_vc=TalosVCRestClient(), cbits=10, bench_mode=True): TalosWeakSignedRPCProtocol.__init__(self, ecdsa_privkey, sourceNode.id, cbits=cbits) self.router = TalosKademliaRoutingTable(self, ksize, sourceNode) self.storage = storage self.sourceNode = sourceNode self.log = Logger(system=self) self.talos_vc = talos_vc self.http_client = None self.bench_mode = bench_mode
def __init__(self, protocol, node, peers, ksize, alpha): """ Create a new C{SpiderCrawl}er. Args: protocol: A :class:`~kademlia.protocol.KademliaProtocol` instance. node: A :class:`~kademlia.node.Node` representing the key we're looking for peers: A list of :class:`~kademlia.node.Node` instances that provide the entry point for the network ksize: The value for k based on the paper alpha: The value for alpha based on the paper """ self.protocol = protocol self.ksize = ksize self.alpha = alpha self.node = node self.nearest = NodeHeap(self.node, self.ksize) self.lastIDsCrawled = [] self.log = Logger(system=self) self.log.info("creating spider with peers: %s" % peers) self.nearest.push(peers)
def __init__(self, dht_server=None): self.dht_server = dht_server self.log = Logger(system=self)
def __init__(self, storage, rpc_protocol, talos_vc=TalosVCRestClient()): Resource.__init__(self) self.storage = storage self.log = Logger(system=self) self.talos_vc = talos_vc self.rpc_protocol = rpc_protocol
def __init__(self, dhtstorage): Resource.__init__(self) self.dhtstorage = dhtstorage self.log = Logger(system=self)