Shaicoin is a Bitcoin fork that uses the ShaiHive mining algorithm to help restore Satoshi’s vision of decentralized mining. The original cpu mining code was brought back from Bitcoin Core v0.12.0 and modified into v0.27.0
What is ShaiHive?
ShaiHive is a Hamiltonian graph search used to obtain a certificate, which is stored within the block header. Coupling this with SHA-256 embodies the spirit of a nonce selection “speedbump” for mining.
A visual comparison between Bitcoin mining and Shaicoin mining can be seen below.
I will be providing screenshots/tutorial on how to mine on MacOS below. However, Ubuntu and Windows are also supported. Just once compiled make sure to properly use the “moneyplz” flag.
Currently one has to download the code to compile and run Shaicoin.
Go to Shaicoins Github and download the code by either git cloning it or directly downloading the zip file. Once you have the code locally you will need to open the terminal application to begin to compile the code.
The build process should be no different than bitcoins. However, to invoke mining there is a new flag.
How to mine on MacOS
Follow the steps found here to install xcode and homebrew.
Install the dependencies. Make sure to include the qt ones. You can copy the line below once homebrew is installed.
brew install automake libtool boost pkg-config libevent qt@5 qrencode zeromq
now run the following commands
./autogen.sh
./configure --without-bdb --with-gui=yes
make -j$(nproc)
If all went well you should have a “shaicoin-qt” program located within the folder “Shaicoin/src/qt”
Take this shaicoin-qt program and copy it to a folder where you would like to create and run shaicoin.
For instance, I will create a folder “Shaicoin_Node” and put it on my desktop. From there I will create a folder called “data” within this folder and drag and drop the shaicoin-qt file into the “Shaicoin_Node” folder.
I will go ahead and open terminal at the folder “Shaicoin_Node” and I run the following command. You will need to replace {username_of_cpu} with your cpu name. If you are unsure try running a “pwd” command.
./shaicoin-qt -datadir=/Users/{username_of_cpu}/Desktop/Shaicoin_Node/data
It should open up the shaicoin core application and begin to sync. Give it some time this may take a couple of minutes currently to fully sync. At block height 10k it took about 10 minutes to have my m1 macbook fully come up to sync while connected to a vpn.
Once it is done syncing you should see the following create wallet screen.
Create a wallet and give it a name.
Then click the receive tab and select the “Create new receiving address” button.
For me it generated the address “sh1qtfx5ftdzjf0rjgnvut32qs3t629aczhmkvvktw”
(Dont send anything to this address as I deleted the keys after this tutorial)
now go back and close the program by control-c on the terminal window or just by closing the GUI.
In order to start mining, restart the GUI with the command “moneyplz” see below for an example of how to use it.
./shaicoin-qt -datadir=/Users/{username_of_cpu}/Desktop/Shaicoin_Node/data -moneyplz=sh1qtfx5ftdzjf0rjgnvut32qs3t629aczhmkvvktw
Happy mining :)
. * . . .
. _ . . . .
. . _ / | . . * _ . .
| \_| | | | __
_ | | _ | |/ |
| \ | ____ | | / | \
| | \ +/_\/_\+ | | / | \
____/____\--...\___ \_||_/ ___...|__\-..|____\____/__
. . |_|__|_| . .
. . . _/ /__\ \_ . .
. . . . .
___
.-' \\".
/` ;--:
| ( (_)==
|_ ._ '.__.;
\_/`--_---_(
(`--(./-\.)
`| _\ |
| \ __ /
/| '.__/
.'` \ |_
'-__ / `-