def build_obj(cls, sk, url, name='Masternode') -> tuple: loop = asyncio.new_event_loop() asyncio.set_event_loop(loop) witness = NodeFactory._build_node(loop=loop, signing_key=sk, ip=url, node_cls=Witness, name=name) witness.start(start_loop=False) tasks = witness.tasks + [witness.composer.interface._recv_messages()] return witness, loop, tasks
def build_obj(cls, sk, name='Masternode') -> tuple: loop = asyncio.new_event_loop() asyncio.set_event_loop(loop) ip = os.getenv('HOST_IP', '127.0.0.1') log = get_logger("MPMasternode Builder") log.info("Creating Masternode with IP {}, signing key {}..., and name {}".format(ip, sk[:8], name)) mn = NodeFactory._build_node(loop=loop, signing_key=sk, ip=ip, node_cls=Masternode, name=name) mn.start(start_loop=False) tasks = mn.tasks + [mn.composer.interface._recv_messages()] return mn, loop, tasks
def _build_node(signing_key, name='', node_cls=None) -> tuple: assert node_cls and name, "This is an abstract class. Subclasses must pass in node_cls and name." assert node_cls in ( Witness, Masternode, Delegate ), "node_cls must be Witness/Masternode/Delegate, not {}".format(node_cls) loop = asyncio.get_event_loop() asyncio.set_event_loop(loop) with DB(should_reset=True) as db: pass ip = os.getenv('HOST_IP', '127.0.0.1') node = NodeFactory._build_node(loop=loop, signing_key=signing_key, ip=ip, node_cls=node_cls, name=name) node.start(start_loop=False) tasks = node.tasks + [node.composer.interface._recv_messages()] return node, loop, tasks