Solo Mining Private Pool Guide

In review of the the How-To-Mine page on Grin documents and these forums, I didn’t see any guide on how to mine to a personal local pool. This is my quick guide on how to solo mine with a G1 ASIC and stop paying pool fees. You can collect the entire coinbase block reward using your own computer when you make your own private local solo mining pool. This is performed using the built-in Stratum Server available on the Grin node.

Things you will need:
ASIC Grin Miner(s)
Computer which can run Grin node 24/7/365 (recommend set it a static ip)
Your LAN setup
Basic computer skills (e.g. use of OS and file system)
Basic networking skills
Basic understanding of blockchain/Grin
Grin node (official native application) Grin
Grin-wallet (official native application) Grin

On your dedicated computer which you plan to run the Grin node 24/7/365, launch the Grin node and allow blockchain sync to complete (SSD recommended); the node will say “Current Status: Running” when blockchain is completely synchronized.

While waiting for the Grin node to synchronize, log into your router and setup port forwarding for incoming connections via port 3414 to forward to your dedicated Grin node computer LAN IP address at port 3414. This will allow incoming connections to your Grin node from other Grin nodes on the internet.

For the next step, on the Grin node computer, you will temporarily quit the Grin node program (press “q” to close gracefully) to modify its configuration file. Use your file explorer to access the location of the Grin node files (/.grin/main/) and edit/open the file: “grin-server.toml” with a notepad-type program.

Change/edit the STRATUM MINING SERVER CONFIGURATION lines as seen below:

enable_stratum_server = false
to
enable_stratum_server = true

and also…

stratum_server_addr = “127.0.0.1:3416”
to
stratum_server_addr = “YourGrinNodeLANipAddress:3416”

Save the configuration changes. You will be pointing your G1 ASIC miner(s) to this stratum address and port (i.e. your dedicated Grin node computer).

Start the Grin node again and allow it to finish synchronization. You can check to made sure your changes were saved by viewing the “Mining” tab in the node: “Mining server enabled: true” & “Mining server running: true”

After the node is synchronized, leave the node program open and running.

Next you will run the Grin-wallet program with the “init” command. This will create the default wallet for your own personal mining pool wallet to receive the entire 60 grin coinbase block reward for blocks you mine. It is important to document and save your wallet seed in a safe place, and also choose a memorable and safe password for your wallet.

Once the default wallet has been created, run the Grin-wallet program with the “listen” command. This will tell your Grin-wallet to listen and receive any coinbase block rewards from your Grin node Stratum Server which was enabled previously (default listen address/port: 127.0.0.1:3415). Leave this program open and running.

Next you will access the configuration of your ASIC miners and change your pool 1 configuration as follows:

Select Coin: GRIN
Pool 1: stratum+tcp://YourGrinNodeLANipAddress:3416
Pool1 worker: YourChoice (can be anything – number/etc)
Pool1 password: x (not needed)

You can setup whatever backup pools you desire for Pool 2 and Pool 3. Save and Apply. Going back to the Grin node, you can check to see if your ASIC miner is connected to your Grin node Stratum Server in the mining tab: look for “Active workers: x”

When a block is found, it will show on this tab as well, and on your node & wallet computer you would run another instance of the Grin-wallet application with the “info” command to see it incoming. Coinbase rewards have a longer confirmation time than normal transactions.

After the coinbase becomes spendable, you can send the Grin to another wallet, if desired.

If you have more than 1 miner, repeat the ASIC configuration steps again on each miner.

¡NB! If your Grin node/Grin-wallet computer is disconnected/powered off, your miners should fall back to the Pool2/3 configuration. If you do NOT have the Grin-wallet listening, your wallet will NOT get any reward for blocks mined. Your Grin node must be synchronized in order to begin mining.

Good luck! Have fun!

11 Likes

Did you do some testing with min_diff and max_time_attempt ?

No, success can be accomplished using the steps above, but I am open to improvements.

1 Like

I just signed up to say thanks! I have been trying to get my solo node working with my G1 mini. I thought I had it, but it wouldn’t connect. Your step to change ip address fixed it.

Does the difficulty need to be adjusted for the G1 mini…1 is default.