.. _fields-reference: ================ Field Reference ================ The types references after the field names below are the corresponding Rust type this value will be parsed into. For convenience, the following should be adhered to: | | u8 => one byte unsigned integer with range 0 to 255. | u16 => two byte unsigned integer with range 0 to 65535. | u32 => four byte unsigned integer with range 0 to 4294967295. | u64 => eight byte unsigned integer with range 0 to 18446744073709551615. | | f32 => four byte floating point number with 32 bits of precision. | f64 => eight byte floating point number with 64 bits of precision. | **allow_self_select** - bool Whether to enable self select mode, allowing miners can use their own block template. Currently in testing, not for production use yet. You must set the environment variable ``RUSTPOOL_DEV`` to a non-blank value to set this to ``true``. **auto_payment_min_balance_atomic_units** - u64 The minimum balance in atomic units before a miner will get an auto payout, if ``should_do_automatic_payments`` is true. **block_notify_host** - str The IP to listen to for block notifications. This may be set to ``0.0.0.0`` to accept notifications from all addresses. **block_notify_port** - u16 The port to listen to for block notifications. This may be set to ``0`` to accept notifications from all ports. **daemon_rpc_url** - str The full url to connect to the daemon RPC at. **daemon_rpc_user** - str The user to connect to the daemon RPC as. **daemon_rpc_password** - str The password to connect to the daemon RPC with. **database_connect_timeout_seconds** - u8 The database connection timeout in seconds. **database_host** - str The host to connect to the database at. **database_name** - str The name of the database to connect to. **database_password** - str The password for the database user. **database_port** - u16 The port to connect to the database at. **database_type** - str The type of database to connect to. Currently only ``POSTGRES`` is allowed here. **database_user** - u16 The database user to connect as. **fee_wallet** - str The pool fee wallet. **log_level** - str The log level. Must be one of ``TRACE``, ``DEBUG``, ``INFO``, ``WARNING``, ``ERROR``, or ``OFF``. **log_style** - str The log style. Must be one of ``RUSTPOOL`` or ``SYSTEMD``. **manual_payment_min_balance_atomic_units** - u64 The minimum balance in atomic units before a miner can request a manual payout. **max_error_jobs_to_block** - u8 The number of errored jobs a miner can have in the past ``pool_stats_window_seconds`` before they are refused another one. **max_open_jobs_to_block** - u8 The number of open jobs a miner can have in the past ``pool_stats_window_seconds`` before they are refused another one. **miner_expected_seconds_per_share** - u16 This is how often, on average, you would like a miner to produce a share. RustPool will adjust the miner's difficulty target based on their average hashrate in the past ``pool_stats_window_seconds`` so that this value is targeted for the next job. **node_role** - str This is the role the pool instance should perform. Must be one of ``BACKEND``, ``WORKER``, or ``COMBINED``. RustPool is designed so that only one pool node should perform backend duties, so any deployment should respect this assumption. **poll_rpc_interval_seconds** - u16 How often the backend should poll the Monero RPC for new block templates. Although RustPool is designed to listen for block notifications, manual polling is still recommended by the daemon documentation in cases of missed notifications. **pool_fee** - f64 The pool fee expressed as a floating point number between ``0.0`` and ``1.0`` (So ``1%`` becomes ``0.01`` and so on). **pool_listen_host** - str The host to listen for miner requests on. This may be set to ``0.0.0.0`` to accept miner requests from all addresses. **pool_listen_port** - u16 The port to listen for miner requests on. This may be set to ``0`` to accept miner requests from all ports. **pool_min_difficulty** - u64 The minimum difficulty for a miner to submit a share. **pool_nonce_slug** - str A slug to add to the block template reserved space. It must be a hexadecimal string that is an even number of characters in length and no more than ``2 * pool_reserve_size_bytes`` characters long. In practice, this should be significantly shorter than``2 * pool_reserve_size_bytes`` so that sufficient entropy may be introduced into the template, to avoid miners mining the same template. **pool_reserve_size_bytes** - u16 The number of bytes to request for block template reserved space. This corresponds to the pool nonce space in the template and will be filled with the ``pool_nonce_slug`` and the remaining space filled with random hex characters to prevent miners from mining on the same template. **pool_stats_window_seconds** - u16 The number of seconds to look back when determining miner hashrate, open and error job counts, etc. **process_payments_timer_seconds** - u16 How often the backend should process payments in seconds. **rpc_timeout_seconds** - u8 The timeout in seconds for connecting to the Monero RPC. **rx_use_full_memory** - bool Sets whether to use the full memory dataset in the RandomX algorithm. **rx_use_large_pages** - bool Sets whether to use large pages in the RandomX algorithm. **rx_set_secure_flag** - bool Sets whether to use secure features in the RandomX algorithm. **should_do_automatic_payments** - bool Whether the backend should do automatic payments once a miner has a balance greater than ``auto_payment_min_balance_atomic_units``. **should_process_payments** - bool Whether the backend should process payments or not. **threads** - u8 This is the number of threads to use. If you set this to 0, the CPU will be polled and the maximum threads available will be used. **wallet** - str The pool wallet address. **wallet_rpc_url** - str The full url to connect to the wallet RPC at. **wallet_rpc_user** - str The user to connect to the wallet RPC as. **wallet_rpc_password** - str The password to connect to the wallet RPC with.