Grin v1.0 Step by Step Miner Guide on Ubuntu [English version]

               Grin v1.0 Step by Step Miner Guide on Ubuntu
                       Good luck for all miners

                         Author: ChainMaster

Only for Grin v1.0 mainnet
Operate on Ubuntu 18.04
Command line knowledge required

A. Install required softwares and packages

  1. Open a terminal session
    Install the newest RUST v1.31.1

    curl -sSf | sh; source $HOME/.cargo/env
  2. Confirm version of RUST

    rustc —version    

    (If you already had old version RUST installed, issue “rustup update” for upgrade)

  3. Install git

    sudo apt update
    sudo apt install git

B. Prepare Grin Node step by step

  1. Install required packages for Grin Node

      sudo apt install build-essential cmake git libgit2-dev clang libncurses5-dev libncursesw5-dev zlib1g-dev pkg-config libssl-dev llvm
  2. Install Grin node.

     git clone
     cd grin
     cargo build --release

    (If you failed to build command for ‘croaring-sys …’, issue “sudo apt-get purge --auto-remove clang” then re-try)

  3. Add command grin to environment variables for current user permanently

     vi .profile

    Add the following line to the last line of .profile and save

     export PATH="$HOME/grin/target/release:$PATH"
  4. Add file grin-server.toml to folder grin

     source ~/.profile
     cd grin
     grin server config
  5. Revise file grin-server.toml to enable stratum server and save

     enable_stratum_server = true

C. Prepare Grin Miner step by step

  1. Open a new command line terminal session

  2. Install required packages

    sudo apt install make libncurses5-dev libncursesw5  zlib1g-dev linux-headers-$(uname -r)
  3. Install Grin miner

    git clone
    cd grin-miner
    git submodule update --init
    cargo build
  4. Add command grin-miner to environment variables for current user permanently

     vi .profile

    Add the following line to the last line of .profile and save

     export PATH="$HOME/grin-miner/target/debug:$PATH"
  5. Assign more processors for mining, 1 processor will get no new job.

    nthreads = 4 
  6. [Optional] To enable avx support(new CPU) or cuda support(Navidia GPU) you have to modify both grin-miner.toml and Cargo.toml files before start grin-miner, if you changed Cargo.toml, please rebuild grin. Please check steps on GitHub.

D. Restart Ubuntu to have environment variables take effect for all sessions


E. Start Grin node&wallet&miner services one by one

  1. Start a grin node under folder grin with a terminal session and keep session live

     cd grin

  1. [One time only]Initial a grin wallet and record the recovery phrase and password on paper.

    grin wallet init
  2. Listen to the wallet and keep it live

    grin wallet listen

  1. Start grin miner under grin-miner folder with a terminal and keep it live

    cd grin-miner

  1. Have a peek on your wallet balance

    grin wallet info

  1. Wait and see if you have grin coins mined

Error details:
PluginNotFoundError("/home/me/grin-miner/target/debug/plugins/cuckaroo_cuda_29.cuckooplugin - Custom { kind: Other, error: StringError("/home/me/grin-miner/target/debug/plugins/cuckaroo_cuda_29.cuckooplugin: cannot open shared object file: No such file or directory") }")

Any hints to resolve this error?

Can you post the results of ls /home/me/grin-miner/target/debug/plugins/?

curl -sSf | sh; source $HOME/.cargo/env

The above command line does not work with Ubuntu 14.04 via digitalocean…

Also tried on Ubuntu 18.04 still dont work…

what message do you get?

No such file or directory message


Well, the plugin looks to not be there. While I followed this guide, notably (because they are not in the guide), I changed:

cuckoo_miner = { path = "./cuckoo-miner", version = "0.5.1" }


cuckoo_miner = { path = "./cuckoo-miner", version = "0.5.1", features = ["build-cuda-plugins"]}

in Cargo.toml, while in grin-miner.toml I commented out:

#plugin_name = "cuckaroo_cpu_compat_29"
#nthreads = 1

and uncommented:

plugin_name = "cuckaroo_cuda_29"
device = 0
cpuload = 1
ntrims = 176
genablocks = 4096
genatpb = 128
genbtpb = 128
trimtpb = 512
tailtpb = 1024
recoverblocks = 1024
recovertpb = 1024

I am trying to test out mining with my 1080. Should my configuration be different?

Figured it out. just had to rebuild with cargo build after changing the Cargo.toml. Also, just as a side note, I unknowingly uncommented a bunch of tweaking parameters in grin-miner.toml originally, so I went back and commented them out again, leaving my changes to the grin-miner.toml file as:

plugin_name = "cuckaroo_cuda_29"
device = 0

How do you change the cargo.toml

Cargo.toml is just a text file which you can edit and save.

error: failed to unpack package ring v0.13.5

Caused by:
failed to unpack entry at ring-0.13.5/crypto/fipsmodule/ec/ecp_nistz256_table.inl

Caused by:
failed to unpack /home/ubuntu/.cargo/registry/src/

Hi guys,

I’m trying to setup mining on Mac os x. I have a working and synced node, working wallet file but upon running ./grin-miner I get this error.

thread ‘main’ panicked at ‘called Option::unwrap() on a None value’, libcore/

note: Run with RUST_BACKTRACE=1 for a backtrace.

Attempted all sorts of troubleshooting including Backtrace but to no avail.

Does anyone have any ideas how to fix this?

A question that probably a few of us Linux newbies have:

Are the steps in this guide valid for setting up the node/wallet on Debian 9 Stretch?

“can’t establish server connection to”

in my grin-server.toml file i have this:
#what port and address for the stratum server to listen on
stratum_server_addr = “”

should work but doesn’t. i have both GUI’S up and running. i see cuckaroo_cuda_29 plugins for both my gpu’s with OK status but no mining. it says “Waiting for server”.

in my Grin node it says “false” for both mining server enabled and mining server running.

The grin-server.toml should under grin golder

What can I do now? Uninstall rustc 1.30 and install an old version? How?

First of all, thanks for putting those together.

I found that many people encountered problems like setting up rust, compiling. Since the project release binary each time, maybe you want to change it to use binary directly. All you need to do is download the correct binary from github, uncompress and run it. The building from source code won’t make any difference but bring a lot difficulties. For those knows about building from source code, they will not need such a step.

Just my $0.02


1 Like

got it all working. thx.

1 Like

1.30 is an old version. If you had followed the instructions (see step A.1) you would have

$ rustc --version
rustc 1.31.1 (b6c32da9b 2018-12-18)

Make sure that you copy the grin-miner.toml from the grin-miner directory to grin-miner/target/release