Skip to content

Config files (config.json & rpc_config.json)

Wesley Shillingford edited this page Apr 23, 2019 · 8 revisions

Structure of configuration file (config.json)

  {
   "version": "(int)", // Wallet version
   "wallet": "(string)", // Default wallet to load on boot (only for GUI wallet)
   "account": "(string)", // Default account to load on boot (only for GUI wallet)
   "node": {
       "version": "(int)", // Node version
       "peering_port": "7075", // Default node port
       "bootstrap_fraction_numerator": "1", 
       "enable_voting": "false", // Enable or disable voting for blocks. If disabled, saves some resources
       "receive_minimum": "1000000000000000000000000", // Minimum import receivable, default 1 Rai
       "logging": {
           "ledger": "false", // Track incoming blocks
           "ledger_duplicate": "false",
           "network": "true", // Track general network info like forks
           "network_message": "false",
           "network_publish": "false", // Track blocks you publish to
           "network_packet": "false", // Track packets origin
           "network_keepalive": "false", // Track keepalive messages
           "network_node_id_handshake": "false", // Track node_id messages
           "node_lifetime_tracing": "false",
           "insufficient_work": "true",
           "log_rpc": "true", // Track RPC your node execute
           "bulk_pull": "false", // Bootstrap related logging
           "work_generation_time": "true",
           "log_to_cerr": "false",
           "max_size": "16777216", // Max size of logs before old files deletion. Default is 16MB 
           "rotation_size": "4194304", // Size of Log File before rotation in bytes, Default is 4MB 
           "version": "(int)", // Logging config version
           "vote": "false", // Track voting activities
           "flush": "true"  // Setting this to false gives better performance, but may lose entries on crashes.
           "upnp_details": "false", // Determines if upnp discovery details are logged (default off to avoid sharing device info when shipping logs)
           "timing": "false", // Logs durations of key functions, such as batch verification, etc.
           "log_ipc": "true" // Logging of IPC related messages
       },
       "vote_minimum": "1000000000000000000000000000000000",// Prevents voting if delegated weight is under this threshold
       "work_peers": "", // Delegate a node your hash work, you need to get RPC access to that node
       "preconfigured_peers": [ // List of defaults peers to connect on boot
           "peering.nano.org",
           "::ffff:138.201.94.249"
       ],
       "preconfigured_representatives": [ // List of defaults representatives, which you delegate voting weight, of your wallet
           "xrb_3arg3asgtigae3xckabaaewkx3bzsh7nwz7jkmjos79ihyaxwphhm6qgjps4",
           "xrb_1stofnrxuz3cai7ze75o174bpm7scwj9jn3nxsn8ntzg784jf1gzn1jjdkou",
           "xrb_1q3hqecaw15cjt7thbtxu3pbzr1eihtzzpzxguoc37bj1wc5ffoh7w74gi6p",
           "xrb_3dmtrrws3pocycmbqwawk6xs7446qxa36fcncush4s1pejk16ksbmakis78m",
           "xrb_3hd4ezdgsp15iemx7h81in7xz5tpxi43b6b41zn3qmwiuypankocw3awes5k",
           "xrb_1awsn43we17c1oshdru4azeqjz9wii41dy8npubm4rg11so7dx3jtqgoeahy",
           "xrb_1anrzcuwe64rwxzcco8dkhpyxpi8kd7zsjc1oeimpc3ppca4mrjtwnqposrs",
           "xrb_1hza3f7wiiqa7ig3jczyxj5yo86yegcmqk3criaz838j91sxcckpfhbhhra1"
       ],
       "online_weight_minimum": "60000000000000000000000000000000000000", // Online weight minimum required to confirm block
       "online_weight_quorum": "50", // Percentage of votes required to attempt a rollback of blocks
       "password_fanout": "1024", 
       "io_threads": "4", 
       "work_threads": "4", // PoW work threads. By deafault all available CPU threads, set lower value for 24/7 services
       "callback_address": "::ffff:127.0.0.1", // Callback IP address, in sample IPv4 localhost
       "callback_port": "17076", // Callback port
       "callback_target": "/", // Callback target, in sample root of callback listening server
       "bootstrap_connections": "16", // Multi-connection bootstrap. Should be a power of 2.
       "bootstrap_connections_max": "4", // Allowed incoming bootstrap connections count. Lower value save IOPS & bandwidth. 64 recommended for high-end fast nodes, 0 for HDD home users,
       "lmdb_max_dbs": "128" // Maximum open DBs (MAX_DBS https://lmdb.readthedocs.io/en/release/), increase default if more than 100 wallets required
       "block_processor_batch_max_time": "5000", // Number of milliseconds the block processor works at a time
       "allow_local_peers": "false", // To allow local host peering
       "signature_checker_threads": "1", // Number of threads to use for verifying signatures
       "unchecked_cutoff_time": "14400" // Number of seconds unchecked entry survives before being cleaned
       "ipc": { // For more details about these options see the IPC section of the wiki: https://github.com/nanocurrency/nano-node/wiki/IPC
           "tcp": {
               "enable": "false",
               "port": "7077",
               "io_timeout": "15"
           },
           "local": {
               "enable": "false",
               "path": "\/tmp\/nano",
               "io_timeout": "15"
           }
       },
   },
   "rpc": {
       "enable_sign_hash": "true",
       "max_work_generate_difficulty": "ffffffffc0000000",
       "version": "1",
       "rpc_path": "C:\\Users\\Wesley\\Documents\\raiblocks\\build\\Debug\\nano_rpc.exe", // if rpc_in_process is false this points to the nano_rpc executable which is run out of process
       "rpc_in_process": "true" // Whether the rpc server is run as part of the nano_node process (if true rpc_path not used)
   },
   "rpc_enable": "true", // Enable (in-process or child process) or disable RPC (Out of process rpc servers can still be used if launched manually)
   "opencl_enable": "false", // Enable GPU hashing
   "opencl": {
       "platform": "0", // Platform ID
       "device": "0", // Device ID
       "threads": "1048576" 
   }
   }

Structure of RPC configuration file (rpc_config.json) v19.0+

{
    "address": "::ffff:127.0.0.1", // Allowed IP for RPC connection
    "port": "7076", // Default RPC port
    "enable_control": "true", // Enable particular RPC command like: send, account_create, etc...
    "max_json_depth": "20" // prevent JSON overflow. Default recommended
    "version": "1",
    "max_request_size": "33554432",
    "io_threads": "8", // Number of threads listening to RPC requests 
    "ipc_port": "46000",       // Must match port in ipc -> tcp of node config file (only used with child/out of process RPC)
    "num_ipc_connections": "8" // Max number of connections with nano_node (only used with child/out of process RPC)
}

Where are the configuration files located?

Windows

C:\Users\<user>\AppData\Local\Nano\

OSX

/Users/<user>/Library/Nano/

Linux

/home/<user>/Nano/

Configuration Options (config.json)

work_peers

Used when offloading work generation to another node or service. Format must be ipv6, preceded by ::ffff: if ipv4, hostnames are not allowed at this time. Calls are made to the ip:port designated using the standard RPC format work_generate

"work_peers": [
    "::ffff:127.0.0.1:7076"
],