You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Comrad/p2p/p2p.py

69 lines
1.7 KiB
Python

import logging
import asyncio
4 years ago
import shelve
from collections import OrderedDict
import pickle,os
4 years ago
# NODES_PRIME = [("128.232.229.63",8467), ("68.66.241.111",8467)]
4 years ago
4 years ago
NODES_PRIME = [("68.66.241.111",8467)] # ("10.42.0.13",8467)]
async def echo(msg):
print('echo',msg)
def boot_selfless_node(port=8468, loop=None):
# handler = logging.StreamHandler()
# formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')
# handler.setFormatter(formatter)
# log = logging.getLogger('kademlia')
# log.addHandler(handler)
# log.setLevel(logging.DEBUG)
if not loop: loop = asyncio.get_event_loop()
4 years ago
loop.set_debug(True)
4 years ago
# shelf = HalfForgetfulStorage()
4 years ago
4 years ago
#server = Server(storage=shelf)
try:
from kad import KadServer,HalfForgetfulStorage
except ImportError:
from .kad import KadServer,HalfForgetfulStorage
4 years ago
server = KadServer(storage=HalfForgetfulStorage())
loop.create_task(server.listen(port))
# try:
# loop.run_forever()
# except KeyboardInterrupt:
# pass
# finally:
# server.stop()
# loop.close()
4 years ago
return server,loop
4 years ago
def boot_lonely_selfless_node(port=8467):
4 years ago
# handler = logging.StreamHandler()
# formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')
# handler.setFormatter(formatter)
# log = logging.getLogger('kademlia')
# log.addHandler(handler)
# log.setLevel(logging.DEBUG)
4 years ago
4 years ago
server,loop = boot_selfless_node(port,loop=None)
4 years ago
try:
loop.run_forever()
except KeyboardInterrupt:
pass
finally:
server.stop()
loop.close()