Over the past few months, at Luxor, we have been working on profit switching algorithms and we want to start a thread to share our experience and learnings so far.
Mining is an endless pursuit to maximize the efficiency of a mining operation. Miners keep investing in newer hardware, trying out new firmware, over-clocking GPUs, etc. However, from our side (Pool Operator) there has not been much innovation on how to help miners maximize the value of their hashrate.
Profit switching is a way to maximize your rigs profitability by switching between coins to mine depending on whichever is the most profitable at a given point of time. For Equihash, we identified that there are over 60 potential profit switching events per day, meaning that every ~20 minutes the most profitable chain to mine changes.
Even though there is custom software available to start profit switching at the miner level it is not efficient and usually results in lower returns. This happens because each time you intend to switch stratums you have to reboot your rigs and go through the pool subscribe authorization process which results in downtime and hence lower payouts.
It is advantageous to do this switching at the pool level because the pool can switch jobs behind the scenes meaning that the connection between your ASIC and the pool is never broken.
Open source stratum code won’t allow your pool to switch chains without breaking the connection, so this is something that as a miner you have to be aware of. We spent a few development cycles to make sure there’s no downtime with our custom implementation.
Currently our profit switching algorithm mines 4 different Equihash coins (Zcash, Horizen, Komodo, and Pirate). If the profit switcher pays in altcoins, miners would have an accounting and wallet nightmare.
Our approach quotes hashrate directly in satoshis without going through altcoins, this means that the pool operator has to assume even more risk than the PPS luck. However, we believe this is a crucial feature for miners, otherwise, they would not be able to calculate their returns accurately.
How much hashrate can we push to small chains without skyrocketing difficulty and hence turning our switching event unprofitable? This requires a lot of experimentation and trusted partners that allowed us to experiment with their hashrate for a few months.
When do you Switch? Is it worth to switch to lower liquidity and low hashrate coin for a 1% uplift?
For example, F2 switches from ZEC to ZEN once ZEN is 10% more profitable and switches back once ZEN profitability decreases to just 3% above than ZEC. They also credit miners in altcoins.
Since we don’t want other pools to front-run our switches we do not publicly disclose the exact methodology of our switching algorithm but we can confidently state that our implementation is better. Not only we switch between 4 chains but also our algorithm is way more nimble as we are switching dozens of times per day between chains.
Our current formula is based on real-time profitability. However, there is a large opportunity to increase profitability by implementing some algorithms that make predictions on which coin will be the most profitable to mine.
More on this once we start working with more advanced models.