Author

Topic: Stratum Mining Proxy For Raspberry Pi (Read 20700 times)

member
Activity: 106
Merit: 10
March 21, 2014, 10:44:43 PM
#30
How to setup for Solo?

This doesn't seem to be covered and i was interested in looking at this option too, i have had a bit of a play around and it seems solo mining is theoretically possible with this.

This would seem to work in theory and I have tried it with a windows based pc and it should transfer over to the Pi. I won't go into technical detail because we all know how to use Google Smiley

1. Install and setup bitcoin wallet on raspberry pi (you will need a larger than 16gb sd card due to the size of the blockchain, or use a usb drive and point the bitcoin-qt data directory there) - Plenty of tutorials on how to install it, Just install bitcoin-qt
2. Set Bitcoin-QT into server mode, again Google is your friend. You will need to create a bitcoin.conf file where you will be able to specify a username and password for your local worker (again Google)
3. Follow most of the above guide for installing the stratum-proxy, and then follow the extra example settings at the end and instead of setting the proxy to Slush' Pool set it to 127.0.0.1:8332 or whatever port you set the config file up for in Step 2.
4. Run your stratum proxy
5. Point your miners to your Raspberry Pi IP Address and port for the proxy as you would normally add a pool, use the username and password you created in Step 2.
6. Enjoy

This should mine directly into the wallet you setup on the Pi, as i'm sure people reading this know success of solo mining depends on you actually finding a block, no block = no payment

Good Luck

I presume this would work with other coins as well (i.e. Solo mining PPC or TRC, also scrypt with older versions of CGMiner?)

Thanks for the quick guide!
newbie
Activity: 31
Merit: 0
March 20, 2014, 10:59:37 PM
#29
How to setup for Solo?

This doesn't seem to be covered and i was interested in looking at this option too, i have had a bit of a play around and it seems solo mining is theoretically possible with this.

This would seem to work in theory and I have tried it with a windows based pc and it should transfer over to the Pi. I won't go into technical detail because we all know how to use Google Smiley

1. Install and setup bitcoin wallet on raspberry pi (you will need a larger than 16gb sd card due to the size of the blockchain, or use a usb drive and point the bitcoin-qt data directory there) - Plenty of tutorials on how to install it, Just install bitcoin-qt
2. Set Bitcoin-QT into server mode, again Google is your friend. You will need to create a bitcoin.conf file where you will be able to specify a username and password for your local worker (again Google)
3. Follow most of the above guide for installing the stratum-proxy, and then follow the extra example settings at the end and instead of setting the proxy to Slush' Pool set it to 127.0.0.1:8332 or whatever port you set the config file up for in Step 2.
4. Run your stratum proxy
5. Point your miners to your Raspberry Pi IP Address and port for the proxy as you would normally add a pool, use the username and password you created in Step 2.
6. Enjoy

This should mine directly into the wallet you setup on the Pi, as i'm sure people reading this know success of solo mining depends on you actually finding a block, no block = no payment

Good Luck
hero member
Activity: 857
Merit: 1000
Anger is a gift.
March 04, 2014, 11:17:39 PM
#28
Ha! Thank you.

