Skip to content

Instantly share code, notes, and snippets.

@aaronhenshaw
Last active April 28, 2019 22:02
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save aaronhenshaw/6f88c6f882b295238c8953043ac0f9e0 to your computer and use it in GitHub Desktop.
Save aaronhenshaw/6f88c6f882b295238c8953043ac0f9e0 to your computer and use it in GitHub Desktop.
#!/bin/sh
#wget https://gist.githubusercontent.com/aaronhenshaw/6f88c6f882b295238c8953043ac0f9e0/raw/7523d7bdb803041c0bcf7e00d936a6c260bbcfb7/install-bminer.sh; chmod +x install-bminer.sh; sudo ./install-bminer.sh
#sudo ./install-bminer.sh aaron%2Btest%40website.co workerName
: ${1?Need a value for miner address}
: ${2?Need a value for worker name}
MINERUSER=$1
MINERWORKER=$2
sudo systemctl stop grin-monitor
sudo systemctl stop grin-miner
sudo systemctl disable grin-monitor
sudo systemctl disable grin-miner
cd ~/
mkdir bminer
cd bminer
wget https://www.bminercontent.com/releases/bminer-v15.5.1-4583b73-amd64.tar.xz
tar -xvf bminer-v15.5.1-4583b73-amd64.tar.xz
rm bminer-v15.5.1-4583b73-amd64.tar.xz
mv bminer-v15.5.1-4583b73 bminer
cd bminer
FILE=run-grin-miner-31.sh
SERVICE_FILE=bminer.service
MONITOR_SERVICE_FILE=bmonitor.service
MONITOR_SCRIPT_FILE=bmonitor.sh
cat <<EOM >$FILE
#!/bin/sh
USERNAME=${MINERUSER}%2F${MINERWORKER}
POOL=us-east-stratum.grinmint.com:3416
SCHEME=cuckatoo31
./bminer -uri \$SCHEME://\$USERNAME@\$POOL -api 127.0.0.1:1880
EOM
cat <<EOM >$SERVICE_FILE
[Unit]
Description = Grin Miner (bminer) Service
After = syslog.target network.target
[Service]
User=grinminer
Group=grinminer
Type=simple
KillMode=process
Restart=always
RestartSec=20
ExecStart=/opt/bminer/run-grin-miner-31.sh
WorkingDirectory=/opt/bminer
[Install]
WantedBy=multi-user.target
EOM
cat <<EOM >$MONITOR_SERVICE_FILE
[Unit]
Description = Grin Monitor (bminer) Service
After = bminer.service
[Service]
User=grinminer
Group=grinminer
Type=simple
KillMode=mixed
Restart=always
RestartSec=20
ExecStart=/opt/bminer/bmonitor.sh
WorkingDirectory=/opt/bminer
[Install]
WantedBy=multi-user.target
EOM
cat <<EOM >$MONITOR_SCRIPT_FILE
#!/bin/bash
COUNTER=0
journalctl -u bminer.service -f -n 0 | \
while read line ; do
echo "\$line" | grep "] Accepted share"
if [ \$? = 0 ]
then
let COUNTER=0
else
let COUNTER=COUNTER+1
fi
echo "\$line" | grep "Irrecoverable errors"
if [ \$? = 0 ]
then
echo "bminer encountered a critical error, restarting"
sudo reboot
fi
if (( COUNTER > 200 ))
then
echo "Rebooting... haven't mined in a little while"
sudo reboot
fi
done
EOM
sudo mkdir /opt/bminer
sudo cp ~/bminer/bminer/* /opt/bminer/ -R
chmod +x /opt/bminer/run-grin-miner-31.sh
chmod +x /opt/bminer/bmonitor.sh
sudo cp ~/bminer/bminer/bminer.service /etc/systemd/system/bminer.service
sudo cp ~/bminer/bminer/bmonitor.service /etc/systemd/system/bmonitor.service
sudo chown grinminer:grinminer /opt/bminer
sudo chown grinminer:grinminer /opt/bminer/* -R
sudo systemctl daemon-reload
sudo systemctl enable bminer
sudo rm grin-miner.log
sudo systemctl start bminer
sudo systemctl start bmonitor
journalctl -u bminer -f
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment