gigawatt (OP)
|
|
July 23, 2013, 02:37:31 PM Last edit: January 15, 2014, 06:28:25 PM by gigawatt |
|
After reading mikaelh's Primecoin setup guide I decided to automate as much of the process as possible to make it noob friendly. The result is this! Setting up a Primecoin Miner on VPS for Absolute NoobsDonations welcome! BTC: 1E2egHUcLDAmcxcqZqpL18TPLx9Xj1akcV Ψ: AWHJbwoM67Ez12SHH4pH5DnJKPoMSdvLz2 Before You Begin- Download PuTTY (putty.exe) so you can connect to your VPS when the time comes.
- Sign up for a DigitalOcean or Linode account.
- During the creation process, be sure to create a node running Ubuntu 13.04 x64 (not x86)
- If you signed up for DigitalOcean, check your email for your root password. If you signed up for Linode, your password will be what you specified.
- Run PuTTY and paste the node's IP address into the "Host Name" slot, then hit "Open" at the bottom. (figure 1)
- PuTTY will ask you to confirm the SSH key, press Yes (it will only ask once) (figure 2)
- Type or paste your password into PuTTY and press enter. To paste, simply right click.
- Note: You will not see the password characters! This is normal.
Getting Down to Business- If you chose DigitalOcean, it's time to change the root password! Type passwd, press enter, then enter a new password. Just like before, the password characters will not show up. (figure 3)
- Copy this automated setup script to notepad. (highlighted version)
- At the top of the script, there are fields starting with "PRIMECOIN_". Fill these out with your desired info. Be sure to keep the quotes!
- PRIMECOIN_USERNAME is your primecoind username. It's required for primecoind to work properly!
- PRIMECOIN_SIEVESIZE, PRIMECOIN_SIEVEPCT, PRIMECOIN_SIEVEEXTENSIONS are parameters used by mikaelh's high-performance primecoin client (see link for info)
- Copy the entire modified script from notepad and paste it into your PuTTY window (right click), then hit enter.
- The setup is now running. It will take approximately 10 minutes to complete.
- Once the script completes, you will see a brief help message and list of commands. (figure 4)
Congratulations! You're now mining for primecoins! It may take a few minutes before you actually begin mining. This is normal. Primecoin needs to download the blockchain before it can begin doing work. After it's caught up, you should be able to run ./peek and see that it's generating primes.If you'd like to maximize your mining potential, please see my mini-guide on How to Clone DigitalOcean Droplets. What Now?- If you haven't already, download the latest version of the Primecoin client.
- To "merge" your primecoin accounts into one, you'll need to gather the private keys from your VPS nodes
- Log into your droplet like you did at the beginning of the setup. This time your password will be what you set it to.
- Run ./peek to verify that primecoind is running. If it isn't, run ./start-primecoind and wait a few moments.
- Run ./myinfo to dump your addresses and private keys values. (figure 5)
- Copy the private key value (the random text after "PrivKey:") by highlighting it with your cursor.
- On your main computer, open Primecoin and import the private key.
- From the main Primecoin screen, click Help -> Debug Window
- In the new popup, select Console
- Type importprivkey YOUR_PRIVKEY SOME_LABEL and wait a few seconds. YOUR_PRIVKEY is what you copied from PuTTY and SOME_LABEL is what you want the address to appear as in your address book. (figure 6)
- Repeat this for as many private keys you wish to import. Once finished, close and re-run the Primecoin client. You should see the new addresses under "Receive".
- Note: if an instance of primecoind mines a block, it may not be under the address you exported. Wait for the block to be confirmed, then dump your addresses again. Alternately, modify the notify-wallet script to FTP a backup of your wallet.dat file.
- Occasionally you may wish to update your primecoin miner when new versions or patches are released. To do this...
- Log into your DigitalOcean droplet
- Run ./stop-primecoind to stop the primecoind process
- Run ./build-primecoin to update and rebuild primecoind
- Run ./start-primecoind to start your primecoind process again
- Wait a few minutes and run ./peek to make sure it's running correctly
- If you'd like to remotely backup your wallet.dat file whenever you mint a new block, check this short guide.
Changelog- 27 August, 2013
- Cron reboot script now works properly. (Damn you cron and your newlines!)
- ~/peek no longer shows orphaned blocks. Balance will only include transactions with one or more confirmations.
- ~/myinfo now shows all addresses, not just those in the last ~100 transactions. The pattern matching has been made more generic, so it works with just about any coin on main/testnet. It also only does a lookup on addresses that generated a block or received currency.
- PRIMECOIN_ROUNDSIEVEPERCENTAGE has been removed, replaced with PRIMECOIN_SIEVEEXTENSIONS
- Now includes a ~/restart-primecoind script
- 20 August, 2013
- Tweaked apt-get package names to grab most compatible package for the given install setup
- Package list now includes fail2ban by default for some semblance of security
- Package list now includes nano as a text editor. Why some installs don't come with this is beyond me.
- Swapfile now persists after reboot.
- Auto reboot on kernel panic
- 15 August, 2013 - Now Amazon EC2 compliant and primecoin runs at startup.
- 12 August, 2013
- Updated default parameters to match the newer hp9 client (1mil / 10% / 70%)
- Runs apt-get update before installing things
- ~/start-primecoind should no longer accidentally kill itself
- Initial package install includes bc so ~/peek correctly shows all balances
- Fixed haveged not running after setup. There's been some debate on the usefulness haveged, but until it's definitively proven to be harmful, it will remain.
- Post-install help screen now uses absolute paths instead of relative
- Minor formatting chagnes
- 01 August, 2013
- ./peek now includes the chains/day metric (still in development). It also shows "Immature Balance" instead of "Unconfirmed" to more accurately match the Primecoin-Qt client.
- ./myinfo now correctly dumps all keys, not just confirmed
- ./notify-wallet now has example headings
- Install includes HAVEGED for increased entropy pool (thank you blackboy)
- 29 July, 2013 - Lots of new stuff!
- Added option: PRIMECOIN_ROUNDSIEVEPCT
- PRIMECOIN_USERNAME is now required (I'm an idiot), but PRIMECOIN_PASSWORD is auto-generated.
- Installs newest version of GMP before starting
- notify-wallet now includes example on how to FTP a wallet backup
- peek now dumps averages of "primemeter" stats. This method provides much more accurate results than a single getmininginfo. See an example here.
- start-primecoind shouldn't kill itself anymore
- 24 July, 2013
- ./peek now shows confirmed/unconfirmed balance and pending "immature" transactions
- ./config now reboots primecoind after config changes have been made
- ./stop-primecoind now pauses after killing primecoind process to prevent running ./start-primecoind too early. It will also force-kill primecoind if it's misbehaving.
- When building primecoin, intermediate .tar.bz2 file is now removed
- RPC username/password config removed. They're not exactly "noob" features.
- New Feature: run script when blockchain is updated or when wallet is updated. By default it make a backup of wallet.dat whenever the wallet updates (usually from mining a block)
- New Feature: whenever primecoind crashes, the time of crash is logged in ~/crash.log
- 23 July, 2013
- When updating primecoin, pull from SourceForge instead of bitbucket.
If you have any questions or comments, feel free to speak up.
|
|
|
|
gigawatt (OP)
|
|
July 23, 2013, 02:44:16 PM Last edit: July 30, 2013, 04:02:18 PM by gigawatt |
|
Reserved
|
|
|
|
apbyte
Member
Offline
Activity: 84
Merit: 10
|
|
July 23, 2013, 02:45:54 PM |
|
What is approximate amount of primecoins you can mine in a day by using 512MB/1core ?
|
|
|
|
cryptohunter
Legendary
Offline
Activity: 2100
Merit: 1167
MY RED TRUST LEFT BY SCUMBAGS - READ MY SIG
|
|
July 23, 2013, 02:52:14 PM |
|
What is approximate amount of primecoins you can mine in a day by using 512MB/1core ?
0 or less. In a week or month you may get some. However if you ran it for just 1 day i would predict zero coins.
|
|
|
|
apbyte
Member
Offline
Activity: 84
Merit: 10
|
|
July 23, 2013, 02:53:02 PM |
|
What is approximate amount of primecoins you can mine in a day by using 512MB/1core ?
0 or less. In a week or month you may get some. However if you ran it for just 1 day i would predict zero coins. Then wat is the point in paying 5$ for this ?
|
|
|
|
gigawatt (OP)
|
|
July 23, 2013, 03:00:05 PM |
|
What is approximate amount of primecoins you can mine in a day by using 512MB/1core ?
0 or less. In a week or month you may get some. However if you ran it for just 1 day i would predict zero coins. Per day, you're probably technically correct. Then again, your statement also applies to just about any non-cluster setup.
Then wat is the point in paying 5$ for this ? With the way DigitalOcean works, you pay by the hour regardless of what configuration you've selected. What that means is that you can run one 512mb/1core for a month or you can run four of them for a week. You can have up to five droplets per account, but you can open a ticket to raise the cap. Using the setup script, I managed to get a handful of droplets running in under 30 minutes and can update them with a single command. Worst case scenario, I'm out $5.
|
|
|
|
mikaelh
|
|
July 23, 2013, 03:17:38 PM |
|
Nice initiative. However, I would prefer that people wouldn't post instructions that automatically clone the git repository. Those instructions already probably got my github repo disabled. It puts quite a lot of load on the repository hosting service too.
|
|
|
|
achillez
|
|
July 23, 2013, 03:39:51 PM |
|
something the OP didn't mention.. VPS's / DigitalOCean / Others are no longer profitable at difficulty 9.2+. The days of renting online servers to make XPM are over... unless you like to lose $.
|
|
|
|
gigawatt (OP)
|
|
July 23, 2013, 03:50:30 PM |
|
Nice initiative. However, I would prefer that people wouldn't post instructions that automatically clone the git repository.
Good catch. I've modified the script so that it only clones once and uses git pull to catch up. The initial pull will be ~15MB, but after that just a few KB. Much lighter and quicker than ~15MB each time.
|
|
|
|
mikaelh
|
|
July 23, 2013, 04:02:20 PM |
|
Nice initiative. However, I would prefer that people wouldn't post instructions that automatically clone the git repository.
Good catch. I've modified the script so that it only clones once and uses git pull to catch up. The initial pull will be ~15MB, but after that just a few KB. Much lighter and quicker than ~15MB each time. I would still prefer you didn't clone it at all. SourceForge has tons of mirrors which can handle load much more effectively.
|
|
|
|
|
gigawatt (OP)
|
|
July 23, 2013, 05:11:41 PM |
|
Good catch. I've modified the script so that it only clones once and uses git pull to catch up. The initial pull will be ~15MB, but after that just a few KB. Much lighter and quicker than ~15MB each time.
I would still prefer you didn't clone it at all. SourceForge has tons of mirrors which can handle load much more effectively. My concern with that is that the path of the newest release can change without notice. I don't want to put your bitbucket account in jeopardy though. I'll start working on a way to dynamically pull from SourceForge, regardless of how hackish it turns out. Once it's finished and tested, I'll update the setup script.
|
|
|
|
gigawatt (OP)
|
|
July 23, 2013, 09:50:05 PM |
|
The script has been updated.Here's the relevant section: echo "Downloading and building primecoin..." cat << "SCRIPT" > ~/build-primecoin #!/bin/bash [[ -f ~/stop-primecoind ]] && ./stop-primecoind rm ~/primecoin*.tar.bz2 rm -rf ~/primecoin* wget http://sourceforge.net/projects/primecoin-hp/files/latest/download -O ~/primecoin.tar.bz2 tar xjvf ~/primecoin.tar.bz2 cd ~/primecoin*/src sed -i -e 's/$(OPENSSL_INCLUDE_PATH))/$(OPENSSL_INCLUDE_PATH) \/usr\/local\/include)/' makefile.unix sed -i -e 's/$(OPENSSL_LIB_PATH))/$(OPENSSL_LIB_PATH) \/usr\/local\/lib)/' makefile.unix sed -i -e 's/$(LDHARDENING) $(LDFLAGS)/$(LDHARDENING) -Wl,-rpath,\/usr\/local\/lib $(LDFLAGS)/' makefile.unix make -f makefile.unix USE_UPNP=- sudo cp primecoind /usr/local/bin/ cd SCRIPT chmod +x ~/build-primecoin ~/build-primecoin It will automatically download and compile the newest version of primecoin-hp from SourceForge (as to not overload git).
|
|
|
|
gigawatt (OP)
|
|
July 24, 2013, 06:20:09 PM |
|
24 July, 2013 - Major updates! See main post for additional info. If you'd like to remotely backup your wallet.dat modify the following segment of code... cat << "SCRIPT" > ~/notify-wallet #!/bin/bash # YOUR SCRIPT HERE so that it does something like... cat << "SCRIPT" > ~/notify-wallet #!/bin/bash cp ~/.primecoin/wallet.dat ~/${HOSTNAME}.bak curl -T ~/${HOSTNAME}.bak ftp://your_remote_location --user your_ftpusername:your_ftppassword SCRIPT The script triggers based on primecoind's -walletnotify="~/notify-wallet" flag. It should trigger whenever the wallet file changes, which includes when a new block is minted.
|
|
|
|
Pentel
|
|
July 27, 2013, 01:40:43 PM |
|
It's asking me to set: rpcpassword=<password> in the configuration file.
When I started it up. How do I set a password??
|
|
|
|
gigawatt (OP)
|
|
July 29, 2013, 04:38:50 PM |
|
It's asking me to set: rpcpassword=<password> in the configuration file.
When I started it up. How do I set a password??
That was a mistake on my behalf. I've updated the script, so please try it again. Sorry for the hassle.
|
|
|
|
lamiomni
Newbie
Offline
Activity: 53
Merit: 0
|
|
July 30, 2013, 10:57:30 PM Last edit: July 30, 2013, 11:47:09 PM by lamiomni |
|
For Amazon EC2 instances, you may be considering sudo for the apt-get and the cp commands and maybe more, since you are not root on them. echo "Installing libraries..." apt-get install build-essential curl git libboost-all-dev libdb++5.3-dev libdb5.3++-dev libminiupnpc-dev libssl-dev m4 -y echo "Installing libraries..." sudo apt-get install build-essential curl git libboost-all-dev libdb++5.3-dev libdb5.3++-dev libminiupnpc-dev libssl-dev m4 -y cp primecoind /usr/local/bin/ sudo cp primecoind /usr/local/bin/
|
|
|
|
gigawatt (OP)
|
|
July 31, 2013, 04:05:38 AM |
|
For Amazon EC2 instances, you may be considering sudo for the apt-get and the cp commands and maybe more, since you are not root on them.
Absolutely true. On the Linode/DigitalOcean boxes, you are root. I'm wondering if the install would work if you 1) saved it as a shell script and 2) ran the script with sudo. Most of it should work, but I'm not sure if primecoin would drop the config files where they should be.
|
|
|
|
lamiomni
Newbie
Offline
Activity: 53
Merit: 0
|
|
August 01, 2013, 04:14:17 PM Last edit: August 01, 2013, 05:28:41 PM by lamiomni |
|
Didn't try, the script is almost working out-of-the-box, you also need to "sudo make install" for gmp.
FYI, XPM priming (hp8, Ubuntu Server 13.04 64 bit) on Amazon EC2 with High-CPU On-Demand Instances: - Medium (1.7 GiB of memory, 5 EC2 Compute Units): ~1,1kPPS - Extra Large (7 GiB of memory, 20 EC2 Compute Units): ~4.5kPPS
I'm trying to tune the parameters a bit to find optimal settings.
|
|
|
|
gigawatt (OP)
|
|
August 01, 2013, 05:08:00 PM |
|
Didn't try, the script is almost working out-of-the-box, you also need to "sudo make install" for gmp.
FYI, XPM priming (hp8, Ubuntu Server 13.04 64 bit) on Amazon EC2 with High-CPU On-Demand Instances: - Medium (1.7 GiB of memory, 5 EC2 Compute Units): ~1,1kPPS - Extra Large (7 GiB of memory, 20 EC2 Compute Units): ~4.5kPPS
I think that also may apply to the apt-get commands too. I'd recommend running benchmarks on a few different parameter setups, you'd be surprised what kind of performance you can get. On a 1 CPU (2.4GHz) DigitalOcean droplet, I can manage ~120 5-chain/hr or about ~1k PPS with optimized parameters. Assuming that keep your debug.log file relatively clean ( echo "" > ~/.primecoin/debug.log before you start), you can use this to calculate your running averages: grep primemeter ~/.primecoin/debug.log | awk '{s1+=$4;s2+=$6;s3+=$8} END {printf"%10s: %10d\n%10s: %10d\n%10s: %10d\n","Prime/h",s1/NR,"Test/h",s2/NR,"5-Chain/h",s3/NR}'
|
|
|
|
|