2021-02-23 13:23:56 +03:00
|
|
|
from pathlib import Path
|
2020-12-12 03:02:31 +03:00
|
|
|
from typing import Dict
|
2021-03-10 05:27:27 +03:00
|
|
|
|
|
|
|
import click
|
|
|
|
|
2021-04-04 06:55:26 +03:00
|
|
|
from chia.util.config import load_config, save_config, str2bool
|
|
|
|
from chia.util.default_root import DEFAULT_ROOT_PATH
|
2020-12-12 03:02:31 +03:00
|
|
|
|
|
|
|
|
2021-03-17 08:56:54 +03:00
|
|
|
def configure(
|
|
|
|
root_path: Path,
|
|
|
|
set_farmer_peer: str,
|
|
|
|
set_node_introducer: str,
|
|
|
|
set_fullnode_port: str,
|
|
|
|
set_log_level: str,
|
|
|
|
enable_upnp: str,
|
2021-05-05 01:54:40 +03:00
|
|
|
testnet: str,
|
2021-03-17 08:56:54 +03:00
|
|
|
):
|
2020-12-12 03:02:31 +03:00
|
|
|
config: Dict = load_config(DEFAULT_ROOT_PATH, "config.yaml")
|
|
|
|
change_made = False
|
2021-02-23 13:23:56 +03:00
|
|
|
if set_node_introducer:
|
2020-12-12 03:02:31 +03:00
|
|
|
try:
|
2021-02-23 13:23:56 +03:00
|
|
|
if set_node_introducer.index(":"):
|
2020-12-12 03:02:31 +03:00
|
|
|
host, port = (
|
2021-02-23 13:23:56 +03:00
|
|
|
":".join(set_node_introducer.split(":")[:-1]),
|
|
|
|
set_node_introducer.split(":")[-1],
|
2020-12-12 03:02:31 +03:00
|
|
|
)
|
|
|
|
config["full_node"]["introducer_peer"]["host"] = host
|
|
|
|
config["full_node"]["introducer_peer"]["port"] = int(port)
|
2020-12-12 03:18:18 +03:00
|
|
|
config["introducer"]["port"] = int(port)
|
2021-03-01 00:06:07 +03:00
|
|
|
print("Node introducer updated")
|
2020-12-12 03:02:31 +03:00
|
|
|
change_made = True
|
|
|
|
except ValueError:
|
|
|
|
print("Node introducer address must be in format [IP:Port]")
|
2021-03-17 08:56:54 +03:00
|
|
|
if set_farmer_peer:
|
|
|
|
try:
|
|
|
|
if set_farmer_peer.index(":"):
|
|
|
|
host, port = (
|
|
|
|
":".join(set_farmer_peer.split(":")[:-1]),
|
|
|
|
set_farmer_peer.split(":")[-1],
|
|
|
|
)
|
|
|
|
config["full_node"]["farmer_peer"]["host"] = host
|
|
|
|
config["full_node"]["farmer_peer"]["port"] = int(port)
|
|
|
|
config["harvester"]["farmer_peer"]["host"] = host
|
|
|
|
config["harvester"]["farmer_peer"]["port"] = int(port)
|
|
|
|
print("Farmer peer updated, make sure your harvester has the proper cert installed")
|
|
|
|
change_made = True
|
|
|
|
except ValueError:
|
|
|
|
print("Farmer address must be in format [IP:Port]")
|
2021-02-23 13:23:56 +03:00
|
|
|
if set_fullnode_port:
|
|
|
|
config["full_node"]["port"] = int(set_fullnode_port)
|
|
|
|
config["full_node"]["introducer_peer"]["port"] = int(set_fullnode_port)
|
|
|
|
config["farmer"]["full_node_peer"]["port"] = int(set_fullnode_port)
|
|
|
|
config["timelord"]["full_node_peer"]["port"] = int(set_fullnode_port)
|
|
|
|
config["wallet"]["full_node_peer"]["port"] = int(set_fullnode_port)
|
|
|
|
config["wallet"]["introducer_peer"]["port"] = int(set_fullnode_port)
|
|
|
|
config["introducer"]["port"] = int(set_fullnode_port)
|
2021-03-01 00:06:07 +03:00
|
|
|
print("Default full node port updated")
|
2020-12-12 03:02:31 +03:00
|
|
|
change_made = True
|
2021-02-23 13:23:56 +03:00
|
|
|
if set_log_level:
|
2021-02-21 12:40:29 +03:00
|
|
|
levels = ["CRITICAL", "ERROR", "WARNING", "INFO", "DEBUG", "NOTSET"]
|
2021-02-23 13:23:56 +03:00
|
|
|
if set_log_level in levels:
|
|
|
|
config["logging"]["log_level"] = set_log_level
|
2021-02-21 12:53:57 +03:00
|
|
|
print(f"Logging level updated. Check {DEFAULT_ROOT_PATH}/log/debug.log")
|
2020-12-12 09:09:34 +03:00
|
|
|
change_made = True
|
2021-02-21 12:40:29 +03:00
|
|
|
else:
|
|
|
|
print(f"Logging level not updated. Use one of: {levels}")
|
2021-02-23 13:23:56 +03:00
|
|
|
if enable_upnp is not None:
|
|
|
|
config["full_node"]["enable_upnp"] = str2bool(enable_upnp)
|
|
|
|
if str2bool(enable_upnp):
|
2021-03-01 00:06:07 +03:00
|
|
|
print("uPnP enabled")
|
2021-01-15 12:56:58 +03:00
|
|
|
else:
|
2021-03-01 00:06:07 +03:00
|
|
|
print("uPnP disabled")
|
2021-01-15 12:56:58 +03:00
|
|
|
change_made = True
|
2021-05-05 01:48:33 +03:00
|
|
|
if testnet is not None:
|
|
|
|
config["full_node"]["port"] = "58444"
|
2021-05-05 01:58:05 +03:00
|
|
|
config["full_node"]["introducer_peer"]["port"] = int("58444")
|
|
|
|
config["farmer"]["full_node_peer"]["port"] = int("58444")
|
|
|
|
config["timelord"]["full_node_peer"]["port"] = int("58444")
|
|
|
|
config["wallet"]["full_node_peer"]["port"] = int("58444")
|
|
|
|
config["wallet"]["introducer_peer"]["port"] = int("58444")
|
|
|
|
config["introducer"]["port"] = int("58444")
|
2021-05-05 01:48:33 +03:00
|
|
|
config["full_node"]["introducer_peer"]["host"] = "beta1_introducer.chia.net"
|
2021-05-05 02:12:39 +03:00
|
|
|
config["selected_network"] = "testnet7"
|
|
|
|
config["harvester"]["selected_network"] = "testnet7"
|
|
|
|
config["pool"]["selected_network"] = "testnet7"
|
|
|
|
config["farmer"]["selected_network"] = "testnet7"
|
|
|
|
config["timelord"]["selected_network"] = "testnet7"
|
|
|
|
config["full_node"]["selected_network"] = "testnet7"
|
|
|
|
config["ui"]["selected_network"] = "testnet7"
|
|
|
|
config["introducer"]["selected_network"] = "testnet7"
|
|
|
|
config["wallet"]["selected_network"] = "testnet7"
|
2021-05-05 01:48:33 +03:00
|
|
|
print("Default full node port, introducer and network setting updated")
|
|
|
|
change_made = True
|
2020-12-12 03:02:31 +03:00
|
|
|
if change_made:
|
2021-03-01 00:06:07 +03:00
|
|
|
print("Restart any running chia services for changes to take effect")
|
2021-02-23 13:23:56 +03:00
|
|
|
save_config(root_path, "config.yaml", config)
|
2020-12-12 03:02:31 +03:00
|
|
|
return 0
|
2021-02-23 13:23:56 +03:00
|
|
|
|
|
|
|
|
2021-03-01 00:06:07 +03:00
|
|
|
@click.command("configure", short_help="Modify configuration")
|
2021-05-05 01:48:33 +03:00
|
|
|
@click.option("--testnet", "-testnet", "-t", help="configures for connection to latest testnet", type=click.Choice(["true", "t", "false", "f"]))
|
2021-03-01 00:06:07 +03:00
|
|
|
@click.option("--set-node-introducer", help="Set the introducer for node - IP:Port", type=str)
|
2021-03-17 08:56:54 +03:00
|
|
|
@click.option("--set-farmer-peer", help="Set the farmer peer for harvester - IP:Port", type=str)
|
2021-02-23 13:23:56 +03:00
|
|
|
@click.option(
|
|
|
|
"--set-fullnode-port",
|
2021-03-01 00:06:07 +03:00
|
|
|
help="Set the port to use for the fullnode, useful for testing",
|
2021-02-23 13:23:56 +03:00
|
|
|
type=str,
|
|
|
|
)
|
|
|
|
@click.option(
|
|
|
|
"--set-log-level",
|
|
|
|
"--log-level",
|
|
|
|
"-log-level",
|
2021-03-01 00:06:07 +03:00
|
|
|
help="Set the instance log level",
|
2021-02-23 13:23:56 +03:00
|
|
|
type=click.Choice(["CRITICAL", "ERROR", "WARNING", "INFO", "DEBUG", "NOTSET"]),
|
|
|
|
)
|
2021-03-04 05:50:12 +03:00
|
|
|
@click.option(
|
|
|
|
"--enable-upnp", "--upnp", "-upnp", help="Enable or disable uPnP", type=click.Choice(["true", "t", "false", "f"])
|
|
|
|
)
|
2021-02-23 13:23:56 +03:00
|
|
|
@click.pass_context
|
2021-05-05 01:48:33 +03:00
|
|
|
def configure_cmd(ctx, set_farmer_peer, set_node_introducer, set_fullnode_port, set_log_level, enable_upnp, testnet):
|
|
|
|
configure(ctx.obj["root_path"], set_farmer_peer, set_node_introducer, set_fullnode_port, set_log_level, enable_upnp, testnet)
|