Nyzo techSetup instructionsPreferences

Preferences

The Nyzo Java codebase has a class named PreferencesUtil that provides values for a number of parameters. All of these parameters have default values in the Java code, though some of the default values result in functionality being disabled.

Preferences are specified in the preferences file in the data root directory. For a standard configuration, the full path of this file will be /var/lib/nyzo/production/preferences.

Preferences are specified on one line each. The name is first, followed by the "=" character, followed by the value.

As an example, below are the contents of the preferences file used on client.nyzo.co.

start_web_listener=1
start_historical_block_manager=1
web_listener_keystore_path=/var/lib/nyzo/production/ssl-keystore.p12
web_listener_keystore_password=not-really-the-password
block_file_consolidator=consolidate
enable_console_color=1

name
data type
default value
description
add_api_endpoints
boolean
true
When activated, adds endpoints for a client to be accessible via API. This may be deactivated to run a client that only offers web endpoints or a console interface. Only applies to the client.
add_web_endpoints
boolean
true
When activated, adds endpoints for a client to be accessible via web browser. This may be deactivated to run a client that only offers API endpoints or a console interface. Only applies to the client.
always_track_blockchain
boolean
false
When this is activated, out-of-cycle verifiers track the blockchain in a manner similar to the client. Using block-with-votes requests, these verifiers attempt to loosely track the frozen edge of the blockchain at all times. When this is not activated, out-of-cycle verifiers do not regularly track the blockchain. Instead, they reinitialize the frozen edge every 20 minutes. Only applies to out-of-cycle verifiers.
block_file_consolidator
character string (enumer­ation)
empty string
Allows three values: consolidate, delete, and disable. The original behavior is consolidate, which bundles all individual files into combined files of up to 1000 blocks each, afterwards deleting the individual files to save filesystem resources. The delete option skips consolidation, but it deletes the individual files at the same time as they would be deleted with the consolidate option. The disable option leaves the individual files in place. For the client, default behavior is consolidate. For the verifier and sentinel, default behavior is delete.
concurrent_connection_reduction_rate
64-bit floating-point number
0.02
The rate at which the sum of all concurrent connections beyond concurrent_connection_throttle_threshold reduces the number of concurrent connections permitted from each IP address.
concurrent_connection_throttle_threshold
integer
500
The number of connections beyond this value reduces the number of connections permitted from each IP address according to the rate specified by concurrent_connection_reduction_rate.
connection_close_delay
long integer
500
This is the minimum desired delay between when a connection is no longer needed and when it is forcibly closed. This value is specified in milliseconds.
consensus_tracker_storage_threshold_bytes
long integer
20,000,000,000
When storage space falls below this value, the ConsensusTracker process is deactivated.
consolidated_block_base_url
character string (URL)
https://blocks.nyzo.co/blockFiles/
The location referenced by the HistoricalChainFiller for consolidated block files. This class is used by the verifier to quickly build the blockchain knowledge necessary to score blocks and participate fully in block creation and consensus. Only applies to the verifier.
create_and_score_test_new_verifier_block
boolean
false
This option is for debugging purposes only, and few verifiers would have reasons to activate this. When activated, a dummy block from a "new" verifier (private seed of 0101000000000000-0000000000000000-0000000000000000-0000000000000000) is created and scored each time the verifier freezes a block. Only applies to the verifier.
documen­tation_data_root
character string (file path)
empty string
The directory where the documentation files are located for the documentation server. If using the Nyzo documentation repository, this is the directory into which the repository is cloned. Only applies to the documentation server.
enable_consensus_tracker
boolean
false
Activates the ConsensusTracker class. This class records every block and every vote received by a verifier to help debug consensus issues. This class can consume significant memory and significant storage. When activating, also consult consensus_tracker_storage_threshold_bytes.
enable_console_color
boolean
false
Use ASCII color codes to decorate console output.
fallback_vote_source_identifier
byte array
null
The identifier of another verifier whose vote will be copied whenever this verifier cannot calculate the vote independently. When a verifier is having trouble tracking the blockchain, this setting can be used to allow the verifier to regularly cast votes and maintain its performance score.
json_maximum_string_length
integer
10,000
The maximum number of Unicode units allowed in an input string, which is the value returned by the length() method of the Java JSON input String object. If the length of the input is greater than this value, the input is not parsed.
log_timestamps
boolean
false
Controls whether a timestamp is added to every line logged with LogUtil.
maximum_concurrent_connections
integer
1000
The maximum number of concurrent connections allowed from all IP addresses combined. After this limit is exceeded, all connections will be refused.
maximum_concurrent_connections_per_ip
integer
5
The maximum number of concurrent connections allowed from each source IP address. After this limit is exceeded, all connections from the particular IP address will be refused.
nickname_map_threshold
integer
2000
Maximum number of nicknames to track locally. This limit was put into place in version 500 to prevent attacks that attempt to spam the verifier with an excessive number of names.
relay_endpoint_maximum_cache_items
integer
10
The maximum items to keep in the filePathToFileContentMap in RelayEndpoint. The maximum byte size of the cache cannot currently be specified, so this value should be set with the sizes of the server's files in mind to ensure excessive memory is not used by this map.
script_maximum_in_flight_requests
integer
50
The maximum number of messages that the ScriptUtil.sendMessages() method will allow to be in progress simultaneously. When this limit is reached, the method will wait for messages to complete (fail or receive a response) before sending another message.
script_maximum_message_attempts
integer
3
The maximum number of times that the ScriptUtil.sendMessages() method will attempt to send each message before accepting failure.
seed_transaction_base_url
character string (URL)
https://seed.nyzo.co/seedTransactions/
The base URL from which the verifier can download pre-signed seed transactions. The default value points to a location provided by the Nyzo team.
social_image_height
integer
-1
The value used for the og:image:height meta tag. If this value is not provided or is not positive, none of the og:image meta tags are rendered.
social_image_url
character string (URL)
null
The URL used for the og:image and twitter:image meta tags. If this value is not provided, neither the og:image meta tags nor the twitter:image meta tag are rendered.
social_image_width
integer
-1
The value used for the og:image:width meta tag. If this value is not provided or is not positive, none of the og:image meta tags are rendered.
start_historical_block_manager
boolean
false
Whether to start the background process in the HistoricalBlockManager class. This background process builds the offset files that allow efficient retrieval of blocks from consolidated block files. The HistoricalBlockManager is only used by the client. This setting has no effect on other run modes.
start_web_listener
boolean
true for documen­tation server and relay server, false for other run modes
When activated, a listener for HTTP connections is opened on the port specified by web_port, and the endpoint map is built. Also, if web_listener_keystore_path and web_listener_keystore_password are specified, a listener for HTTPS connections is opened on the port specified by web_port_https.
transaction_forward_command_maximum_map_size
integer
1000
The TransactionForwardCommand class maintains a map of recently forwarded transactions. Periodically, this map is cleaned to remove all transactions at or behind the frozen edge. After all transactions at or behind the frozen edge have been removed from the map, this limit is enforced, with arbitrary transactions being removed from the map until its size no longer exceeds this limit.
transaction_indexer_active
boolean
true
When activated, the client starts the TransactionIndexer. This background process builds index files for use by the TransactionIndexedSearchCommand. Only applies to the client.
twitter_creator
character string
@Nyzo16
The value used for the twitter:creator meta tag.
twitter_site
character string
@Nyzo16
The value used for the twitter:site meta tag.
verifier_add_metadata_transactions
boolean
true
When activated, the verifier adds µ1 transactions as appropriate when building blocks for verification. Currently, the only two transactions added are: nickname, which stores the current verifier's nickname on the blockchain, and top-new-verifier, which stores the identifier of the top-voted new verifier on the blockchain.
web_listener_connection_timeout
integer
2000
The amount of time that a web listener socket will block to read a request.
web_listener_keystore_password
character string
empty string
When using SSL (HTTPS) for any of the modes using the web listener, this is the password for the keystore file.
web_listener_keystore_path
character string (file path)
empty string
When using SSL (HTTPS) for any of the modes using the web listener, this is the path to the keystore file.
web_maximum_concurrent_connections_per_ip
integer
40
The maximum number of concurrent connections allowed by the web listener from each source IP address. After this limit is exceeded, all connections from the particular IP address will be refused.
web_port
integer
80
Port for the HTTP web listener. This value will apply to all run modes except those for which a value is separately specified. The names for specific run modes are: web_port_client, web_port_documentation_server, web_port_relay_server, web_port_sentinel, and web_port_verifier.
web_port_https
integer
443
Port for the HTTPS web listener. This value will apply to all run modes except those for which a value is separately specified. The names for specific run modes are: web_port_https_client, web_port_https_documentation_server, web_port_https_relay_server, web_port_https_sentinel, and web_port_https_verifier.
web_port_https
integer
443
Port for the HTTPS web listener. This value will apply to all run modes except those for which a value is separately specified. The names for specific run modes are: web_port_https_client, web_port_https_documentation_server, web_port_https_relay_server, web_port_https_sentinel, and web_port_https_verifier.
performance_score_decrement_no_active_incycle_verifier
boolean
false
Enable a redundant performance score check in regards to verifier in-cycle presence. Default false due to concerns about DDoS affecting your performance score.
enable_fastest_block_votes_recovery
boolean
false
Enable the fastest block votes recovery request procedure. If no block has been frozen in more than 15 minutes, this speeds up the regular process by two, relative to the regular request procedure by factor 4. Not recommended due to blacklisting and chain state at the time of writing (14/01/2024).