RustMinerSystem

Documentation

Change RustMinerSystem Configuration In CLI Mode

Edit rust-config, port-config.json, and wallet-config.json in RustMinerSystem CLI mode, then apply changes with rustminer restart.

Change RustMinerSystem Configuration In CLI Mode

In CLI mode, configuration is changed from the server terminal instead of the web dashboard. Edit the RustMinerSystem configuration files, save them, and run rustminer restart to apply the changes.

The default install directory is:

cd /root/rustminersystem

If your build uses a custom directory or a debug environment, run the install script and choose menu item 21 to view runtime status and file paths.

Workflow

Recommended workflow:

cd /root/rustminersystem

cp rust-config rust-config.bak.$(date +%Y%m%d%H%M%S)
cp port-config.json port-config.json.bak.$(date +%Y%m%d%H%M%S)
cp wallet-config.json wallet-config.json.bak.$(date +%Y%m%d%H%M%S)

nano rust-config
nano port-config.json
nano wallet-config.json

rustminer restart

You can also use vim, vi, or another terminal editor. After changing JSON files, validate the format when jq is available:

jq . port-config.json >/dev/null
jq . wallet-config.json >/dev/null

If jq is not installed, at least confirm that JSON quotes, commas, square brackets, and braces are still valid.

rust-config

rust-config is a text file with one setting per line:

KEY=value

Plain switches and ports use numbers directly. Array or object values use single-line JSON. Do not split one JSON value across multiple lines.

Common settings:

Setting Description
ENABLE_WEB_UI Enables the web dashboard. 1 means enabled, 0 means disabled. CLI mode requires web access to be disabled, so set it to 0.
ENABLE_WEB_TLS Web dashboard protocol. 1 means HTTPS, 0 means HTTP. This only matters when web access is enabled.
START_PORT Web dashboard port. Use a port in the 10000-65535 range when possible.
RMS_PORT RMS access port. Use a port in the 10000-65535 range when possible.
POOLNODE_PORT PoolNode access port. Use a port in the 10000-65535 range when possible.
IP_BLACKLIST IP blacklist, stored as a JSON array.
WALLET_BLACKLIST Wallet blacklist, stored as a JSON array.
WALLET_WHITELIST Wallet whitelist, stored as a JSON array.
POOL_ENDPOINT Custom pool and custom wallet settings, stored as a JSON object.
RMS RMS-related settings, stored as a JSON object.
WARNING_SETTING Alert settings, stored as a JSON object.

Example:

ENABLE_WEB_UI=0
ENABLE_WEB_TLS=0
START_PORT=46679
RMS_PORT=13293
POOLNODE_PORT=15354
IP_BLACKLIST=["203.0.113.10","198.51.100.20"]
WALLET_BLACKLIST=["wallet-name"]
WALLET_WHITELIST=[]

You can also replace port values with sed:

sed -i 's/^START_PORT=.*/START_PORT=46679/' rust-config
sed -i 's/^RMS_PORT=.*/RMS_PORT=13293/' rust-config
sed -i 's/^POOLNODE_PORT=.*/POOLNODE_PORT=15354/' rust-config

Do not publish or screenshot real REMOTE_KEY, REMOTE_CODE, OB_TOKEN, SMTP secrets, or similar tokens. If you only change ports, web access, or blacklists, you usually do not need to edit these secret fields.

port-config.json

port-config.json stores port settings as a JSON array. Each object represents one miner access port.

Port ID Format

When you manually add a port, generate id with this fixed format:

5 random letters or digits + . + 2 random digits

Examples:

6YMpg.06
A1b2C.34

As a regular expression, the format is [A-Za-z0-9]{5}\.[0-9]{2}. Do not reuse the same id inside one port-config.json file.

Common fields:

Field Description
id Port ID. Keep the existing value when editing an existing port; when adding one manually, use a format like 6YMpg.06 and keep it unique.
port Local listen port used by miners to connect to RustMinerSystem.
name Port name. It can be empty.
currency Coin name.
category Algorithm or category name.
protocol Miner access protocol: 0 TCP, 1 TLS, 3 TTS, 5 RMS2, 6 RMS3, 8 RMS3(zstd), 9 TP.
limit_connections Connection limit for the port.
pool_address Primary pool address.
connect_mode Primary pool connection protocol: 0 TCP, 1 TLS.
pool_address2 Backup pool address. It can be empty.
connect_mode2 Backup pool connection protocol: 0 TCP, 1 TLS.
mode Port mode: 0 efficient mode, 1 compatibility mode.

Example:

[
    {
        "id": "6YMpg.06",
        "port": 47777,
        "name": "IRON proxy",
        "currency": "IRON",
        "category": "blake3s",
        "protocol": 1,
        "limit_connections": 65535,
        "pool_address": "hk.ironfish.example.com:1145",
        "pool_address2": "",
        "connect_mode": 0,
        "connect_mode2": 0,
        "mode": 0,
        "proxy_addr": null,
        "proxy_device": null,
        "pattern_addr": "",
        "replace_addr": "",
        "status": 2,
        "error": "",
        "nc": 1
    }
]

Example: change the primary pool address for one port:

jq 'map(if .id == "6YMpg.06" then .pool_address = "hk.ironfish.example.com:1145" else . end)' port-config.json > port-config.json.tmp
mv port-config.json.tmp port-config.json
rustminer restart

wallet-config.json

wallet-config.json stores wallet settings as a JSON array. Each object represents one wallet or device forwarding and ratio setting.

Wallet ID And Port Relation

When you manually add a wallet configuration, id uses the same random format:

5 random letters or digits + . + 2 random digits

For example: AFq3H.35. Do not reuse the same id inside one wallet-config.json file.

server_id is not another random value. It must match the id of one port object in port-config.json. For example, if the port is:

{
    "id": "6YMpg.06",
    "port": 47777
}

Then a wallet bound to this port should use:

{
    "id": "AFq3H.35",
    "server_id": "6YMpg.06"
}

Common fields:

Field Description
id Wallet configuration ID. Keep the existing value when editing an existing record; when adding one manually, use a format like AFq3H.35 and keep it unique.
server_id Related port ID. It must match the id of a port object in port-config.json; do not use the port number, and do not generate it randomly.
addr Wallet name or wallet identifier.
device Device name.
pool_address Pool address for this wallet.
pool_protocol Wallet pool connection protocol: 0 TCP, 1 TLS.
ratio Wallet fee ratio as a decimal. For example, 0.03 means 3%.

Example:

[
    {
        "id": "AFq3H.35",
        "server_id": "6YMpg.06",
        "addr": "wallet-main",
        "device": "MY20602",
        "pool_address": "kas.example.com:443",
        "pool_protocol": 0,
        "ratio": 0.03
    }
]

Example: change one wallet ratio to 5%:

jq 'map(if .id == "AFq3H.35" then .ratio = 0.05 else . end)' wallet-config.json > wallet-config.json.tmp
mv wallet-config.json.tmp wallet-config.json
rustminer restart

Apply And Roll Back

Restart after saving changes:

rustminer restart

If ports cannot connect or the service behaves abnormally after a change, restore from backup:

cp rust-config.bak.YYYYMMDDHHMMSS rust-config
cp port-config.json.bak.YYYYMMDDHHMMSS port-config.json
cp wallet-config.json.bak.YYYYMMDDHHMMSS wallet-config.json
rustminer restart

Replace YYYYMMDDHHMMSS with the timestamp from your actual backup filename.