====================================================================
 FERMINUX NETWORK - GPU MINING ON WINDOWS
====================================================================

Short version
-------------
1. Get a wallet address at https://wallet.ferminux.net (starts with 0x).
2. Download lolMiner (or GMiner / SRBMiner-MULTI / TeamRedMiner) from its
   official page and unzip it.
3. Run ONE of the commands in "The exact commands" below, with your own
   address in place of 0xYourAddress.

Or: copy the miner's files into this folder and double-click
GPU-MINING.bat - it finds the miner, asks for your address once, and
starts it with the right flags.


Why a GPU
---------
Ethash was designed for graphics cards. A modern GPU does roughly a
hundred times the work of a desktop processor for the same electricity.
If you own a gaming PC, this is the only mining that makes sense.

Ferminux is ordinary Ethash - same algorithm, same DAG, same epochs as
Ethereum used before it moved to proof of stake. Nothing about your miner
needs patching. The network is currently at epoch 0, so the DAG is about
1.1 GB of video memory. It grows about 8 MB every 2.5 days.

That growth matters when you choose a card:

    2 GB of video memory  ->  stops working in roughly a year
    4 GB                  ->  roughly 2.5 years
    6 GB and above        ->  years of headroom


Pool or solo
------------
POOL (recommended, and what GPU-MINING.bat does)
    You point your miner at pool.ferminux.net:3333 and it pays you a share
    of what it finds, in proportion to the work you did. Income is small
    and steady. You do not run a node. You do not register - your address
    IS your account.

SOLO
    You run your own ferminux-geth node plus a small proxy, and you keep
    100% of any block you find - but you find them at random. If your
    hardware is not a meaningful slice of the whole network's hashrate,
    you can mine for weeks and get nothing. Setup is at the bottom of this
    file.

Rule of thumb: at ~7 second blocks the network produces about 12,300
blocks a day. Your expected blocks per day is roughly

    12,300 x (your hashrate / total network hashrate)

If that is well under 1, use the pool.


The exact commands
------------------
Replace 0xYourAddress with your own address. The ".win1" on the end is
just a worker name so you can tell your rigs apart in the pool log; the
pool splits the string at the first dot.

lolMiner
    lolMiner.exe --algo ETHASH --ethstratum ETHPROXY ^
      --pool stratum+tcp://pool.ferminux.net:3333 ^
      --user 0xYourAddress.win1

GMiner
    miner.exe --algo ethash --proto proxy ^
      --server pool.ferminux.net --port 3333 ^
      --user 0xYourAddress.win1

SRBMiner-MULTI
    SRBMiner-MULTI.exe --algorithm ethash --esm 0 ^
      --pool pool.ferminux.net:3333 --wallet 0xYourAddress

TeamRedMiner
    teamredminer.exe -a ethash ^
      -o stratum+tcp://pool.ferminux.net:3333 ^
      -u 0xYourAddress -p x

(The ^ at the end of a line is how Windows Command Prompt continues a
command onto the next line. You can also type it all on one line.)


Those protocol flags are not optional
-------------------------------------
pool.ferminux.net:3333 speaks the "ETHPROXY" dialect - plain JSON-RPC
over TCP (eth_submitLogin, eth_getWork, eth_submitWork), not the newer
EthereumStratum protocol. If you leave the dialect flags off, most miners
default to something else, the handshake never completes, and you sit
there with 0 accepted shares.

    lolMiner        --ethstratum ETHPROXY
    GMiner          --proto proxy
    SRBMiner-MULTI  --esm 0
    TeamRedMiner    no extra flag in the form shown above

Those four command lines are the ones recorded in /proxy/README.md in the
Ferminux repository, which is the source of truth for this proxy. If a
miner version of yours wants different spelling, trust its own --help over
this file.


Where to download the miners
----------------------------
Only ever from the official release pages. Mining software is one of the
most impersonated categories of download on the internet, and a fake
build will quietly replace your address with the attacker's.

    lolMiner        https://github.com/Lolliedieb/lolMiner-releases
    GMiner          https://github.com/develsoftware/GMinerRelease
    SRBMiner-MULTI  https://github.com/doktor83/SRBMiner-Multi
    TeamRedMiner    https://github.com/todxx/teamredminer

Your antivirus will very likely flag whichever one you pick. That is not
a bug in this guide: mining software is bundled by real malware, so
scanners flag the whole category. Download only from the links above,
check the file's SHA-256 against the one the developer publishes, and
make your own decision. Do not turn your antivirus off.


Checking that it works
----------------------
Within a minute of starting you should see:

    * a line saying the miner connected / logged in
    * a DAG being generated (once), then a hashrate in MH/s
    * "accepted" or "share accepted" lines appearing over time

Paste your address into https://explorer.ferminux.net to watch the
balance. With a single card on a young network, expect the first payout
to take a while - that is variance, not a fault.


Solo mining against your own node
---------------------------------
This is the advanced path. You need three things running on one PC:

  1. ferminux-geth in remote-work mode. From this folder, in a Command
     Prompt:

        ferminux-geth.exe --datadir "%LOCALAPPDATA%\Ferminux" ^
          --syncmode full --mine --miner.threads -1 ^
          --miner.etherbase 0xYourAddress ^
          --http --http.addr 127.0.0.1 --http.api eth,net,web3,miner

     --miner.threads -1 is the important part: the node prepares work for
     external miners but runs no CPU mining threads of its own. --http
     must stay on 127.0.0.1 - never expose that port to the internet.

  2. fmx-stratum-proxy, listening on a local port and pointed at the node:

        fmx-stratum-proxy.exe -node http://127.0.0.1:8545 -listen :8008

     No Windows build of the proxy ships in this package. Build it from
     the /proxy folder of the Ferminux repository - it is a single Go file
     tree with no dependencies:

        set GOOS=windows
        set GOARCH=amd64
        go build -o fmx-stratum-proxy.exe .

  3. Your GPU miner, pointed at the proxy instead of the pool - the same
     commands as above with 127.0.0.1:8008 in place of
     pool.ferminux.net:3333, for example:

        lolMiner.exe --algo ETHASH --ethstratum ETHPROXY ^
          --pool stratum+tcp://127.0.0.1:8008 --user 0xYourAddress.win1

Every share the proxy forwards is a whole block solution judged by your
node - there is no share splitting, because there is no pool in this
path. All of it, or none of it.


Honest expectations
-------------------
Electricity is the real cost. A card pulling 150 W for a month uses about
110 kWh. At 0.30 EUR/kWh that is roughly 33 EUR of electricity per month,
per card, every month, whatever FMX turns out to be worth. Work out that
number for your own tariff before you buy hardware for this.

FMX has no guaranteed price. Block rewards are 6 FMX today and drop to
1 FMX at block 20,000 (the "Emission" fork), then halve every 4,500,000
blocks after that. Mine because you want to help secure a young network
and you find it interesting. Anything else is a bonus.