No problem
full member
Activity: 205
Merit: 100
March 04, 2014, 11:03:00 PM
#27
Good advice, daddyfatsax (that's an awesome handle, too Smiley ).

Thanks.
hero member
Activity: 857
Merit: 1000
Anger is a gift.
March 04, 2014, 10:41:51 PM
#26
Most everything I have read says the RPi does not have the processing power to handle the proxy. I tried it with my cubes and no luck. Only thing that worked for me was slush's proxy. Ran the bfgminer proxy as well, and my best speeds at the pool were using slush's. Not sure of your setup, but I would try and re-purpose an old laptop to run it.
full member
Activity: 205
Merit: 100
March 04, 2014, 10:30:34 PM
#25
I tried overclocking the RPi to "Medium," which is 900 MHz on the B model. It helped, but load was still at 1.24 and total hashing power was still well off the 38GH/s I get when overclocking the Cubes and running them through my Mac desktop.

I didn't up it to "High," as that was only another 50MHz in speed on the RPi, and it didn't seem worth the risk.

I still feel like I'm missing something, though.
hero member
Activity: 857
Merit: 1000
Anger is a gift.
March 04, 2014, 10:03:10 PM
#24
Hey all,
So I compiled stratum-mining-proxy on my RaspberryPi just fine. Ran into a couple of issues with bad python but was able to patch it with a couple pull requests.

Problem is, I pointed two ASIC Block Erupter Cubes to the Pi proxy and CPU pegged at 99%. Neither cube was able to get higher than 28GHs. When I run the proxy on my MacBookPro, all three of my cubes reach 32GHs easy.

It doesn't look like the Pi will be able to handle all that computation. Sad Need to start looking for alternative to host the proxy.

Any insight on this from anyone? I found the same thing. It can handle one Cube just fine, but two Cubes got 70% of the hash rate when pointed at my RPi compared to being pointed at my Mac. CPU load appears to be the bottleneck.

With RPis being so popular, there's got to be something I'm simply missing.

Same experience here. 6 cubes pointed at a stratum proxy running on old Dell laptop was fine. More than 2 pointed at the Pi and things got weird. Never got around to trying the stratum proxy with bfgminer on the Pi. May be worth a shot. 
full member
Activity: 205
Merit: 100
March 04, 2014, 09:59:29 PM
#23
Hey all,
So I compiled stratum-mining-proxy on my RaspberryPi just fine. Ran into a couple of issues with bad python but was able to patch it with a couple pull requests.

Problem is, I pointed two ASIC Block Erupter Cubes to the Pi proxy and CPU pegged at 99%. Neither cube was able to get higher than 28GHs. When I run the proxy on my MacBookPro, all three of my cubes reach 32GHs easy.

It doesn't look like the Pi will be able to handle all that computation. Sad Need to start looking for alternative to host the proxy.

Any insight on this from anyone? I found the same thing. It can handle one Cube just fine, but two Cubes got 70% of the hash rate when pointed at my RPi compared to being pointed at my Mac. CPU load appears to be the bottleneck.

With RPis being so popular, there's got to be something I'm simply missing.
newbie
Activity: 15
Merit: 0
February 28, 2014, 02:12:46 PM
#22
Which PuTTY do I download?

http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html

Fabulous guide...Thanks!!!

Ken

Edit:
I get it now.
PuTTY runs on a Windows/Linux machine.
I thought it ran on the Rpi.
Dohhhhhh...
jr. member
Activity: 34
Merit: 1
February 23, 2014, 11:47:31 AM
#21
You could just re-clone it into a different directory. I personally find git to be a major pain in the ass and the best solution (like Windows) is just to erase and start over with a fresh copy.
newbie
Activity: 46
Merit: 0
February 22, 2014, 10:41:57 PM
#20
OK, I'm getting a deprecation message, asking me to update the stratum proxy. I tried a git pull, but it refused, telling me I'd lose local changes. How do I get around that?
jr. member
Activity: 34
Merit: 1
January 26, 2014, 01:39:56 PM
#19
Hey all,
So I compiled stratum-mining-proxy on my RaspberryPi just fine. Ran into a couple of issues with bad python but was able to patch it with a couple pull requests.

Problem is, I pointed two ASIC Block Erupter Cubes to the Pi proxy and CPU pegged at 99%. Neither cube was able to get higher than 28GHs. When I run the proxy on my MacBookPro, all three of my cubes reach 32GHs easy.

It doesn't look like the Pi will be able to handle all that computation. Sad Need to start looking for alternative to host the proxy.
sr. member
Activity: 336
Merit: 250
January 21, 2014, 05:33:36 AM
#18
Do you know what the command node do?

I am not familiar with a bash command node, but I have heard about this node.. ...http://nodejs.org/

hero member
Activity: 1257
Merit: 811
January 21, 2014, 04:11:25 AM
#17
Do you know what the command node do?
newbie
Activity: 55
Merit: 0
January 20, 2014, 12:47:01 PM
#16
That was one of the best tutorials for a pi I've ever followed. Everything went to plan.

I'll tip you some Dogecoin if you've got an address.

Thanks.
hero member
Activity: 1257
Merit: 811
January 18, 2014, 10:09:15 AM
#15
That’s all folks. If you have any problems let me know. I will do my best to help.

Where are you? Sad
hero member
Activity: 1257
Merit: 811
January 16, 2014, 10:50:04 AM
#14
I solved all my problems using absolute paths, even in miningserver.sh file.
Anyway i had to remove node command, otherwise stratum proxy doesn't start.

What the node command do?
Besides it was not included with Raspian and i had to install it.
newbie
Activity: 6
Merit: 0
January 16, 2014, 06:40:50 AM
#13
Try putting in the full path, like
Code:
cd /home/username/mining-stratum-proxy
If it is in your home directory
hero member
Activity: 1257
Merit: 811
January 16, 2014, 06:19:39 AM
#12
I solved using Raspian, instead of Occidentalis.
I have just a problem if i want to run the mining comand at the startup.
I added the code to /etc/rc.local, but at every boot i get this error:

Code:
/etc/rc.local: 20: cd: can't cd to mining-stratum-proxy
[FAIL] startpar: service(s) returned failure: rc.local ... failed!

How to fix it?
hero member
Activity: 1257
Merit: 811
January 15, 2014, 04:12:42 PM
#11

I tried to use Fedora ARM Installer on Windows 7 and on Ubuntu but in both cases it can't find the SD. No device appears in the menu.
So i used dd command under Ubuntu and i obtained the SD with 2 partition, but when i switch on raspberry with the SD inside it doesn't work. It just doesn't run.

What could be the problem?
hero member
Activity: 1257
Merit: 811
full member
Activity: 126
Merit: 100
January 11, 2014, 06:07:04 PM
#9
[GPU-/CPU-Scrypt-Miner] ------(Internet)------> [RPi=proxy] ------(Internet)-----> Scrypt-Mining-Pool

Would that be possible with minepeon and bfgminer?
Or with the option from elmohasacoin?
anyone? Smiley
full member
Activity: 126
Merit: 100
January 10, 2014, 08:12:35 AM
#8
Can this be used as a proxy for (remote) scrypt miners?

I have some CPU + GPU miners, can they connect via network to the RPi with that proxy? The RPi should submit their work to another scrypt-mining-pool. Is that possible?


So basically:
[GPU-/CPU-Scrypt-Miner] ------(Internet)------> [RPi=proxy] ------(Internet)-----> Scrypt-Mining-Pool



Would that be possible with minepeon and bfgminer?
Or with the option from elmohasacoin?
member
Activity: 106
Merit: 10
December 28, 2013, 10:33:40 PM
#7
you have a lot more control with BFGMiner

tkx for the guide elmohasacoin

Thank you both; nice guide and appreciate the quick response.
newbie
Activity: 6
Merit: 0
December 28, 2013, 06:44:53 PM
#6
How to setup for Solo?

This is for POOLS that use stratum. Solo means no pool. So pretty much that I am aware of you can't do this solo mining.

you have a lot more control with BFGMiner

tkx for the guide elmohasacoin

Correct. BFGMiner is modular and has more control on almost everything. The mining proxy from Slush is very basic. Its based on KISS(keep it simple stupid). It's very easy to set up. You pretty much set it and forget it. You can't really mess it up.

 
Is this works with wifi as well >?
with minepeon i am loosing connection, and will not reconnect itself.??

If your using the cheap usb wireless N adapter that is a known issue. If its not PM me. but here is a work around for that problem.

In SSH

Linux Wifi Tools:
Code:
sudo apt-get install wireless-tools

Wifi Firmware:
Code:
apt-get install ralink-firmware

Settings for adapter:
Code:
iwconfig


Make sure power management is OFF.
Code:
lo        no wireless extensions.

eth0      no wireless extensions.

sit0      no wireless extensions.

wlan0     unassociated  ESSID:off/any
          Mode:Managed  Channel=0  Access Point: 00:00:00:00:00:00
          Bit Rate=0 kb/s   Tx-Power:off
          Retry:on   RTS thr:off   Fragment thr:off
          [b]Power Management:off[/b] <---- Make sure it's off
          Link Quality:0  Signal level:0  Noise level:0
          Rx invalid nwid:0  Rx invalid crypt:0  Rx invalid frag:0
          Tx excessive retries:0  Invalid misc:0   Missed beacon:0

Time to edit your interface settings:
Code:
sudo nano /etc/network/interfaces

Make sure you have wireless power-off.. This is a example config:
Code:
iface lo inet loopback

iface eth0 inet dhcp

auto wlan0
allow-hotplug wlan0
iface wlan0 inet static
address 192.168.0.20
netmask 255.255.255.0
gateway 192.168.0.1
[b]wireless-power off[/b]
wpa-ssid WLANSIID
wpa-psk WLANPASSWORD

If that doesn't work do this:
Code:
sudo nano /usr/local/bin/wificheck.sh

Copy and past this into it:
Code:
#!/bin/bash
##################################################################
# NOTE: THIS SCRIPT HAS BEEN MODIFIED FROM ITS ORIGINAL VERSION.
# SEE THE BELOW WEB SITE FOR THE ORIGINAL AUTHOR'S SCRIPT:
#
# A Project of TNET Services, Inc
#
# Title:     WiFi_Check
# Author:    Kevin Reed (Dweeber)
#            [email protected]
# Project:   Raspberry Pi Stuff
#
# Copyright: Copyright (c) 2012 Kevin Reed
#            https://github.com/dweeber/WiFi_Check
#
# Purpose:
#
# Script checks to see if WiFi has a network IP and if not
# restart WiFi
#
# Uses a lock file which prevents the script from running more
# than one at a time.  If lockfile is old, it removes it
#
# Instructions:
#
# o Install where you want to run it from like /usr/local/bin
# o chmod 0755 /usr/local/bin/WiFi_Check
# o Add to crontab
#
# Run Every 5 mins - Seems like ever min is over kill unless
# this is a very common problem.  If once a min change */5 to *
# once every 2 mins */5 to */2 ...
#
# */5 * * * * /usr/local/bin/WiFi_Check
#
##################################################################
# Settings
# Where and what you want to call the Lockfile
lockfile='/var/run/WiFi_Check.pid'
# Which Interface do you want to check/fix
wlan='wlan0'
# Which address do you want to ping to see if you can connect
pingip='192.168.1.1'
##################################################################
echo
echo "Starting WiFi check for $wlan"
date
echo

# Check to see if there is a lock file
if [ -e $lockfile ]; then
    # A lockfile exists... Lets check to see if it is still valid
    pid=`cat $lockfile`
    if kill -0 &>1 > /dev/null $pid; then
        # Still Valid... lets let it be...
        #echo "Process still running, Lockfile valid"
        exit 1
    else
        # Old Lockfile, Remove it
        #echo "Old lockfile, Removing Lockfile"
        rm $lockfile
    fi
fi
# If we get here, set a lock file using our current PID#
#echo "Setting Lockfile"
echo $$ > $lockfile

# We can perform check
echo "Performing Network check for $wlan"
/bin/ping -c 2 -I $wlan $pingip > /dev/null 2> /dev/null
if [ $? -ge 1 ] ; then
    echo "Network connection down! Attempting reconnection."
    /sbin/ifdown $wlan
    sleep 5
    /sbin/ifup --force $wlan
else
    echo "Network is Okay"   
fi


# Check is complete, Remove Lock file and exit
#echo "process is complete, removing lockfile"
rm $lockfile
exit 0

##################################################################
# End of Script


Give the file chmod of 755:
Code:
sudo chmod 755 /usr/local/bin/wificheck.sh

Make sure the settings are correct for your network and adapter.

Time to make it a cron job.
Code:
sudo crontab -e

Add
Code:
* * * * * /usr/local/bin/wificheck.sh
to the end.

Code:
Ctrl-O
to save

Code:
Ctrl-X
to exit


Let me know what happens.
sr. member
Activity: 458
Merit: 250
beast at work
December 28, 2013, 07:08:28 AM
#5
you have a lot more control with BFGMiner

tkx for the guide elmohasacoin
member
Activity: 106
Merit: 10
December 28, 2013, 05:12:38 AM
#4
How does this method compare to using BFGMiner as the proxy for blades/cubes? I have had no issues using Minepeon + BFGMiner to make a proxy. I am just curious, as I do not fully understand the differences (does peon+bfg slow down with many units?) and have never had a reason to switch. Is it more efficient perhaps? Thank you!
sr. member
Activity: 266
Merit: 250
December 28, 2013, 04:42:41 AM
#3
Is this works with wifi as well >?
with minepeon i am loosing connection, and will not reconnect itself.
??
sr. member
Activity: 420
Merit: 250
December 28, 2013, 02:40:46 AM
#2
How to setup for Solo?
newbie
Activity: 6
Merit: 0
December 27, 2013, 08:44:43 PM
#1
Hey all... I made a post on my photography website on how to install Stratum Mining Proxy on Raspberry Pi. For next year I want my website to only be my photography and video work so I am moving my posts to either a hosted wordpress account and here. So this is the post I made for running a mining proxy on a Raspberry Pi. Please forgive me if this is in the wrong place:

Honestly, when you have as many miners as I do sometimes setting them up gets annoying. Imagine having to setup 20 or more ASIC blades. Having your own stratum proxy not only makes setup easier but stratum improves pool performance. Advantages of stratum is:

No more messages like “pool is not providing work fast enough” in miners, because work is produced locally by the proxy
Extremely low stale rate (less than 0.1%, that means below 1 stale per 1000 accepted shares)
Very low network bandwidth usage (around 10kB/minute)
The best way to have your own proxy is to install it on a Raspberry Pi. They are inexpensive, low power and runs Linux. It doesn’t get any better than that. If you want more information about stratum read the great post on Slush’s website. http://mining.bitcoin.cz/stratum-mining

The following tutorial is a modified version of Slush’s tutorial  for the Raspberry Pi.

What you will need:

Raspberry Pi Model B
SD Card With Linux installed(I recommend Occidentalis)http://learn.adafruit.com/adafruit-raspberry-pi-educational-linux-distro/
Case for Pi
Ethernet Cable
Power Cable
Putty or SSH Softwarehttp://www.putty.org/

Get the Raspberry Pi set up and running your OS. You can follow the tutorials at Adafruit.

Preparing an SD Card for your Raspberry Pihttp://learn.adafruit.com/adafruit-raspberry-pi-lesson-1-preparing-and-sd-card-for-your-raspberry-pi/overview
First Time Configurationhttp://learn.adafruit.com/adafruits-raspberry-pi-lesson-2-first-time-configuration/overview
Enable SSHEnable SSH

Alright, now its time to get to the meat of the tutorial. Open putty or ssh software and connect to your Pi. From here on its copy and paste. Pretty easy.

Lets start off with updating our Pi:

Code:
sudo apt-get update
This will download the files we need:

Code:
git clone git://github.com/slush0/stratum-mining-proxy.git
We now need to change to the directory where the files are located:

Code:
cd stratum-mining-proxy
Now time to download development packages for Python:

Code:
sudo apt-get install python-dev
We need to upgrade setuptools package:

Code:
sudo python distribute_setup.py
This package needs to have Twisted install. Problem is we need Twisted for the Pi. So, we need to change some files:

Code:
sudo nano setup.py
Find:

Code:
'install_requires': ['setuptools>=0.6c11', 'twisted>=12.2.0', 'stratum>=0.2.11', 'argparse'],
Change to:

Code:
'install_requires': ['setuptools>=0.6c11', 'stratum>=0.2.11', 'argparse'],

That will not install Twisted. You will not get an error saying you dont have enough space.

Now, we install Twisted for Pi.

Code:
sudo apt-get install python-twisted
Perfect, that should have installed twisted. We can now install the rest of the libraries:

Code:
sudo python setup.py develop
We are almost done. Time to install Screen. Screen allows us to continue running an SSH command even after we have disconnected.

Code:
sudo apt-get install screen
Lets start a Screen session. Its simple:

Code:
screen
Press Enter or Space to bring up the command line.

Lets get back into the directory:

Code:
cd stratum-mining-proxy

Last but not least lets run the script*:

Code:
./mining_proxy.py

That’s all. All you need to do is change your miner settings.

Point your miners to the Raspberry Pi ip address and port:

Code:
Example: 192.168.1.xx:8332

8332 is the default listen port.

*The script is for Slush’s pool. Not all of us mine his pool. If you need to change it its pretty simple. Instead of running:

Code:
./mining_proxy.py

Run:

Code:
./mining_proxy.py -o stratum.poolurl.com -p port -sp 3334 -gp 8332

Make sure you change “stratum.poolurl.com” to your pools URL and the port to the pool.

For example I am on Zetpool. I am using:

Code:
./mining_proxy.py -o us.stratum.zetpool.com -p 3333 -sp 3334 -gp 8332

To make it run at start up..

Code:
cd stratum-mining-proxy
Changes Directories

Code:
sudo nano miningserver.sh
Creates a file named miningserver.sh. This is where we type the command that we want to run at startup.

Code:
#!/bin/bash
node ./mining_proxy.py -o poolurl.com -p poolport -sp 3334 -gp getworkport
exec bash

The code runs the miningproxy at startup with the information for your pool... MAKE sure to change the dummy text with your pool info.

Then press
Code:
Ctrl x.
Then
Code:
Y
... Then
Code:
Enter
.
This will save the file and exit the text editor.

We are almost done.

Now time to tell the system to start that command at startup.

Code:
sudo nano /etc/rc.local


This is the boot file for linux. After
Code:
# By default this script does nothing.
  and before
Code:
exit 0
.

Type..

Code:
cd stratum-mining-proxy
screen -dmS test ./miningserver.sh

Then press
Code:
ctrl-x.
Then
Code:
Y
, Then
Code:
Enter
.

Your pretty much done.

Type...
Code:
sudo reboot
this will reboot the pi. Wait a few mins. then try it out.

That’s all folks. If you have any problems let me know. I will do my best to help.
Jump to: