diff --git a/build_scripts/pyinstaller.spec b/build_scripts/pyinstaller.spec index ff778fe4d2c2..ae18dbb48357 100644 --- a/build_scripts/pyinstaller.spec +++ b/build_scripts/pyinstaller.spec @@ -173,7 +173,7 @@ add_binary("chia", f"{ROOT}/chia/cmds/chia.py", COLLECT_ARGS) add_binary("daemon", f"{ROOT}/chia/daemon/server.py", COLLECT_ARGS) for server in SERVERS: - add_binary(f"start_{server}", f"{ROOT}/chia/server/start_{server}.py", COLLECT_ARGS) + add_binary(f"start_{server}", f"{ROOT}/chia/{server}/start_{server}.py", COLLECT_ARGS) add_binary("start_crawler", f"{ROOT}/chia/seeder/start_crawler.py", COLLECT_ARGS) add_binary("start_seeder", f"{ROOT}/chia/seeder/dns_server.py", COLLECT_ARGS) diff --git a/chia/_tests/cmds/test_farm_cmd.py b/chia/_tests/cmds/test_farm_cmd.py index 65fee50e68e3..e72cb86bc927 100644 --- a/chia/_tests/cmds/test_farm_cmd.py +++ b/chia/_tests/cmds/test_farm_cmd.py @@ -8,10 +8,12 @@ from chia._tests.util.time_out_assert import time_out_assert from chia.cmds.farm_funcs import summary from chia.farmer.farmer import Farmer +from chia.farmer.farmer_service import FarmerService from chia.harvester.harvester import Harvester -from chia.server.aliases import FarmerService, HarvesterService, WalletService +from chia.harvester.harvester_service import HarvesterService from chia.simulator.block_tools import BlockTools from chia.simulator.start_simulator import SimulatorFullNodeService +from chia.wallet.wallet_service import WalletService @pytest.mark.anyio diff --git a/chia/_tests/conftest.py b/chia/_tests/conftest.py index 68fb9338194e..51266ab9db1c 100644 --- a/chia/_tests/conftest.py +++ b/chia/_tests/conftest.py @@ -50,17 +50,13 @@ from chia._tests.util.spend_sim import CostLogger from chia._tests.util.time_out_assert import time_out_assert from chia.farmer.farmer_rpc_client import FarmerRpcClient +from chia.farmer.farmer_service import FarmerService from chia.full_node.full_node_api import FullNodeAPI +from chia.full_node.full_node_service import FullNodeService from chia.harvester.harvester_rpc_client import HarvesterRpcClient +from chia.harvester.harvester_service import HarvesterService +from chia.seeder.crawler_service import CrawlerService from chia.seeder.dns_server import DNSServer -from chia.server.aliases import ( - CrawlerService, - FarmerService, - FullNodeService, - HarvesterService, - TimelordService, - WalletService, -) from chia.server.server import ChiaServer from chia.simulator.full_node_simulator import FullNodeSimulator from chia.simulator.setup_services import ( @@ -73,6 +69,7 @@ ) from chia.simulator.start_simulator import SimulatorFullNodeService from chia.simulator.wallet_tools import WalletTool +from chia.timelord.timelord_service import TimelordService from chia.types.peer_info import PeerInfo from chia.util.config import create_default_chia_config, lock_and_load_config from chia.util.db_wrapper import generate_in_memory_db_uri @@ -81,6 +78,7 @@ from chia.util.task_timing import start_task_instrumentation, stop_task_instrumentation from chia.wallet.wallet_node import WalletNode from chia.wallet.wallet_rpc_client import WalletRpcClient +from chia.wallet.wallet_service import WalletService # TODO: review how this is now after other imports and before some stdlib imports... :[ # Set spawn after stdlib imports, but before other imports diff --git a/chia/_tests/core/data_layer/test_data_rpc.py b/chia/_tests/core/data_layer/test_data_rpc.py index 4ee942e50229..e5da4537b4a1 100644 --- a/chia/_tests/core/data_layer/test_data_rpc.py +++ b/chia/_tests/core/data_layer/test_data_rpc.py @@ -44,6 +44,7 @@ from chia.data_layer.data_layer_errors import KeyNotFoundError, OfferIntegrityError from chia.data_layer.data_layer_rpc_api import DataLayerRpcApi from chia.data_layer.data_layer_rpc_client import DataLayerRpcClient +from chia.data_layer.data_layer_service import DataLayerService from chia.data_layer.data_layer_util import ( HashOnlyProof, OfferStore, @@ -56,8 +57,7 @@ from chia.data_layer.data_layer_wallet import DataLayerWallet, verify_offer from chia.data_layer.data_store import DataStore from chia.data_layer.download_data import get_delta_filename_path, get_full_tree_filename_path -from chia.server.aliases import DataLayerService, WalletService -from chia.server.start_data_layer import create_data_layer_service +from chia.data_layer.start_data_layer import create_data_layer_service from chia.simulator.block_tools import BlockTools from chia.simulator.full_node_simulator import FullNodeSimulator from chia.simulator.simulator_protocol import FarmNewBlockProtocol @@ -75,6 +75,7 @@ from chia.wallet.wallet_node import WalletNode from chia.wallet.wallet_request_types import DLLatestSingleton from chia.wallet.wallet_rpc_api import WalletRpcApi +from chia.wallet.wallet_service import WalletService pytestmark = pytest.mark.data_layer nodes = tuple[WalletNode, FullNodeSimulator] diff --git a/chia/_tests/core/server/test_server.py b/chia/_tests/core/server/test_server.py index 90ce91c3b65c..4585a4221673 100644 --- a/chia/_tests/core/server/test_server.py +++ b/chia/_tests/core/server/test_server.py @@ -14,6 +14,7 @@ from chia._tests.util.setup_nodes import SimulatorsAndWalletsServices from chia._tests.util.time_out_assert import time_out_assert from chia.full_node.full_node_api import FullNodeAPI +from chia.full_node.start_full_node import create_full_node_service from chia.protocols.full_node_protocol import RejectBlock, RequestBlock, RequestTransaction from chia.protocols.outbound_message import NodeType, make_msg from chia.protocols.protocol_message_types import ProtocolMessageTypes @@ -21,12 +22,11 @@ from chia.protocols.wallet_protocol import RejectHeaderRequest from chia.server.api_protocol import ApiMetadata from chia.server.server import ChiaServer -from chia.server.start_full_node import create_full_node_service -from chia.server.start_wallet import create_wallet_service from chia.server.ws_connection import WSChiaConnection, error_response_version from chia.simulator.block_tools import BlockTools from chia.types.peer_info import PeerInfo from chia.util.errors import ApiError, Err +from chia.wallet.start_wallet import create_wallet_service @dataclass diff --git a/chia/_tests/core/services/test_services.py b/chia/_tests/core/services/test_services.py index 841c2cf81913..e87da2e6339e 100644 --- a/chia/_tests/core/services/test_services.py +++ b/chia/_tests/core/services/test_services.py @@ -86,15 +86,15 @@ async def test_daemon_terminates(signal_number: signal.Signals, chia_root: ChiaR @pytest.mark.parametrize( argnames=["create_service", "module_path", "service_config_name"], argvalues=[ - [DataLayerRpcClient.create_as_context, "chia.server.start_data_layer", "data_layer"], - [FarmerRpcClient.create_as_context, "chia.server.start_farmer", "farmer"], - [FullNodeRpcClient.create_as_context, "chia.server.start_full_node", "full_node"], - [HarvesterRpcClient.create_as_context, "chia.server.start_harvester", "harvester"], - [WalletRpcClient.create_as_context, "chia.server.start_wallet", "wallet"], - [None, "chia.server.start_introducer", "introducer"], + [DataLayerRpcClient.create_as_context, "chia.data_layer.start_data_layer", "data_layer"], + [FarmerRpcClient.create_as_context, "chia.farmer.start_farmer", "farmer"], + [FullNodeRpcClient.create_as_context, "chia.full_node.start_full_node", "full_node"], + [HarvesterRpcClient.create_as_context, "chia.harvester.start_harvester", "harvester"], + [WalletRpcClient.create_as_context, "chia.wallet.start_wallet", "wallet"], + [None, "chia.introducer.start_introducer", "introducer"], # TODO: fails... make it not do that # [None, "chia.seeder.start_crawler", "crawler"], - [None, "chia.server.start_timelord", "timelord"], + [None, "chia.timelord.start_timelord", "timelord"], pytest.param( None, "chia.timelord.timelord_launcher", diff --git a/chia/_tests/core/test_crawler.py b/chia/_tests/core/test_crawler.py index 865944b165db..38e6bb8eea07 100644 --- a/chia/_tests/core/test_crawler.py +++ b/chia/_tests/core/test_crawler.py @@ -16,8 +16,8 @@ from chia.protocols.outbound_message import make_msg from chia.protocols.protocol_message_types import ProtocolMessageTypes from chia.protocols.wallet_protocol import RequestChildren +from chia.seeder.crawler_service import CrawlerService from chia.seeder.peer_record import PeerRecord, PeerReliability -from chia.server.aliases import CrawlerService from chia.types.peer_info import PeerInfo diff --git a/chia/_tests/farmer_harvester/test_farmer.py b/chia/_tests/farmer_harvester/test_farmer.py index fa5a0f125fda..95a42c832c9b 100644 --- a/chia/_tests/farmer_harvester/test_farmer.py +++ b/chia/_tests/farmer_harvester/test_farmer.py @@ -21,11 +21,12 @@ from chia._tests.util.misc import DataCase, Marks, datacases from chia.consensus.default_constants import DEFAULT_CONSTANTS from chia.farmer.farmer import UPDATE_POOL_FARMER_INFO_INTERVAL, Farmer, increment_pool_stats, strip_old_entries +from chia.farmer.farmer_service import FarmerService +from chia.harvester.harvester_service import HarvesterService from chia.pools.pool_config import PoolWalletConfig from chia.protocols import farmer_protocol, harvester_protocol from chia.protocols.harvester_protocol import NewProofOfSpace, RespondSignatures from chia.protocols.pool_protocol import PoolErrorCode -from chia.server.aliases import FarmerService, HarvesterService from chia.server.ws_connection import WSChiaConnection from chia.simulator.block_tools import BlockTools from chia.types.blockchain_format.proof_of_space import ( diff --git a/chia/_tests/farmer_harvester/test_farmer_harvester.py b/chia/_tests/farmer_harvester/test_farmer_harvester.py index bd3a4b0edbb4..bf5badc19979 100644 --- a/chia/_tests/farmer_harvester/test_farmer_harvester.py +++ b/chia/_tests/farmer_harvester/test_farmer_harvester.py @@ -15,12 +15,13 @@ from chia._tests.util.time_out_assert import time_out_assert from chia.cmds.cmds_util import get_any_service_client from chia.farmer.farmer import Farmer +from chia.farmer.farmer_service import FarmerService from chia.harvester.harvester_rpc_client import HarvesterRpcClient +from chia.harvester.harvester_service import HarvesterService from chia.plotting.util import PlotsRefreshParameter from chia.protocols import farmer_protocol, harvester_protocol from chia.protocols.outbound_message import NodeType, make_msg from chia.protocols.protocol_message_types import ProtocolMessageTypes -from chia.server.aliases import FarmerService, HarvesterService from chia.simulator.block_tools import BlockTools from chia.types.peer_info import UnresolvedPeerInfo from chia.util.config import load_config diff --git a/chia/_tests/farmer_harvester/test_filter_prefix_bits.py b/chia/_tests/farmer_harvester/test_filter_prefix_bits.py index 1d965c2603a5..b4bfedd016f0 100644 --- a/chia/_tests/farmer_harvester/test_filter_prefix_bits.py +++ b/chia/_tests/farmer_harvester/test_filter_prefix_bits.py @@ -16,8 +16,8 @@ from chia.farmer.farmer_api import FarmerAPI from chia.farmer.farmer_rpc_client import FarmerRpcClient from chia.harvester.harvester_rpc_client import HarvesterRpcClient +from chia.harvester.harvester_service import HarvesterService from chia.protocols import farmer_protocol -from chia.server.aliases import HarvesterService from chia.simulator.block_tools import create_block_tools_async, test_constants from chia.types.blockchain_format.proof_of_space import get_plot_id, passes_plot_filter from chia.util.keychain import Keychain diff --git a/chia/_tests/farmer_harvester/test_third_party_harvesters.py b/chia/_tests/farmer_harvester/test_third_party_harvesters.py index 690ce85e7aa2..99cec77f8699 100644 --- a/chia/_tests/farmer_harvester/test_third_party_harvesters.py +++ b/chia/_tests/farmer_harvester/test_third_party_harvesters.py @@ -31,15 +31,17 @@ from chia.consensus.multiprocess_validation import PreValidationResult, pre_validate_block from chia.farmer.farmer import Farmer, calculate_harvester_fee_quality from chia.farmer.farmer_api import FarmerAPI +from chia.farmer.farmer_service import FarmerService from chia.full_node.full_node import FullNode from chia.full_node.full_node_api import FullNodeAPI +from chia.full_node.full_node_service import FullNodeService from chia.harvester.harvester import Harvester from chia.harvester.harvester_api import HarvesterAPI +from chia.harvester.harvester_service import HarvesterService from chia.protocols import farmer_protocol, full_node_protocol, harvester_protocol, timelord_protocol from chia.protocols.harvester_protocol import ProofOfSpaceFeeInfo, RespondSignatures, SigningDataKind from chia.protocols.outbound_message import Message, NodeType, make_msg from chia.protocols.protocol_message_types import ProtocolMessageTypes -from chia.server.aliases import FarmerService, FullNodeService, HarvesterService from chia.server.server import ChiaServer from chia.server.ws_connection import WSChiaConnection from chia.simulator.block_tools import BlockTools diff --git a/chia/_tests/fee_estimation/test_fee_estimation_rpc.py b/chia/_tests/fee_estimation/test_fee_estimation_rpc.py index 22aa26682081..92aa00ea6405 100644 --- a/chia/_tests/fee_estimation/test_fee_estimation_rpc.py +++ b/chia/_tests/fee_estimation/test_fee_estimation_rpc.py @@ -10,7 +10,6 @@ from chia.full_node.full_node_rpc_api import FullNodeRpcApi from chia.full_node.full_node_rpc_client import FullNodeRpcClient -from chia.server.aliases import WalletService from chia.simulator.block_tools import BlockTools from chia.simulator.full_node_simulator import FullNodeSimulator from chia.simulator.simulator_protocol import FarmNewBlockProtocol @@ -18,6 +17,7 @@ from chia.simulator.wallet_tools import WalletTool from chia.types.blockchain_format.coin import Coin from chia.wallet.util.tx_config import DEFAULT_TX_CONFIG +from chia.wallet.wallet_service import WalletService @pytest.fixture(scope="function") diff --git a/chia/_tests/plot_sync/test_plot_sync.py b/chia/_tests/plot_sync/test_plot_sync.py index 9e76d26b7a5a..d47ad5c0196f 100644 --- a/chia/_tests/plot_sync/test_plot_sync.py +++ b/chia/_tests/plot_sync/test_plot_sync.py @@ -20,7 +20,9 @@ from chia._tests.util.split_managers import SplitAsyncManager, split_async_manager from chia._tests.util.time_out_assert import time_out_assert from chia.farmer.farmer import Farmer +from chia.farmer.farmer_service import FarmerService from chia.harvester.harvester import Harvester +from chia.harvester.harvester_service import HarvesterService from chia.plot_sync.delta import Delta, PathListDelta, PlotListDelta from chia.plot_sync.receiver import Receiver from chia.plot_sync.sender import Sender @@ -29,7 +31,6 @@ from chia.plotting.util import add_plot_directory, remove_plot_directory from chia.protocols.harvester_protocol import Plot from chia.protocols.protocol_message_types import ProtocolMessageTypes -from chia.server.aliases import FarmerService, HarvesterService from chia.simulator.block_tools import BlockTools from chia.util.config import create_default_chia_config, lock_and_load_config, save_config from chia.util.streamable import _T_Streamable diff --git a/chia/_tests/plot_sync/test_sync_simulated.py b/chia/_tests/plot_sync/test_sync_simulated.py index 96d838f9d0e7..8a4cc517fdad 100644 --- a/chia/_tests/plot_sync/test_sync_simulated.py +++ b/chia/_tests/plot_sync/test_sync_simulated.py @@ -20,7 +20,9 @@ from chia._tests.plot_sync.util import start_harvester_service from chia._tests.util.time_out_assert import time_out_assert from chia.farmer.farmer import Farmer +from chia.farmer.farmer_service import FarmerService from chia.harvester.harvester import Harvester +from chia.harvester.harvester_service import HarvesterService from chia.plot_sync.receiver import Receiver from chia.plot_sync.sender import Sender from chia.plot_sync.util import Constants @@ -30,7 +32,6 @@ from chia.protocols.harvester_protocol import PlotSyncError, PlotSyncResponse from chia.protocols.outbound_message import make_msg from chia.protocols.protocol_message_types import ProtocolMessageTypes -from chia.server.aliases import FarmerService, HarvesterService from chia.server.ws_connection import WSChiaConnection from chia.simulator.block_tools import BlockTools from chia.util.batches import to_batches diff --git a/chia/_tests/plot_sync/util.py b/chia/_tests/plot_sync/util.py index e619e759436e..aaf238e1330b 100644 --- a/chia/_tests/plot_sync/util.py +++ b/chia/_tests/plot_sync/util.py @@ -11,11 +11,12 @@ from chia._tests.util.split_managers import SplitAsyncManager, split_async_manager from chia._tests.util.time_out_assert import time_out_assert +from chia.farmer.farmer_service import FarmerService from chia.harvester.harvester import Harvester +from chia.harvester.harvester_service import HarvesterService from chia.plot_sync.sender import Sender from chia.protocols.harvester_protocol import PlotSyncIdentifier from chia.protocols.outbound_message import Message, NodeType -from chia.server.aliases import FarmerService, HarvesterService from chia.types.peer_info import PeerInfo, UnresolvedPeerInfo diff --git a/chia/_tests/pools/test_pool_rpc.py b/chia/_tests/pools/test_pool_rpc.py index 2c26382dd345..7750252b6dd3 100644 --- a/chia/_tests/pools/test_pool_rpc.py +++ b/chia/_tests/pools/test_pool_rpc.py @@ -24,7 +24,6 @@ from chia._tests.util.time_out_assert import time_out_assert from chia.pools.pool_wallet_info import PoolSingletonState, PoolWalletInfo from chia.rpc.rpc_client import ResponseFailureError -from chia.server.aliases import WalletService from chia.simulator.add_blocks_in_batches import add_blocks_in_batches from chia.simulator.block_tools import BlockTools, get_plot_dir from chia.simulator.full_node_simulator import FullNodeSimulator @@ -50,6 +49,7 @@ PWStatus, ) from chia.wallet.wallet_rpc_client import WalletRpcClient +from chia.wallet.wallet_service import WalletService from chia.wallet.wallet_state_manager import WalletStateManager # TODO: Compare deducted fees in all tests against reported total_fee diff --git a/chia/_tests/timelord/test_new_peak.py b/chia/_tests/timelord/test_new_peak.py index a11cd3e2b832..7fd284ccfa31 100644 --- a/chia/_tests/timelord/test_new_peak.py +++ b/chia/_tests/timelord/test_new_peak.py @@ -13,8 +13,8 @@ from chia.consensus.blockchain import Blockchain from chia.consensus.difficulty_adjustment import get_next_sub_slot_iters_and_difficulty from chia.consensus.make_sub_epoch_summary import next_sub_epoch_summary +from chia.full_node.full_node_service import FullNodeService from chia.protocols import timelord_protocol -from chia.server.aliases import FullNodeService from chia.server.server import ChiaServer from chia.simulator.block_tools import BlockTools from chia.simulator.full_node_simulator import FullNodeSimulator diff --git a/chia/_tests/timelord/test_timelord.py b/chia/_tests/timelord/test_timelord.py index 7e3dbec459ea..80ca02ed057e 100644 --- a/chia/_tests/timelord/test_timelord.py +++ b/chia/_tests/timelord/test_timelord.py @@ -2,7 +2,7 @@ import pytest -from chia.server.aliases import TimelordService +from chia.timelord.timelord_service import TimelordService @pytest.mark.anyio diff --git a/chia/_tests/util/setup_nodes.py b/chia/_tests/util/setup_nodes.py index f8aa40ab3f0f..a133e2baa4c1 100644 --- a/chia/_tests/util/setup_nodes.py +++ b/chia/_tests/util/setup_nodes.py @@ -18,11 +18,13 @@ from chia._tests.environments.wallet import WalletEnvironment from chia.daemon.server import WebSocketServer from chia.farmer.farmer import Farmer +from chia.farmer.farmer_service import FarmerService from chia.full_node.full_node_api import FullNodeAPI +from chia.full_node.full_node_service import FullNodeService from chia.harvester.harvester import Harvester +from chia.harvester.harvester_service import HarvesterService from chia.introducer.introducer_api import IntroducerAPI from chia.protocols.shared_protocol import Capability -from chia.server.aliases import FarmerService, FullNodeService, HarvesterService, TimelordService, WalletService from chia.server.server import ChiaServer from chia.simulator.block_tools import BlockTools, create_block_tools_async from chia.simulator.full_node_simulator import FullNodeSimulator @@ -40,12 +42,14 @@ ) from chia.simulator.socket import find_available_listen_port from chia.simulator.start_simulator import SimulatorFullNodeService +from chia.timelord.timelord_service import TimelordService from chia.types.peer_info import UnresolvedPeerInfo from chia.util.hash import std_hash from chia.util.keychain import Keychain from chia.util.timing import adjusted_timeout, backoff_times from chia.wallet.wallet_node import WalletNode from chia.wallet.wallet_rpc_client import WalletRpcClient +from chia.wallet.wallet_service import WalletService OldSimulatorsAndWallets = tuple[list[FullNodeSimulator], list[tuple[WalletNode, ChiaServer]], BlockTools] SimulatorsAndWalletsServices = tuple[list[SimulatorFullNodeService], list[WalletService], BlockTools] diff --git a/chia/_tests/wallet/rpc/test_wallet_rpc.py b/chia/_tests/wallet/rpc/test_wallet_rpc.py index 50eb1c082820..1e05d8e5ea8b 100644 --- a/chia/_tests/wallet/rpc/test_wallet_rpc.py +++ b/chia/_tests/wallet/rpc/test_wallet_rpc.py @@ -52,7 +52,6 @@ from chia.consensus.block_rewards import calculate_base_farmer_reward, calculate_pool_reward from chia.full_node.full_node_rpc_client import FullNodeRpcClient from chia.rpc.rpc_client import ResponseFailureError -from chia.server.aliases import WalletService from chia.server.server import ChiaServer from chia.simulator.full_node_simulator import FullNodeSimulator from chia.simulator.simulator_protocol import FarmNewBlockProtocol @@ -142,6 +141,7 @@ ) from chia.wallet.wallet_rpc_api import WalletRpcApi from chia.wallet.wallet_rpc_client import WalletRpcClient +from chia.wallet.wallet_service import WalletService from chia.wallet.wallet_spend_bundle import WalletSpendBundle log = logging.getLogger(__name__) diff --git a/chia/_tests/wallet/test_new_wallet_protocol.py b/chia/_tests/wallet/test_new_wallet_protocol.py index 948eba40fc8a..66df0c728e86 100644 --- a/chia/_tests/wallet/test_new_wallet_protocol.py +++ b/chia/_tests/wallet/test_new_wallet_protocol.py @@ -21,7 +21,6 @@ from chia.protocols.outbound_message import Message, NodeType from chia.protocols.protocol_message_types import ProtocolMessageTypes from chia.protocols.shared_protocol import Capability -from chia.server.aliases import WalletService from chia.server.ws_connection import WSChiaConnection from chia.simulator import simulator_protocol from chia.simulator.block_tools import BlockTools @@ -30,6 +29,7 @@ from chia.types.coin_record import CoinRecord from chia.types.mempool_inclusion_status import MempoolInclusionStatus from chia.util.hash import std_hash +from chia.wallet.wallet_service import WalletService IDENTITY_PUZZLE = Program.to(1) IDENTITY_PUZZLE_HASH = IDENTITY_PUZZLE.get_tree_hash() diff --git a/chia/data_layer/data_layer_service.py b/chia/data_layer/data_layer_service.py new file mode 100644 index 000000000000..310d672bc7c5 --- /dev/null +++ b/chia/data_layer/data_layer_service.py @@ -0,0 +1,8 @@ +from __future__ import annotations + +from chia.data_layer.data_layer import DataLayer +from chia.data_layer.data_layer_api import DataLayerAPI +from chia.data_layer.data_layer_rpc_api import DataLayerRpcApi +from chia.server.start_service import Service + +DataLayerService = Service[DataLayer, DataLayerAPI, DataLayerRpcApi] diff --git a/chia/server/start_data_layer.py b/chia/data_layer/start_data_layer.py similarity index 97% rename from chia/server/start_data_layer.py rename to chia/data_layer/start_data_layer.py index 7991546a8ea1..706c56300c05 100644 --- a/chia/server/start_data_layer.py +++ b/chia/data_layer/start_data_layer.py @@ -12,10 +12,10 @@ from chia.data_layer.data_layer import DataLayer from chia.data_layer.data_layer_api import DataLayerAPI from chia.data_layer.data_layer_rpc_api import DataLayerRpcApi +from chia.data_layer.data_layer_service import DataLayerService from chia.data_layer.data_layer_util import PluginRemote from chia.data_layer.util.plugin import load_plugin_configurations from chia.protocols.outbound_message import NodeType -from chia.server.aliases import DataLayerService, WalletService from chia.server.signal_handlers import SignalHandlers from chia.server.start_service import RpcInfo, Service, async_run from chia.ssl.create_ssl import create_all_ssl @@ -24,6 +24,7 @@ from chia.util.default_root import resolve_root_path from chia.util.task_timing import maybe_manage_task_instrumentation from chia.wallet.wallet_rpc_client import WalletRpcClient +from chia.wallet.wallet_service import WalletService # See: https://bugs.python.org/issue29288 "".encode("idna") diff --git a/chia/farmer/farmer_service.py b/chia/farmer/farmer_service.py new file mode 100644 index 000000000000..967bd0ec870e --- /dev/null +++ b/chia/farmer/farmer_service.py @@ -0,0 +1,8 @@ +from __future__ import annotations + +from chia.farmer.farmer import Farmer +from chia.farmer.farmer_api import FarmerAPI +from chia.farmer.farmer_rpc_api import FarmerRpcApi +from chia.server.start_service import Service + +FarmerService = Service[Farmer, FarmerAPI, FarmerRpcApi] diff --git a/chia/server/start_farmer.py b/chia/farmer/start_farmer.py similarity index 98% rename from chia/server/start_farmer.py rename to chia/farmer/start_farmer.py index 58913eaf58b5..bd12c4e466a9 100644 --- a/chia/server/start_farmer.py +++ b/chia/farmer/start_farmer.py @@ -13,8 +13,8 @@ from chia.farmer.farmer import Farmer from chia.farmer.farmer_api import FarmerAPI from chia.farmer.farmer_rpc_api import FarmerRpcApi +from chia.farmer.farmer_service import FarmerService from chia.protocols.outbound_message import NodeType -from chia.server.aliases import FarmerService from chia.server.resolve_peer_info import get_unresolved_peer_infos from chia.server.signal_handlers import SignalHandlers from chia.server.start_service import RpcInfo, Service, async_run diff --git a/chia/full_node/full_node_service.py b/chia/full_node/full_node_service.py new file mode 100644 index 000000000000..f6fb53398fe0 --- /dev/null +++ b/chia/full_node/full_node_service.py @@ -0,0 +1,8 @@ +from __future__ import annotations + +from chia.full_node.full_node import FullNode +from chia.full_node.full_node_api import FullNodeAPI +from chia.full_node.full_node_rpc_api import FullNodeRpcApi +from chia.server.start_service import Service + +FullNodeService = Service[FullNode, FullNodeAPI, FullNodeRpcApi] diff --git a/chia/server/start_full_node.py b/chia/full_node/start_full_node.py similarity index 98% rename from chia/server/start_full_node.py rename to chia/full_node/start_full_node.py index 0afac9320527..05bbb556ff8d 100644 --- a/chia/server/start_full_node.py +++ b/chia/full_node/start_full_node.py @@ -15,8 +15,8 @@ from chia.full_node.full_node import FullNode from chia.full_node.full_node_api import FullNodeAPI from chia.full_node.full_node_rpc_api import FullNodeRpcApi +from chia.full_node.full_node_service import FullNodeService from chia.protocols.outbound_message import NodeType -from chia.server.aliases import FullNodeService from chia.server.resolve_peer_info import get_unresolved_peer_infos from chia.server.signal_handlers import SignalHandlers from chia.server.start_service import RpcInfo, Service, async_run diff --git a/chia/harvester/harvester_service.py b/chia/harvester/harvester_service.py new file mode 100644 index 000000000000..60779c8f2cbe --- /dev/null +++ b/chia/harvester/harvester_service.py @@ -0,0 +1,8 @@ +from __future__ import annotations + +from chia.harvester.harvester import Harvester +from chia.harvester.harvester_api import HarvesterAPI +from chia.harvester.harvester_rpc_api import HarvesterRpcApi +from chia.server.start_service import Service + +HarvesterService = Service[Harvester, HarvesterAPI, HarvesterRpcApi] diff --git a/chia/server/start_harvester.py b/chia/harvester/start_harvester.py similarity index 98% rename from chia/server/start_harvester.py rename to chia/harvester/start_harvester.py index 4a31227bff48..1ad4dc934c68 100644 --- a/chia/server/start_harvester.py +++ b/chia/harvester/start_harvester.py @@ -13,8 +13,8 @@ from chia.harvester.harvester import Harvester from chia.harvester.harvester_api import HarvesterAPI from chia.harvester.harvester_rpc_api import HarvesterRpcApi +from chia.harvester.harvester_service import HarvesterService from chia.protocols.outbound_message import NodeType -from chia.server.aliases import HarvesterService from chia.server.resolve_peer_info import get_unresolved_peer_infos from chia.server.signal_handlers import SignalHandlers from chia.server.start_service import RpcInfo, Service, async_run diff --git a/chia/introducer/introducer_service.py b/chia/introducer/introducer_service.py new file mode 100644 index 000000000000..31abc6fc25f3 --- /dev/null +++ b/chia/introducer/introducer_service.py @@ -0,0 +1,8 @@ +from __future__ import annotations + +from chia.full_node.full_node_rpc_api import FullNodeRpcApi +from chia.introducer.introducer import Introducer +from chia.introducer.introducer_api import IntroducerAPI +from chia.server.start_service import Service + +IntroducerService = Service[Introducer, IntroducerAPI, FullNodeRpcApi] diff --git a/chia/server/start_introducer.py b/chia/introducer/start_introducer.py similarity index 97% rename from chia/server/start_introducer.py rename to chia/introducer/start_introducer.py index a93b95cf7e12..619a48e9257c 100644 --- a/chia/server/start_introducer.py +++ b/chia/introducer/start_introducer.py @@ -8,8 +8,8 @@ from chia.apis import ApiProtocolRegistry from chia.introducer.introducer import Introducer from chia.introducer.introducer_api import IntroducerAPI +from chia.introducer.introducer_service import IntroducerService from chia.protocols.outbound_message import NodeType -from chia.server.aliases import IntroducerService from chia.server.signal_handlers import SignalHandlers from chia.server.start_service import Service, async_run from chia.util.chia_logging import initialize_service_logging diff --git a/chia/seeder/crawler_service.py b/chia/seeder/crawler_service.py new file mode 100644 index 000000000000..d0fb88d15f64 --- /dev/null +++ b/chia/seeder/crawler_service.py @@ -0,0 +1,8 @@ +from __future__ import annotations + +from chia.seeder.crawler import Crawler +from chia.seeder.crawler_api import CrawlerAPI +from chia.seeder.crawler_rpc_api import CrawlerRpcApi +from chia.server.start_service import Service + +CrawlerService = Service[Crawler, CrawlerAPI, CrawlerRpcApi] diff --git a/chia/seeder/start_crawler.py b/chia/seeder/start_crawler.py index 3799acaf4bb0..abc621b8a370 100644 --- a/chia/seeder/start_crawler.py +++ b/chia/seeder/start_crawler.py @@ -15,7 +15,7 @@ from chia.seeder.crawler import Crawler from chia.seeder.crawler_api import CrawlerAPI from chia.seeder.crawler_rpc_api import CrawlerRpcApi -from chia.server.aliases import CrawlerService +from chia.seeder.crawler_service import CrawlerService from chia.server.signal_handlers import SignalHandlers from chia.server.start_service import RpcInfo, Service, async_run from chia.util.chia_logging import initialize_service_logging diff --git a/chia/server/aliases.py b/chia/server/aliases.py deleted file mode 100644 index 7eb09a1eb4f5..000000000000 --- a/chia/server/aliases.py +++ /dev/null @@ -1,35 +0,0 @@ -from __future__ import annotations - -from chia.data_layer.data_layer import DataLayer -from chia.data_layer.data_layer_api import DataLayerAPI -from chia.data_layer.data_layer_rpc_api import DataLayerRpcApi -from chia.farmer.farmer import Farmer -from chia.farmer.farmer_api import FarmerAPI -from chia.farmer.farmer_rpc_api import FarmerRpcApi -from chia.full_node.full_node import FullNode -from chia.full_node.full_node_api import FullNodeAPI -from chia.full_node.full_node_rpc_api import FullNodeRpcApi -from chia.harvester.harvester import Harvester -from chia.harvester.harvester_api import HarvesterAPI -from chia.harvester.harvester_rpc_api import HarvesterRpcApi -from chia.introducer.introducer import Introducer -from chia.introducer.introducer_api import IntroducerAPI -from chia.seeder.crawler import Crawler -from chia.seeder.crawler_api import CrawlerAPI -from chia.seeder.crawler_rpc_api import CrawlerRpcApi -from chia.server.start_service import Service -from chia.timelord.timelord import Timelord -from chia.timelord.timelord_api import TimelordAPI -from chia.timelord.timelord_rpc_api import TimelordRpcApi -from chia.wallet.wallet_node import WalletNode -from chia.wallet.wallet_node_api import WalletNodeAPI -from chia.wallet.wallet_rpc_api import WalletRpcApi - -CrawlerService = Service[Crawler, CrawlerAPI, CrawlerRpcApi] -DataLayerService = Service[DataLayer, DataLayerAPI, DataLayerRpcApi] -FarmerService = Service[Farmer, FarmerAPI, FarmerRpcApi] -FullNodeService = Service[FullNode, FullNodeAPI, FullNodeRpcApi] -HarvesterService = Service[Harvester, HarvesterAPI, HarvesterRpcApi] -IntroducerService = Service[Introducer, IntroducerAPI, FullNodeRpcApi] -TimelordService = Service[Timelord, TimelordAPI, TimelordRpcApi] -WalletService = Service[WalletNode, WalletNodeAPI, WalletRpcApi] diff --git a/chia/simulator/setup_services.py b/chia/simulator/setup_services.py index d7c299d33c28..f96872617330 100644 --- a/chia/simulator/setup_services.py +++ b/chia/simulator/setup_services.py @@ -18,33 +18,29 @@ from chia.cmds.init_funcs import init from chia.consensus.constants import replace_str_to_bytes from chia.daemon.server import WebSocketServer, daemon_launch_lock_path +from chia.farmer.farmer_service import FarmerService +from chia.farmer.start_farmer import create_farmer_service +from chia.full_node.full_node_service import FullNodeService +from chia.full_node.start_full_node import create_full_node_service +from chia.harvester.harvester_service import HarvesterService +from chia.harvester.start_harvester import create_harvester_service +from chia.introducer.introducer_service import IntroducerService +from chia.introducer.start_introducer import create_introducer_service from chia.protocols.outbound_message import NodeType from chia.protocols.shared_protocol import Capability, default_capabilities +from chia.seeder.crawler_service import CrawlerService from chia.seeder.dns_server import DNSServer, create_dns_server_service from chia.seeder.start_crawler import create_full_node_crawler_service -from chia.server.aliases import ( - CrawlerService, - FarmerService, - FullNodeService, - HarvesterService, - IntroducerService, - TimelordService, - WalletService, -) from chia.server.resolve_peer_info import set_peer_info from chia.server.signal_handlers import SignalHandlers -from chia.server.start_farmer import create_farmer_service -from chia.server.start_full_node import create_full_node_service -from chia.server.start_harvester import create_harvester_service -from chia.server.start_introducer import create_introducer_service -from chia.server.start_timelord import create_timelord_service -from chia.server.start_wallet import create_wallet_service from chia.simulator.block_tools import BlockTools, test_constants from chia.simulator.keyring import TempKeyring from chia.simulator.ssl_certs import get_next_nodes_certs_and_keys, get_next_private_ca_cert_and_key from chia.simulator.start_simulator import SimulatorFullNodeService, create_full_node_simulator_service from chia.ssl.create_ssl import create_all_ssl +from chia.timelord.start_timelord import create_timelord_service from chia.timelord.timelord_launcher import VDFClientProcessMgr, find_vdf_client, spawn_process +from chia.timelord.timelord_service import TimelordService from chia.types.peer_info import UnresolvedPeerInfo from chia.util.bech32m import encode_puzzle_hash from chia.util.config import config_path_for_filename, load_config, lock_and_load_config, save_config @@ -52,6 +48,8 @@ from chia.util.keychain import bytes_to_mnemonic from chia.util.lock import Lockfile from chia.util.task_referencer import create_referenced_task +from chia.wallet.start_wallet import create_wallet_service +from chia.wallet.wallet_service import WalletService log = logging.getLogger(__name__) diff --git a/chia/server/start_timelord.py b/chia/timelord/start_timelord.py similarity index 98% rename from chia/server/start_timelord.py rename to chia/timelord/start_timelord.py index 77e5e1d8cd29..5c716978742b 100644 --- a/chia/server/start_timelord.py +++ b/chia/timelord/start_timelord.py @@ -11,13 +11,13 @@ from chia.consensus.constants import replace_str_to_bytes from chia.consensus.default_constants import DEFAULT_CONSTANTS, update_testnet_overrides from chia.protocols.outbound_message import NodeType -from chia.server.aliases import TimelordService from chia.server.resolve_peer_info import get_unresolved_peer_infos from chia.server.signal_handlers import SignalHandlers from chia.server.start_service import RpcInfo, Service, async_run from chia.timelord.timelord import Timelord from chia.timelord.timelord_api import TimelordAPI from chia.timelord.timelord_rpc_api import TimelordRpcApi +from chia.timelord.timelord_service import TimelordService from chia.util.chia_logging import initialize_service_logging from chia.util.config import load_config, load_config_cli from chia.util.default_root import resolve_root_path diff --git a/chia/timelord/timelord_service.py b/chia/timelord/timelord_service.py new file mode 100644 index 000000000000..994a79118a06 --- /dev/null +++ b/chia/timelord/timelord_service.py @@ -0,0 +1,8 @@ +from __future__ import annotations + +from chia.server.start_service import Service +from chia.timelord.timelord import Timelord +from chia.timelord.timelord_api import TimelordAPI +from chia.timelord.timelord_rpc_api import TimelordRpcApi + +TimelordService = Service[Timelord, TimelordAPI, TimelordRpcApi] diff --git a/chia/server/start_wallet.py b/chia/wallet/start_wallet.py similarity index 98% rename from chia/server/start_wallet.py rename to chia/wallet/start_wallet.py index aa8b1b32739b..624dcbb749e7 100644 --- a/chia/server/start_wallet.py +++ b/chia/wallet/start_wallet.py @@ -12,7 +12,6 @@ from chia.consensus.constants import replace_str_to_bytes from chia.consensus.default_constants import DEFAULT_CONSTANTS, update_testnet_overrides from chia.protocols.outbound_message import NodeType -from chia.server.aliases import WalletService from chia.server.resolve_peer_info import get_unresolved_peer_infos from chia.server.signal_handlers import SignalHandlers from chia.server.start_service import RpcInfo, Service, async_run @@ -26,6 +25,7 @@ # See: https://bugs.python.org/issue29288 from chia.wallet.wallet_node_api import WalletNodeAPI from chia.wallet.wallet_rpc_api import WalletRpcApi +from chia.wallet.wallet_service import WalletService "".encode("idna") diff --git a/chia/wallet/wallet_service.py b/chia/wallet/wallet_service.py new file mode 100644 index 000000000000..8851b60ddae3 --- /dev/null +++ b/chia/wallet/wallet_service.py @@ -0,0 +1,8 @@ +from __future__ import annotations + +from chia.server.start_service import Service +from chia.wallet.wallet_node import WalletNode +from chia.wallet.wallet_node_api import WalletNodeAPI +from chia.wallet.wallet_rpc_api import WalletRpcApi + +WalletService = Service[WalletNode, WalletNodeAPI, WalletRpcApi] diff --git a/pyproject.toml b/pyproject.toml index 412e4b8a017b..753a000a1be1 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -20,17 +20,17 @@ version = "0.0.0" [project.scripts] chia = "chia.cmds.chia:main" chia_daemon = "chia.daemon.server:main" -chia_wallet = "chia.server.start_wallet:main" -chia_full_node = "chia.server.start_full_node:main" -chia_harvester = "chia.server.start_harvester:main" -chia_farmer = "chia.server.start_farmer:main" -chia_introducer = "chia.server.start_introducer:main" +chia_wallet = "chia.wallet.start_wallet:main" +chia_full_node = "chia.full_node.start_full_node:main" +chia_harvester = "chia.harvester.start_harvester:main" +chia_farmer = "chia.farmer.start_farmer:main" +chia_introducer = "chia.introducer.start_introducer:main" chia_crawler = "chia.seeder.start_crawler:main" chia_seeder = "chia.seeder.dns_server:main" -chia_timelord = "chia.server.start_timelord:main" +chia_timelord = "chia.timelord.start_timelord:main" chia_timelord_launcher = "chia.timelord.timelord_launcher:main" chia_full_node_simulator = "chia.simulator.start_simulator:main" -chia_data_layer = "chia.server.start_data_layer:main" +chia_data_layer = "chia.data_layer.start_data_layer:main" chia_data_layer_http = "chia.data_layer.data_layer_server:main" chia_data_layer_s3_plugin = "chia.data_layer.s3_plugin_service:run_server" diff --git a/tach.toml b/tach.toml index 3bcd7dd9d269..e05edea91695 100644 --- a/tach.toml +++ b/tach.toml @@ -32,21 +32,8 @@ depends_on = [ "chia.types", "chia.util", { path = "chia.ssl", deprecated = false }, - # these ones can be removed by getting rid of `chia.server.aliases` - # and/or the `start_*.py` scripts, which can go in their respective modules { path = "chia.rpc", deprecated = false }, - { path = "chia.full_node", deprecated = false }, - { path = "chia.data_layer", deprecated = false }, - { path = "chia.farmer", deprecated = false }, - { path = "chia.simulator", deprecated = false }, { path = "chia.daemon", deprecated = false }, - { path = "chia.harvester", deprecated = false }, - { path = "chia.timelord", deprecated = false }, - { path = "chia.introducer", deprecated = false }, - { path = "chia.consensus", deprecated = false }, - { path = "chia.wallet", deprecated = false }, - { path = "chia.apis", deprecated = false }, - { path = "chia.seeder", deprecated = false }, ] [[modules]] @@ -57,13 +44,16 @@ depends_on = [ { path = "chia.server", deprecated = false }, { path = "chia.plotting", deprecated = false }, { path = "chia.full_node", deprecated = false }, + { path = "chia.introducer", deprecated = false }, { path = "chia.wallet", deprecated = false }, + { path = "chia.farmer", deprecated = false }, { path = "chia.seeder", deprecated = false }, { path = "chia.consensus", deprecated = false }, { path = "chia.apis", deprecated = false }, { path = "chia.cmds", deprecated = false }, { path = "chia.protocols", deprecated = false }, { path = "chia.timelord", deprecated = false }, + { path = "chia.harvester", deprecated = false }, { path = "chia.daemon", deprecated = false }, { path = "chia.ssl", deprecated = false }, { path = "chia.rpc", deprecated = false }, @@ -72,6 +62,7 @@ depends_on = [ [[modules]] path = "chia.full_node" depends_on = [ + "chia.apis", "chia.types", "chia.util", "chia.consensus", @@ -83,6 +74,8 @@ depends_on = [ [[modules]] path = "chia.data_layer" depends_on = [ + "chia.apis", + "chia.ssl", "chia.types", "chia.util", "chia.protocols", @@ -108,6 +101,8 @@ depends_on = [ [[modules]] path = "chia.introducer" depends_on = [ + "chia.apis", + "chia.full_node", "chia.types", "chia.util", { path = "chia.rpc", deprecated = false }, @@ -128,6 +123,7 @@ depends_on = [ [[modules]] path = "chia.farmer" depends_on = [ + "chia.apis", "chia.types", "chia.util", { path = "chia.protocols", deprecated = false }, @@ -156,6 +152,7 @@ depends_on = ["chia.util"] [[modules]] path = "chia.timelord" depends_on = [ + "chia.apis", "chia.types", "chia.util", { path = "chia.server", deprecated = false }, @@ -183,6 +180,7 @@ depends_on = [ [[modules]] path = "chia.harvester" depends_on = [ + "chia.apis", "chia.types", "chia.util", { path = "chia.protocols", deprecated = false }, @@ -230,6 +228,8 @@ depends_on = [ [[modules]] path = "chia.wallet" depends_on = [ + "chia.apis", + "chia.simulator", "chia.types", "chia.util", { path = "chia.server", deprecated = false },