IronFish to FishHash auto‐switch - rigelminer/rigel GitHub Wiki

This guide lists the necessary steps to configure a seamless transition from ironfish mining algorithm to fishhash following the IronFish hard fork https://fips.ironfish.network/fips/fip-10-hardfork-1.

Step 1. Check prerequisites

Make sure:

  • Miner version is 1.15.1 or newer
  • You are mining to one of the pools that support the auto-switch. At the time of writing this guide those are:
    • Herominers
    • Kryptex
  • The algorithm you are mining is either ironfish or ironfish+zil. Other dual and triple mining modes are not supported.
  • Built-in watchdog is enabled (it is always enabled unless the miner is run with --no-watchdog)

Step 2. Enable the auto-switch

Modify your existing config by passing an extra --enable-fork parameter to explicitly opt in for this feature.

Step 3. Set up overclock

:warning: Warning: If you skip this step, the miner will be mining fishhash with GPU stock settings potentially drawing a lot of power which may overload your PSUs.

If you overclock your GPUs by using miner parameters (as opposed to MSI Afterburner or your mining OS overclocking tool), you need to specify them for fishhash too so that the miner would apply them after switching to the new algo. You can do so by prefixing the relevant entries with [fork], for example:

IRON only

Old config:

--lock-cclock 1470 --lock-mclock 810 --cclock 100

New config:

--lock-cclock 1470 --lock-mclock 810 --cclock 100                  // ironfish OC (pre-fork)
--lock-cclock [fork]1300 --lock-mclock [fork]X --mclock [fork]700  // fishhash OC (post-fork)

IRON+ZIL

Old config:

--lock-cclock [1]1470 --lock-mclock [1]810 --cclock [1]100
--lock-cclock [2]1200 --lock-mclock [2]X --mclock [2]1000

New config:

--lock-cclock [1]1470 --lock-mclock [1]810 --cclock [1]100                  // ironfish OC (pre-fork)
--lock-cclock [fork][1]1300 --lock-mclock [fork][1]X --mclock [fork][1]700  // fishhash OC (post-fork)
--lock-cclock [2]1200 --lock-mclock [2]X --mclock [2]1000                   // zil OC (both pre- and post-fork)

See full examples in iron-fork and iron-zil-fork script files in the miner archive.

:bulb: Reminder: if you're running Linux, don't forget to halve your memory offsets for Rigel (set the same values as if you were running Windows).

:bulb: Tip: you can simulate post-fork miner behaviour by using --activate-fork parameter. This is a good way to verify that the fishhash OC settings are set correctly. You may want to use the testnet endpoint of your pool for this particular test.

FAQ

What happens at the time of the fork?

When the network reaches block 503338, the pool will send a signal to the mining client telling it to switch the algorithm. The watchdog will then restart the miner with a new, post-fork, config, and the miner will reconnect to the same pool using a new protocol and start mining fishhash.

What do I do after the fork?

After IronFish has switched over to fishhash, it is time to change your Rigel config back to normal, namely remove --enable-fork, all [fork] prefixes, old ironfish settings, and change the algorithm to -a fishhash or -a fishhash+zil.

What should I do as a pool operator to support the auto-switch?

You need to send the following notification message to the mining clients connected via stratum v2 in order for them to restart and reconnect using stratum v3:

{"id":<your request id>,"method":"mining.fork","body":{}}

:warning: This would only work if your pool's post-fork fishhash stratum URL is the same as pre-fork ironfish.