diff --git a/newcoind.cfg b/newcoind.cfg index e34c6b2490..e08702b461 100644 --- a/newcoind.cfg +++ b/newcoind.cfg @@ -1,46 +1,63 @@ # # Sample newcoind.cfg # -# This file is UTF-8 with Dos, UNIX, or Mac style end of lines. -# Blank lines and lines beginning with '#' are ignored. -# Undefined sections are reserved. -# No escapes are currently defined. +# This file should be named newcoind.cfg. This file is UTF-8 with Dos, UNIX, +# or Mac style end of lines. Blank lines and lines beginning with '#' are +# ignored. Undefined sections are reserved. No escapes are currently defined. # # When you launch newcoind, it will attempt to find this file. # -# You may specify the location of this file with --conf=. The base -# directory for other files will be the directory containing this file. +# --conf=: +# You may specify the location of this file with --conf=. The config +# directory is the directory containing this file. The data directory is a +# the subdirectory named "dbs". # -# Windows: -# This file is named newcoind.cfg. -# The base directory for this configuration file and other information is the -# same directory as the newcoind program. +# Windows and no --conf: +# The config directory is the same directory as the newcoind program. The +# data directory is a the subdirectory named "dbs". # -# Other OSes: -# This file may be named newcoind.cfg. The file will be looked for in the -# following order: +# Other OSes and no --conf: +# This file will be looked for in these places in the following order: # ./newcoind.cfg # $XDG_CONFIG_HOME/newcoin/newcoind.cfg # -# If newcoind.cfg, is found in the current working directory, the directory -# will be used as the base directory for other information. Otherwise, the -# base directory for data is: +# If newcoind.cfg, is found in the current working directory, the directory +# will be used as the config directory. The data directory is a the +# subdirectory named "dbs". +# +# Otherwise, the data directory data is: # $XDG_DATA_HOME/newcoin/ # # Note: $XDG_CONFIG_HOME defaults to $HOME/.config # $XDG_DATA_HOME defaults to $HOME/.local/share # -# To perform validation, one of these sections must be provided: -# [validation_key], [validation_password], or [validation_seed]. +# [unl_default]: +# Specifies how to bootstrap the UNL list. The UNL list is based on a +# validators.txt file and is maintained in the databases. When newcoind +# starts up, if the databases are missing or are obsolete due to an upgrade +# of newcoind, newcoind will reconstruct the UNL list as specified here. +# +# If this field is not present or empty, newcoind will look for a validators.txt in the +# config directory. If not found there, it will attempt to retrieve the file +# from the newcoin foundation's web site. +# +# Specify the file by specifying its full path. +# +# Examples: C:/home/johndoe/newcoin/newcoind.cfg +# /home/johndoe/newcoin/newcoind.cfg # # [peer_ip]: -# IP address or domain to bind to if allowing external connections from peers. +# IP address or domain to bind to allow external connections from peers. +# Defaults to not allow external connections from peers. +# +# Examples: 0.0.0.0 - Bind on all interfaces. # # [peer_port]: -# Port to bind to if allowing external connections from peers. +# Port to bind to allow external connections from peers. # # [rpc_ip]: -# IP address or domain to bind to if allowing insecure RPC connections. +# IP address or domain to bind to allow insecure RPC connections. +# Defaults to not allow RPC connections. # # [rpc_port]: # Port to bind to if allowing insecure RPC connections. @@ -48,14 +65,24 @@ # [rpc_allow_remote]: # 0 or 1. 0 only allows RPC connections from 127.0.0.1. [default 0] # +# [websocket_ip]: +# IP address or domain to bind to allow client connections. +# +# Examples: 0.0.0.0 - Bind on all interfaces. +# 127.0.0.1 - Bind on localhost interface. Only local programs may connect. +# +# [websocket_port]: +# Port to bind to allow client connections. +# # [validation_seed]: # To perform validation, this section should contain either a validation seed or key. # The validation seed is used to generate the validation public/private key pair. # To obtain a validation seed, use the validation_create command. +# # Examples: RASH BUSH MILK LOOK BAD BRIM AVID GAFF BAIT ROT POD LOVE # shfArahZT9Q9ckTf3s1psJ7C7qzVN - # + [peer_ip] 0.0.0.0 diff --git a/src/Config.cpp b/src/Config.cpp index b02c468e95..18a26737c0 100644 --- a/src/Config.cpp +++ b/src/Config.cpp @@ -29,6 +29,7 @@ #define SECTION_FEE_NICKNAME_CREATE "fee_nickname_create" #define SECTION_FEE_DEFAULT "fee_default" #define SECTION_ACCOUNT_PROBE_MAX "account_probe_max" +#define SECTION_UNL_DEFAULT "unl_default" Config theConfig; @@ -169,7 +170,7 @@ void Config::load() (void) sectionSingleB(secConfig, SECTION_PEER_IP, PEER_IP); if (sectionSingleB(secConfig, SECTION_PEER_PORT, strTemp)) - PEER_PORT = boost::lexical_cast(strTemp); + PEER_PORT = boost::lexical_cast(strTemp); (void) sectionSingleB(secConfig, SECTION_RPC_IP, RPC_IP); @@ -177,7 +178,7 @@ void Config::load() RPC_PORT = boost::lexical_cast(strTemp); if (sectionSingleB(secConfig, SECTION_RPC_ALLOW_REMOTE, strTemp)) - RPC_ALLOW_REMOTE = boost::lexical_cast(strTemp); + RPC_ALLOW_REMOTE = boost::lexical_cast(strTemp); if (sectionSingleB(secConfig, SECTION_VALIDATION_SEED, strTemp)) VALIDATION_SEED.setSeedGeneric(strTemp); @@ -187,28 +188,31 @@ void Config::load() PEER_SCAN_INTERVAL_MIN = MAX(60, boost::lexical_cast(strTemp)); if (sectionSingleB(secConfig, SECTION_PEER_START_MAX, strTemp)) - PEER_START_MAX = MAX(1, boost::lexical_cast(strTemp)); + PEER_START_MAX = MAX(1, boost::lexical_cast(strTemp)); if (sectionSingleB(secConfig, SECTION_PEER_CONNECT_LOW_WATER, strTemp)) PEER_CONNECT_LOW_WATER = MAX(1, boost::lexical_cast(strTemp)); if (sectionSingleB(secConfig, SECTION_NETWORK_QUORUM, strTemp)) - NETWORK_QUORUM = MAX(0, boost::lexical_cast(strTemp)); + NETWORK_QUORUM = MAX(0, boost::lexical_cast(strTemp)); if (sectionSingleB(secConfig, SECTION_VALIDATION_QUORUM, strTemp)) - VALIDATION_QUORUM = MAX(0, boost::lexical_cast(strTemp)); + VALIDATION_QUORUM = MAX(0, boost::lexical_cast(strTemp)); if (sectionSingleB(secConfig, SECTION_FEE_ACCOUNT_CREATE, strTemp)) - FEE_ACCOUNT_CREATE = boost::lexical_cast(strTemp); + FEE_ACCOUNT_CREATE = boost::lexical_cast(strTemp); if (sectionSingleB(secConfig, SECTION_FEE_NICKNAME_CREATE, strTemp)) - FEE_NICKNAME_CREATE = boost::lexical_cast(strTemp); + FEE_NICKNAME_CREATE = boost::lexical_cast(strTemp); if (sectionSingleB(secConfig, SECTION_FEE_DEFAULT, strTemp)) - FEE_DEFAULT = boost::lexical_cast(strTemp); + FEE_DEFAULT = boost::lexical_cast(strTemp); if (sectionSingleB(secConfig, SECTION_ACCOUNT_PROBE_MAX, strTemp)) - ACCOUNT_PROBE_MAX = boost::lexical_cast(strTemp); + ACCOUNT_PROBE_MAX = boost::lexical_cast(strTemp); + + if (sectionSingleB(secConfig, SECTION_UNL_DEFAULT, strTemp)) + UNL_DEFAULT = strTemp; } } } diff --git a/src/Config.h b/src/Config.h index 4ef20c81b9..6a77fde1f4 100644 --- a/src/Config.h +++ b/src/Config.h @@ -44,6 +44,7 @@ public: boost::filesystem::path CONFIG_FILE; boost::filesystem::path CONFIG_DIR; boost::filesystem::path DATA_DIR; + boost::filesystem::path UNL_DEFAULT; // Network parameters int NETWORK_START_TIME; // The Unix time we start ledger 0