diff --git a/src/main/java/org/qortal/network/RNSCommon.java b/src/main/java/org/qortal/network/RNSCommon.java index 73e024c8..a87bd9e0 100644 --- a/src/main/java/org/qortal/network/RNSCommon.java +++ b/src/main/java/org/qortal/network/RNSCommon.java @@ -14,6 +14,12 @@ public class RNSCommon { public static String defaultRNSConfigPath = ".reticulum"; public static String defaultRNSConfigPathTestnet = ".reticulum_test"; + /** + * Default config + */ + public static String defaultRNSConfig = "reticulum_default_config.yml"; + public static String defaultRNSConfigTetnet = "reticulum_default_testnet_config.yml"; + ///** // * Qortal RNS Destinations // */ diff --git a/src/main/java/org/qortal/network/RNSNetwork.java b/src/main/java/org/qortal/network/RNSNetwork.java index 60e73ec3..9a472e0c 100644 --- a/src/main/java/org/qortal/network/RNSNetwork.java +++ b/src/main/java/org/qortal/network/RNSNetwork.java @@ -191,7 +191,10 @@ public class RNSNetwork { Path configFile = configPath.resolve(CONFIG_FILE_NAME); if (Files.notExists(configFile)) { - var defaultConfig = this.getClass().getClassLoader().getResourceAsStream("reticulum_default_config.yml"); + var defaultConfig = this.getClass().getClassLoader().getResourceAsStream(RNSCommon.defaultRNSConfig); + if (Settings.getInstance().isTestNet()) { + defaultConfig = this.getClass().getClassLoader().getResourceAsStream(RNSCommon.defaultRNSConfigTetnet); + } Files.copy(defaultConfig, configFile, StandardCopyOption.REPLACE_EXISTING); } } diff --git a/src/main/resources/reticulum_default_testnet_config.yml b/src/main/resources/reticulum_default_testnet_config.yml new file mode 100644 index 00000000..18c7b3fb --- /dev/null +++ b/src/main/resources/reticulum_default_testnet_config.yml @@ -0,0 +1,93 @@ +--- +# You should probably edit it to include any additional, +# interfaces and settings you might need. + +# Only the most basic options are included in this default +# configuration. To see a more verbose, and much longer, +# configuration example, you can run the command: +# rnsd --exampleconfig + +reticulum: + + # If you enable Transport, your system will route traffic + # for other peers, pass announces and serve path requests. + # This should only be done for systems that are suited to + # act as transport nodes, ie. if they are stationary and + # always-on. This directive is optional and can be removed + # for brevity. + + enable_transport: false + + # By default, the first program to launch the Reticulum + # Network Stack will create a shared instance, that other + # programs can communicate with. Only the shared instance + # opens all the configured interfaces directly, and other + # local programs communicate with the shared instance over + # a local socket. This is completely transparent to the + # user, and should generally be turned on. This directive + # is optional and can be removed for brevity. + + share_instance: false + + # If you want to run multiple *different* shared instances + # on the same system, you will need to specify different + # shared instance ports for each. The defaults are given + # below, and again, these options can be left out if you + # don't need them. + + #shared_instance_port: 37428 + #instance_control_port: 37429 + shared_instance_port: 37438 + instance_control_port: 37439 + + # You can configure Reticulum to panic and forcibly close + # if an unrecoverable interface error occurs, such as the + # hardware device for an interface disappearing. This is + # an optional directive, and can be left out for brevity. + # This behaviour is disabled by default. + + panic_on_interface_error: false + + +# The interfaces section defines the physical and virtual +# interfaces Reticulum will use to communicate on. This +# section will contain examples for a variety of interface +# types. You can modify these or use them as a basis for +# your own config, or simply remove the unused ones. + +interfaces: + + # This interface enables communication with other + # link-local Reticulum nodes over UDP. It does not + # need any functional IP infrastructure like routers + # or DHCP servers, but will require that at least link- + # local IPv6 is enabled in your operating system, which + # should be enabled by default in almost any OS. See + # the Reticulum Manual for more configuration options. + #"Default Interface": + # type: AutoInterface + # enabled: true + + # This interface enables communication with a "backbone" + # server over TCP. + # Note: others may be added for redundancy + "TCP Client Interface mobilefabrik": + type: TCPClientInterface + enabled: true + target_host: phantom.mobilefabrik.com + target_port: 3434 + #network_name: qortal + + # This interface turns this Reticulum instance into a + # server other clients can connect to over TCP. + # To enable this instance to route traffic the above + # setting "enable_transport" needs to be set (to true). + # Note: this interface type is not yet supported by + # reticulum-network-stack. + #"TCP Server Interface": + # type: TCPServerInterface + # enabled: true + # listen_ip: 0.0.0.0 + # listen_port: 3434 + # #network_name: qortal +