Ethereum Mining

The crypto server has been running for 6 months and things have gone almost to plan. The server specs were basically designed for Filecoin but there were many issues with installing it (see here). We are at the stage where the Filecoin miner needs 1TB to run. Since the 2TB SSD has been partitioned, another SSD is required and burning more time/energy just wasn’t worth it. Solana was another issue – the internet/CPU/storage requirements are huge. The chances of winning a block is 0, so it’s not worth the pain.

So there is plenty of CPU/GPU/storage/memory to burn and we need to get a decent return on that expensive hardware, including an RTX 3070 GPU which was around $1000AUD and just sitting there idle.

One prospect is BTC/ETH mining due to the high prices (still). But why do it? ETH 2.0 is just around the corner, EIP 1559 will reduce returns and Norton 360 comes with a built-in miner. So we’ve got around 6-12 months to do some mining before it becomes pointless. Let’s get right to it. This is what we can expect in returns:

A daily return in USD

If we look at some local stats from nsfminer:

nsfminer output

It tells us around 200W is used, so doing some basic math and working on $0.20/kwh this works out to $1AUD/day. The yearly profit works out to ~$1000, which just covers the cost of the card. If you are going to make your fortune with Eth mining right now – forget it. Using an expensive RTX 3090 (or multiples of them) isn’t going to make you serious coin (even if you disable the Nvidia crypto hacks). The only way is if the rest of the world stops mining or the price drastically increases. Or switch coins which many amateur miners do.

The all matches up pretty closely with what 2cryptocalc.com shows for an RTX 3070 which was 2nd on the list of profitable coins for this card (only beaten by Zcoin):

2cryptocalc output for the RTX 3070

So the RTX 3070 is a pretty good choice for Eth mining right now, but even older cards still do pretty well and are probably better value for money (including the new RTX 3060).

To put it all together, install nsfminer instead of ethminer which doesn’t work for the latest cards. Fortunately the nsfminer binary worked without having to compile it.

Do some sanity checks and run it up as a service (nsfminer.service):

[Unit]
Description=nsfminer
After=network.target
Wants=network.target

[Service]
Type=simple
ExecStart=/usr/bin/nsfminer -P stratum1+tcp://0x<your wallet>@asia1.ethermine.org:4444 --HWMON 2 --api-port -3333
Restart=always
RestartSec=5
KillMode=process

[Install]
WantedBy=default.target

Select the most appropriate mining pool (I used the Asia instance in https://ethermine.org).

Run http://localhost:3333/ and http://127.0.0.1:3333/metrics to make sure the Prometheus interface is running. You can check on Ethermine to see that everything is running correctly as well. You can now receive more regular payments using Polygon/Matic.

One super-useful test tool is nvtop. Make sure that there is no throttling of the card and see 100% utilization. Good to see that over half of the 8GB RAM is being used:

nvtop in action

Next was the Prometheus interface to Ethermine. Fortunately one already exists and can be downloaded here. You can download the source code, go to the dev directory and modify docker-compose.xml to the following:

version: '3.7'

services:
  ethermine:
    image: hon95/prometheus-ethermine-exporter:latest
    build:
      context: ..
      args:
        - APP_VERSION=0.0.0-SNAPSHOT
    command:
      - '--debug'
      - '--endpoint=:3334'
#    user: 1000:1000
#    environment:
#      - TZ=Europe/Oslo
    ports:
      - 127.0.0.1:3334:3334/tcp
    restart: unless-stopped

Type “docker-compose up” to make it run (after downloading docker/docker-compose).

In a browser use the URL:

http://127.0.0.1:3334/miner?pool=ethermine&target=0x<your wallet address>

You should hopefully see the miner stats. Next, add the following to prometheus.yml:

  - job_name: 'nsfminer'
    static_configs:
      - targets: ['localhost:3333']
  - job_name: ethermine-ethermine-miner
    scrape_interval: 5m
    metrics_path: /miner
    params:
      pool: [ethermine]
      target: [0x<your wallet address>]
    static_configs:
      - targets: ['localhost:3334']

Restart prometheus and you should be able to query some of the above stats (e.g. “miner_device_hashrate”).

Next the fun bit – to graph everything which at present looks something like:

Grafana Output

Some of the prices have been converted to AUD, you can change as you please. Import the following json into Grafana and you’ll see something similar to the above.

Enjoy!

Published by Crypto Cam Tech

Professional developer for 30 years + with the passion for helping others in their journey.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

%d bloggers like this: