[XPM] [ANN] Primecoin High Performance | HP14 released!

Bitcointalk thread is here: https://bitcointalk.org/index.php?topic=255782.0

This is Primecoin High Performance, a Primecoin wallet with high-performance CPU miner built-in. Only solo mining is supported. For pooled mining, see beeeeer.org. The main Primecoin thread is here.

Notice: CPU mining is no longer profitable. If you have a recent AMD GPU, you can try the following miners:
Open Source XPM Pool + GPU Miner (aka. madPrimeMiner) (with updates by eXtremal)
Claymore XPM (PrimeCoin) GPU Miner

Features:

  • Extended sieve algorithm
  • Cache-friendly segmented sieve
  • Adjustable sieve parameters
  • Mining threads use GMP for faster bignum arithmetic

Recent changes:
Changes in -hp14 (ann):

  • Huge CPU mining speedup. Up to 73% higher chains/day on Intel’s Haswell.
  • Developer fee is now 1% (-donationpercentage defaults to 1.0).
  • Sieve now uses the BTS instruction (same as RapidPrime miner).
  • Added compile-time support for using BMI2 instructions on Haswell.
  • Added compile-time support for SSE2 and AVX2 bitwise operations.
  • New extended sieve algorithm similar to rdebourbon’s beta4 code.
  • New default values for the tuning parameters:
    . sievefilterprimes defaults to 14000 (up from 7849)
    . sievesize defaults to 1376256 (up from 917504)
    . sieveextensions defaults to 10 (up from 9)
  • Lots of other minor improvements.

Changes in -hp13 (ann):

  • Binaries compiled with OpenSSL 1.0.1g which addresses the Heartbleed vulnerability
  • Faster blockchain download

Changes in -hp12 (ann):

  • IMPORTANT: Fix for multiple machines doing the same work if wallet is shared.
  • New chain statistics in debug.log.
  • Removed ‘primespersec’ from the output of getmininginfo.
  • Removed ‘chainspermin’ metric.
  • Replaced -sievepercentage parameter with -sievefilterprimes.
  • New parameter -l1cachesize for specifying the size of sieve segments.
  • Added new blocks/day metric which tries to estimate how many blocks will be found at current difficulty.
  • Better automatic adjustment of primorial factor.
  • New parameter -primorial for manual adjustment of primorial.
  • Implemented early support for v0.2 proposal (needs to be enabled with -miningprotocol=2).
  • David’s fix for getwork.
  • Updated to Bitcoin v0.8.6 codebase.
  • Improved the checking of BiTwin chain candidates. As a consequence, short BiTwin chains (1 or 2 primes) are now counted correctly in the mining statistics. Primes/h is now much higher due to this.
  • The Qt application is now titled Primecoin High Performance.
  • Fixes for Mac OS X and the Clang compiler.
  • Revised default sieve parameters.
  • Added an automatic donation feature when a new block is found. The -donationpercentage allows a percentage of the block reward to be donated to an address. E.g. passing the command-line parameter -donationpercentage=1.5 will donate 1.5% of every block to the developer. Alternatively, this value can be set in primecoin.conf. Also, the default address can be changed using -donationaddress.

Changes in -hp11: (ann)

  • Fixed a bug in the BiTwin filter that was inflating the chains/day estimate and reducing the chances of finding a block (thanks to rdebourbon).
  • Slightly improved the accuracy of the prime probability estimate with regards to the ‘sieveextensions’ parameter.
  • Changed the default value of ‘sieveextensions’ to 9.
  • Other small fixes and improvements from cabin.

Changes in -hp10: (ann)

  • Major rewrite of the sieve to support extending the sieve (originally implemented by jh000).
  • Added a new parameter ‘sieveextensions’ which controls how many times the sieve is extended.
  • Removed the problematic and unnecessary fast-division test.
  • Changed the value of nL1CacheElements to 224000 which is slightly faster (thanks to nushor on IRC).
  • The ‘roundsievepercentage’ parameter is gone. The round primorial is now automatically adjusted.
  • New RPC command ‘listtopprimes’ by Sunny.

Windows x64 binaries
http://sourceforge.net/projects/primecoin-hp/files/0.1.2-hp14/primecoin-0.1.2-hp14-winx64.zip/download
http://download.muuttuja.org/primecoin/primecoin-hp/0.1.2_hp14/primecoin-0.1.2-hp14-winx64.zip
SHA1SUM: 2610f99d0087bc799050fcbe02482e556df19ae1

Windows x86 binaries
http://sourceforge.net/projects/primecoin-hp/files/0.1.2-hp14/primecoin-0.1.2-hp14-winx86.zip/download
http://download.muuttuja.org/primecoin/primecoin-hp/0.1.2_hp14/primecoin-0.1.2-hp14-winx86.zip
SHA1SUM: d205da20b41d9eebe9c415144efe13a7efa652b5

Linux x64 and x86 binaries
http://sourceforge.net/projects/primecoin-hp/files/0.1.2-hp14/primecoin-0.1.2-hp14-linux.tar.bz2/download
http://download.muuttuja.org/primecoin/primecoin-hp/0.1.2_hp14/primecoin-0.1.2-hp14-linux.tar.bz2
SHA1SUM: 254087afc81dc054f48e7b1db1957c6cd2dabea6

Mac OS X binaries
http://sourceforge.net/projects/primecoin-hp/files/0.1.2-hp14/Primecoin-HP-Qt-0.1.2-hp14.dmg/download
http://download.muuttuja.org/primecoin/primecoin-hp/0.1.2_hp14/Primecoin-HP-Qt-0.1.2-hp14.dmg
SHA1SUM: 240af66fbf07d3a0b85c386a62faefe8d6afc592

Warning to Linux users: My binaries are linked against Berkeley DB 4.8.30. If you have compiled from source before, the database format may be incompatible if you linked against a different version of Berkeley DB. Sunny King’s original binaries are linked against Berkeley DB 4.8.24, which should be compatible with my version. Always make sure to backup the database and your wallet before switching builds.

Source code (.tar.bz2)
http://sourceforge.net/projects/primecoin-hp/files/0.1.2-hp14/primecoin-0.1.2-hp14.tar.bz2/download
http://download.muuttuja.org/primecoin/primecoin-hp/0.1.2_hp14/primecoin-0.1.2-hp14.tar.bz2
SHA1SUM: ea772deda9d3a1d3ced99ba5858ec888d869667c

Source code (Git)
https://bitbucket.org/mikaelh/primecoin-hp

Please use the SourceForge link for downloading the source code to ease the load on the repository.

Older releases are stored on SourceForge:
https://sourceforge.net/projects/primecoin-hp/files/

[size=16pt]Tutorials[/size]

[Tutorial] Primecoin Getting Started and Basic Commands
Quick Guide! - How to mine Primecoin
[XPM] Primecoin High Performance Linux Compilation Guide

[size=16pt]Configuration[/size]

Sample config file for automatic mining:

# Enable JSON-RPC commands to be received
server=1

# Username and password for JSON-RPC
rpcuser=primecoinrpc
rpcpassword=PASSWORD

# IP restriction for JSON-RPC
rpcallowip=127.0.0.1

# Start mining automatically
gen=1

# An extra seednode to help getting connected to the network
seednode=primeseed.muuttuja.org

# Tuning parameters
#sievesize=1376256
#sievefilterprimes=14000
#sieveextensions=10

# Donate 1% of found blocks by uncommenting the following line
#donationpercentage=1.0

Save the file as primecoin.conf in %APPDATA%\Primecoin (for Windows users), $HOME/.primecoin (for Linux users), or $HOME/Library/Application Support/Primecoin (for Mac OS X users).

[size=16pt]FAQ[/size]

Q: How many blocks should I expect to find?
A: My current formula for turning chains/day into blocks/day is as follows:
blocks/day = chains/day * (0.97 * (1 - fracDiff) + 0.03)
Here fracDiff is the fractional part of the mining difficulty (i.e. fracDiff = diff - floor(diff)). The ‘getmininginfo’ command will show both the chains/day value and the difficulty.

Q: Is this compatible with the original client? Can I replace primecoin-qt/primecoind with this release?
A: Yes, the Windows builds should be compatible with the original client. It uses Berkeley DB version 4.8 so the database format should be the same.

Q: Why is the client crashing with the following message?
Assertion failed!
File: src/checkqueue.h, line 171
Expression: pqueue->nTotal == pqueue-> nIdle
A: This is a known bug which is present both in this version and the original Primecoin wallet. A workaround is to use a script or a cron job to automatically restart the wallet.

Q: How can I fix the client crashing on every startup?
A: Try deleting all database files except wallet.dat.

Q: Where is the config file located?
A: Windows users: The configuration file should be located in the %APPDATA%\Primecoin folder.
Linux users: The configuration file is located in your $HOME/.primecoin folder.
Mac OS X users: The configuration file is located in your $HOME/Library/Application Support/Primecoin folder.
The configuration file is not created by default. If it does not exist, simply create a new text file and save it as primecoin.conf.

Q: What are the optimal sieve parameters?
A: The default values should be good for most people. If you want to further optimize them, adjust them one-by-one and compare chains/day.

Q: Why is my performance worse on Linux?
A: This version relies on libgmp to do most of the complex calculations. Make sure your libgmp is up-to-date. Old versions do not support newer CPUs. I suggest compiling your own libgmp from latest source code for maximum performance.

Q: Why has my prime rate dropped after updating?
A: There are two common cases why primes/s can drop:

  1. You downloaded the 32-bit version which is slower. Use the 64-bit version if possible.
  2. Network difficulty has changed. Prime rate goes down when the integer part of the difficulty changes (i.e. going from 8.xx to 9.xx). It’s a feature of the mining algorithm and nothing can be done about it.
    Otherwise please make a post wiith system information (especially CPU model), operating system version and miner version.

Q: What is the chains/day estimate?
A: Short version: https://bitcointalk.org/index.php?topic=255782.msg2847844#msg2847844
Longer version: https://bitcointalk.org/index.php?topic=255782.msg2848092#msg2848092

Q: How do I solve a problem with the client not being able to synchronize or connect to any nodes?
A: Try adding this line to your primecoin.conf file:

seednode=primeseed.muuttuja.org

Also check that your firewall allows outgoing connections to other nodes. You may also allow incoming connections if you want. The default port used by Primecoin is 9911 (TCP).

HP12 released! The download links are on the first page as usual. Since people keep running into the bugs in older releases, I have finally decided to make a new release. This is a recommended upgrade for all users. Note that this release does not contain my very latest experimental optimizations. Nevertheless, many smaller optimizations and improvements are included.

Release highlights:

  • Fix for shared wallet files. If the same wallet.dat file is copied to multiple machines, they should all try to solve unique blocks now.
  • Fix for getwork protocol. Some versions of jhPrimeminer support solo mining using a patched getwork protocol. That patch is included in this release.
  • OS X binaries of the Qt client.
  • Fix for the assertion failure crash.

Changes:

  • IMPORTANT: Fix for multiple machines doing the same work if wallet is shared.
  • New chain statistics in debug.log.
  • Removed ‘primespersec’ from the output of getmininginfo.
  • Removed ‘chainspermin’ metric.
  • Replaced -sievepercentage parameter with -sievefilterprimes.
  • New parameter -l1cachesize for specifying the size of sieve segments.
  • Added new blocks/day metric which tries to estimate how many blocks will be found at current difficulty.
  • Better automatic adjustment of primorial factor.
  • New parameter -primorial for manual adjustment of primorial.
  • Implemented early support for v0.2 proposal (needs to be enabled with -miningprotocol=2).
  • David’s fix for getwork.
  • Updated to Bitcoin v0.8.6 codebase.
  • Improved the checking of BiTwin chain candidates. As a consequence, short BiTwin chains (1 or 2 primes) are now counted correctly in the mining statistics. Primes/h is now much higher due to this.
  • The Qt application is now titled Primecoin High Performance.
  • Fixes for Mac OS X and the Clang compiler.
  • Revised default sieve parameters.
  • Added an automatic donation feature when a new block is found. The -donationpercentage allows a percentage of the block reward to be donated to an address. E.g. passing the command-line parameter -donationpercentage=1.5 will donate 1.5% of every block to the developer. Alternatively, this value can be set in primecoin.conf. Also, the default address can be changed using -donationaddress.

Great to see you still working on Primecoin mikaelh :slight_smile: keep up the great work…

someone should fork peer4commit to prime4commit so you can receive donations on your repo for the work you do :slight_smile:

Fuzzybear

thumbs up

experimental branch of xolominer (aka primeminer) already updated

Donate Address, please :wink:

I added some donation addresses to my signature.

HP13 released! Download links are on the first page. Links point to my own server because SourceForge is being especially slow for me.

Changes:

  • Binaries compiled with OpenSSL 1.0.1g which addresses the Heartbleed vulnerability
  • Faster blockchain download
  • Bonus: Also compiled with GMP 6.0.0a

Mac OS X version will be delayed because it failed to build this time.

thank you

I fixed the OS X build and it’s now available for download.

HP14 released! This is a big release with a huge speed boost for CPU miners. Download links are in the first post.

Changes in -hp14:

  • Huge CPU mining speedup. Up to 73% higher chains/day on Intel’s Haswell.
  • Developer fee is now 1% (-donationpercentage defaults to 1.0).
  • Sieve now uses the BTS instruction (same as RapidPrime miner).
  • Added compile-time support for using BMI2 instructions on Haswell.
  • Added compile-time support for SSE2 and AVX2 bitwise operations.
  • New extended sieve algorithm similar to rdebourbon’s beta4 code.
  • New default values for the tuning parameters:
    . sievefilterprimes defaults to 14000 (up from 7849)
    . sievesize defaults to 1376256 (up from 917504)
    . sieveextensions defaults to 10 (up from 9)
  • Lots of other minor improvements.

Gratz! Good stuff as usual Mikael ;D

Hi everyone.
I am new to this primecoin mining figured i would give it a run.
I got a I7-2600
Using the primecoin wallet
Using the below primecoin.conf

Enable JSON-RPC commands to be received

server=1

Username and password for JSON-RPC

rpcuser=myusername
rpcpassword=mypass

IP restriction for JSON-RPC

rpcallowip=127.0.0.1

Start mining automatically

gen=1
genproclimit=7

An extra seednode to help getting connected to the network

seednode=primeseed.muuttuja.org

Tuning parameters

sievesize=1376256
sievefilterprimes=14000
sieveextensions=10

Donate 1% of found blocks by uncommenting the following line

#donationpercentage=1.0

Been running 12 hrs @90% load on CPU 81c-90c temps on all 4 cores

and heres what i got when i enter getmininginfo
{
“blocks” : 660790,
“blocksperday” : 0.00779066,
“chainsperday” : 0.10709219,
“currentblocksize” : 1000,
“currentblocktx” : 0,
“difficulty” : 10.95610142,
“errors” : “”,
“generate” : true,
“genproclimit” : 7,
“pooledtx” : 0,
“sieveextensions” : 10,
“sievefilterprimes” : 14000,
“sievesize” : 1376256,
“testnet” : false
}

showing 0.00xpm

Am I actually mining ? how do i tell if I am earning anything?

yes you are mining but difficulty is high for solo mining, it will take a while before you find a block, maybe you want to try pool mining, you still will get very little with just one cpu (and since gpu miners have arrived)

Hi!

What is “v0.2 proposal”?
Does this means possible hardfork?
Is it planned to be implemented or deployed?