async def setup_timelord(port, full_node_port, sanitizer, consensus_constants: ConsensusConstants, b_tools): config = b_tools.config["timelord"] config["port"] = port config["full_node_peer"]["port"] = full_node_port config["sanitizer_mode"] = sanitizer config["fast_algorithm"] = False if sanitizer: config["vdf_server"]["port"] = 7999 kwargs = service_kwargs_for_timelord(b_tools.root_path, config, consensus_constants) kwargs.update( parse_cli_args=False, connect_to_daemon=False, ) service = Service(**kwargs) await service.start() yield service._api, service._node.server service.stop() await service.wait_closed()
async def setup_farmer( port, consensus_constants: ConsensusConstants, b_tools, full_node_port: Optional[uint16] = None, ): config = bt.config["farmer"] config_pool = bt.config["pool"] config["xch_target_address"] = encode_puzzle_hash(b_tools.farmer_ph, "xch") config["pool_public_keys"] = [bytes(pk).hex() for pk in b_tools.pool_pubkeys] config["port"] = port config_pool["xch_target_address"] = encode_puzzle_hash(b_tools.pool_ph, "xch") if full_node_port: config["full_node_peer"]["host"] = self_hostname config["full_node_peer"]["port"] = full_node_port else: del config["full_node_peer"] kwargs = service_kwargs_for_farmer(b_tools.root_path, config, config_pool, b_tools.keychain, consensus_constants) kwargs.update( parse_cli_args=False, connect_to_daemon=False, ) service = Service(**kwargs) await service.start() yield service._api, service._node.server service.stop() await service.wait_closed()
async def setup_full_node( consensus_constants: ConsensusConstants, db_name, port, local_bt, introducer_port=None, simulator=False, send_uncompact_interval=0, sanitize_weight_proof_only=False, connect_to_daemon=False, ): db_path = local_bt.root_path / f"{db_name}" if db_path.exists(): db_path.unlink() config = local_bt.config["full_node"] config["database_path"] = db_name config["send_uncompact_interval"] = send_uncompact_interval config["target_uncompact_proofs"] = 30 config["peer_connect_interval"] = 50 config["sanitize_weight_proof_only"] = sanitize_weight_proof_only if introducer_port is not None: config["introducer_peer"]["host"] = self_hostname config["introducer_peer"]["port"] = introducer_port else: config["introducer_peer"] = None config["dns_servers"] = [] config["port"] = port config["rpc_port"] = port + 1000 overrides = config["network_overrides"]["constants"][ config["selected_network"]] updated_constants = consensus_constants.replace_str_to_bytes(**overrides) if simulator: kwargs = service_kwargs_for_full_node_simulator( local_bt.root_path, config, local_bt) else: kwargs = service_kwargs_for_full_node(local_bt.root_path, config, updated_constants) kwargs.update( parse_cli_args=False, connect_to_daemon=connect_to_daemon, ) service = Service(**kwargs) await service.start() yield service._api service.stop() await service.wait_closed() if db_path.exists(): db_path.unlink()
async def setup_harvester(port, farmer_port, consensus_constants: ConsensusConstants, b_tools): kwargs = service_kwargs_for_harvester(b_tools.root_path, b_tools.config["harvester"], consensus_constants) kwargs.update( server_listen_ports=[port], advertised_port=port, connect_peers=[PeerInfo(self_hostname, farmer_port)], parse_cli_args=False, connect_to_daemon=False, ) service = Service(**kwargs) await service.start() yield service._node, service._node.server service.stop() await service.wait_closed()
async def setup_introducer(port): kwargs = service_kwargs_for_introducer( bt.root_path, bt.config["introducer"], ) kwargs.update( advertised_port=port, parse_cli_args=False, connect_to_daemon=False, ) service = Service(**kwargs) await service.start() yield service._api, service._node.server service.stop() await service.wait_closed()
async def setup_wallet_node( port, consensus_constants: ConsensusConstants, local_bt, full_node_port=None, introducer_port=None, key_seed=None, starting_height=None, ): config = bt.config["wallet"] config["port"] = port config["rpc_port"] = port + 1000 if starting_height is not None: config["starting_height"] = starting_height config["initial_num_public_keys"] = 5 entropy = token_bytes(32) keychain = Keychain(entropy.hex(), True) if key_seed is None: key_seed = entropy keychain.add_private_key(bytes_to_mnemonic(key_seed), "") first_pk = keychain.get_first_public_key() assert first_pk is not None db_path_key_suffix = str(first_pk.get_fingerprint()) db_name = f"test-wallet-db-{port}-KEY.sqlite" db_path_replaced: str = db_name.replace("KEY", db_path_key_suffix) db_path = bt.root_path / db_path_replaced if db_path.exists(): db_path.unlink() config["database_path"] = str(db_name) config["testing"] = True config["introducer_peer"]["host"] = self_hostname if introducer_port is not None: config["introducer_peer"]["port"] = introducer_port config["peer_connect_interval"] = 10 else: config["introducer_peer"] = None if full_node_port is not None: config["full_node_peer"] = {} config["full_node_peer"]["host"] = self_hostname config["full_node_peer"]["port"] = full_node_port else: del config["full_node_peer"] kwargs = service_kwargs_for_wallet(local_bt.root_path, config, consensus_constants, keychain) kwargs.update( parse_cli_args=False, connect_to_daemon=False, ) service = Service(**kwargs) await service.start(new_wallet=True) yield service._node, service._node.server service.stop() await service.wait_closed() if db_path.exists(): db_path.unlink() keychain.delete_all_keys()