Esempio n. 1
0
File: dht.py Progetto: shish/chunker
class DHTPeerFinder(PeerFinder):
    # TODO: rename MetaNet to this
    _default_peers = [
        {
            "host": "violet.shishnet.org",
            "port": 52525
        }
    ]

    def __init__(self, core):
        self.core = core
        self.sender = Thread(target=self.run, name="DHTPeerFinder[Send]")
        self.sender.daemon = True

    def start(self):
        self.sender.start()

    def run(self):
        self._log("Getting external IP info")
        nat_type, external_ip, external_port = stun.get_ip_info()
        #nat_type, external_ip, external_port = None, "0.0.0.0", 12345
        self._log("Public addr: %s:%s" % (external_ip, external_port))

        self._log("Connecting to DHT")
        self.dht = DHT("0.0.0.0", 52525)
        self.public_contact = (external_ip, external_port)
        for peer in self.core.config.get("peers", self._default_peers):
            self.dht.bootstrap(peer["host"], peer["port"])

    def _log(self, msg):
        log.info("[MetaNet] %s" % msg)

    def offer(self, chunk):
        self._log("Offering %s" % chunk.id)

        if chunk.id not in self.dht:
            self.dht[chunk.id] = [self.public_contact]
        else:
            self.dht[chunk.id] = self.dht[chunk.id] + [self.public_contact]

    def request(self, chunk):
        self._log("Requesting %s" % chunk.id)
Esempio n. 2
0
File: dht.py Progetto: shish/chunker
    def run(self):
        self._log("Getting external IP info")
        nat_type, external_ip, external_port = stun.get_ip_info()
        #nat_type, external_ip, external_port = None, "0.0.0.0", 12345
        self._log("Public addr: %s:%s" % (external_ip, external_port))

        self._log("Connecting to DHT")
        self.dht = DHT("0.0.0.0", 52525)
        self.public_contact = (external_ip, external_port)
        for peer in self.core.config.get("peers", self._default_peers):
            self.dht.bootstrap(peer["host"], peer["port"])
Esempio n. 3
0
from pydht import DHT
import time

dht = DHT('192.168.0.164', 3000, boot_host='192.168.0.6', boot_port=3000)

print dht['test']
Esempio n. 4
0
import sys
import os
import time

#for Kademlia
from pydht import DHT
from pydht import sign_verify as sv

#for cache
import anydbm

print 'User Server for Kernel Module started'

host1, port1 = 'localhost', 3000
host2, port2 = 'localhost', 3001
dht2 = DHT(host2, port2, boot_host=host1, boot_port=port1)

server_address = '/tmp/usocket'

# Make sure the socket does not already exist
try:
	os.unlink(server_address)
except OSError:
	if os.path.exists(server_address):
		raise

# Create a UDS socket
sock = socket.socket(socket.AF_UNIX, socket.SOCK_STREAM)

# Bind the socket to the port
sock.bind(server_address)
Esempio n. 5
0
#!/usr/bin/python

from pydht import DHT
from pydht import sign_verify as sv
from pydht.hashing import hash_function
import time

host1, port1 = 'localhost', 3000
dht1 = DHT(host1, port1)

print "Kademlia DHT started"

while True:
    pass
Esempio n. 6
0
                                                       WebSocketServerFactory

from pydht import DHT
import sys
import json
import tempfile

from twisted.python import log
from twisted.internet import reactor

NUM_NODES = 2
PORT_START = 4000
HOST = "localhost"

print "Creating node, joining network"
node = DHT("localhost", PORT_START + 50)
node.bootstrap("localhost", PORT_START)
print "Done."

class MyServerProtocol(WebSocketServerProtocol):

   def makeUrl(self):
       return tempfile.NamedTemporaryFile()

   def onConnect(self, request):
      print "Client connecting: {}".format(request.peer)

   def onOpen(self):
      print "WebSocket connection open."

   def onMessage(self, payload, isBinary):
Esempio n. 7
0
#!/usr/bin/python -i

from pydht import DHT 

host,port = '10.251.10.224',7000
strap = 'bl3dr.com'
d = DHT(host,port,boot_host=strap,boot_port=port)
nodes = d.iterative_find_nodes(2)
print nodes
server = d['server']
print server
import requests
r = requests.get(server)
print r.json()

Esempio n. 8
0
def join_network(hostname, port, boot_host, boot_port):
    n = DHT(hostname, port)
    n.bootstrap(boot_host, boot_port)
    return n