If you're trying to auto-configure mining pools, or correct pool changes from a malicious insider, Trusted Pools can help.
As operations expand and more people become involved in the daily management of a cryptocurrency mine, mistakes can happen. Whether it be an operator configuring a customer's miners for the wrong pools by accident, or even worse, changing them to mine to their own personal wallets, getting notified as soon as these events happen is critical.
How Foreman Helps
With Trusted Pool Configurations, managers can set limitations on what stratums and worker names are acceptable. These are configured at the dashboard level, so they can be set globally from the top-level parent dashboard, at the site-level (example: Texas), or at the customer-level (example: Bill can mine to Foundry and Luxor, Ted can mine to AntPool and ViaBTC).
From each respective dashboard, Trusted Pool Configurations are created here. While they can be as simple as btc.foundryusapool.com:3333, regular expressions are supported. Rather than creating 3 different entries for Foundry, btc.foundryusapool.com:(3333|443|25) can be used, which will allow any of the valid Foundry stratums.
Any combination is supported, so you can provide just a stratum pattern, just a worker pattern, or both, and pools are only evaluated if at least one Trusted Pool Configuration exists. Then, they're all evaluated against every pool reported by the miner. If there are 3 pools, each will separately need to pass at least one of the Trusted Pool Configurations; otherwise, the miner will get marked as Invalid Pools Configured.
First, determine how these should be enforced. For this tutorial, we'll assume there exists a hosting company called Mine Magik and there are two physical sites, one in Baltimore, MD, and another in Canton, OH. Additionally, there are 3 customers: Client A, Client B, and Client C.
If you're curious how to construct a dashboard like this, see the guide here.
The clients want to be configured as follows:
First, we'll change to the Client A dashboard and create a pool configuration:
Repeat the process for clients B and C, selecting their respective dashboards before creating each:
Optionally, a trigger can also be created to notify, or conditionally change the pools immediately, if things are ever out of alignment: