Pages:
Author

Topic: [ANN][GAP] Gapcoin - Prime Gap Search - New Math Algo - CPU / GPU - Zero Premine - page 68. (Read 287669 times)

newbie
Activity: 45
Merit: 0
New experimental GapMiner release (CPU only)

Revision 5: capable of using the Chinese Remainder Theorem to speed up mining with large shift.


windows: https://github.com/gapcoin/GapMiner/releases/download/crt-rev5/gapminer-windows-rev5.zip
md5: dbae859b1e8825f4f9b3f693004833c4

linux: https://github.com/gapcoin/GapMiner/releases/download/crt-rev5/gapminer-linux-rev5.zip
md5: 909f7fcb141a23d60b04ba8c0df1f391

source code: https://github.com/gapcoin/GapMiner/archive/crt-rev5.zip


The usage should be pretty self explaining from the start-gapminer file.
There are different CRT files containing values optimized for a specific shift.


There are 3 new verbose outputs:
  • gaps/s:  The amount of gaps scanned  per second
  • gaplist:  The number of sieved gaps ready for scanning
  • block:  The percent of the calculation amount of an average block

The primes per second and the block percent values are estimated using the theoretical speed improve from the CRT, so they don't have to be correct.

Mining with the CRT is optimized for solo mining.
You can mine at the pool, but you will probably mine less shares, and the pps and block values are probably incorrect, but your chance of finding a block is almost the same as when mining solo.

Mining with the CRT is splitted in sieve and primality testing using separate threads for each:
Code:
--threads 4 --fermat-threads 1
means: 3 sieve and 1 gap scan thread. So you have to use at least 2 threads.

The scan threads always pick the most promising gap from the gaplist, therefore the gaplist value should always be at least over 100, but a too high gaplist value can slow down mining, (for example over 9000). You can alter --sieve-primes, --threads or --fermat-threads to achieve this.
(--sieve-size is not used for CRT mining)
FYI: The gaplist is implemented as an heap


The is also an logging version, which produces additional output in a gapminer.log file.
If something goes wrong, you can switch versions, and look whats wrong, or at least give feedback.

Thanks j0nn9, trying some large shifts.  Seems like almost the same performance on really enormous shifts vs fairly large ones, pretty neat.
full member
Activity: 177
Merit: 154
So what i think i need is a guide to show me how to static build gapminer...

https://bitcointalksearch.org/topic/building-headless-bitcoin-and-bitcoin-qt-on-windows-149479 should be a good starting point,
for linux you have to change some of the config parameters

You have to statically compile all dependent libraries: boost, gmp, mpfr, openssl, curl.
And then link it together.

An other option is to remove the -march=native switch when compiling dynamically. The resultant binary should be system independent.
full member
Activity: 177
Merit: 154
New experimental GapMiner release (CPU only)

Revision 5: capable of using the Chinese Remainder Theorem to speed up mining with large shift.


windows: https://github.com/gapcoin/GapMiner/releases/download/crt-rev5/gapminer-windows-rev5.zip
md5: dbae859b1e8825f4f9b3f693004833c4

linux: https://github.com/gapcoin/GapMiner/releases/download/crt-rev5/gapminer-linux-rev5.zip
md5: 909f7fcb141a23d60b04ba8c0df1f391

source code: https://github.com/gapcoin/GapMiner/archive/crt-rev5.zip
source code PoWCore: https://github.com/gapcoin/Gapcoin-PoWCore/archive/master.zip


The usage should be pretty self explaining from the start-gapminer file.
There are different CRT files containing values optimized for a specific shift.


There are 3 new verbose outputs:
  • gaps/s:  The amount of gaps scanned  per second
  • gaplist:  The number of sieved gaps ready for scanning
  • block:  The percent of the calculation amount of an average block

The primes per second and the block percent values are estimated using the theoretical speed improve from the CRT, so they don't have to be correct.

Mining with the CRT is optimized for solo mining.
You can mine at the pool, but you will probably mine less shares, and the pps and block values are probably incorrect, but your chance of finding a block is almost the same as when mining solo.

Mining with the CRT is splitted in sieve and primality testing using separate threads for each:
Code:
--threads 4 --fermat-threads 1
means: 3 sieve and 1 gap scan thread. So you have to use at least 2 threads.

The scan threads always pick the most promising gap from the gaplist, therefore the gaplist value should always be at least over 100, but a too high gaplist value can slow down mining, (for example over 9000). You can alter --sieve-primes, --threads or --fermat-threads to achieve this.
(--sieve-size is not used for CRT mining)
FYI: The gaplist is implemented as an heap


The is also an logging version, which produces additional output in a gapminer.log file.
If something goes wrong, you can switch versions, and look whats wrong, or at least give feedback.
newbie
Activity: 45
Merit: 0
@GreekBitcoin - I'm counting 19 records you've set already, nice!
full member
Activity: 177
Merit: 154


Currently I'm testing with the default values, but they're probably not suitable for any shift value.

Someone did a shift 480 with some ridiculously large adder.  j0nn9 - this isn't your new miner is it?

https://bchain.info/GAP/block/f524a95290029ba9c6de5708392464b3522db02519be850612bac4287644ec8e

Yes, that was me running a test on mainnet. Unfortunately it wasn't a new record.


Btw, i was thinking about an idea that probably will bring more people aboard. I am not sure if it can be done or maybe if it is bad so i am just writing it here for discussion. Is it possible to automatically know who (if he wants ofc) is mining the world record blocks so that we can list the records like this: Gapcoin[Username]
You know, the idea is that you are mining gaps for the coins, for science and for a position on the 'leaderboards'...

A username would probably have to be embedded in the blockchain somehow.  Either as a custom wallet address with a person's username or another optional field setting on a solved block which I've read can be done with Bitcoin and this coin is a fork of it.  I'm sure j0nn9 knows more.

Theoretically this could be done using OP_RETURN, but it would require serious changes in the miner.
And if you want to bind a username to a specific miner it gets a lot harder. So at least it's not a short time goal.
newbie
Activity: 45
Merit: 0


Currently I'm testing with the default values, but they're probably not suitable for any shift value.

Someone did a shift 480 with some ridiculously large adder.  j0nn9 - this isn't your new miner is it?

https://bchain.info/GAP/block/f524a95290029ba9c6de5708392464b3522db02519be850612bac4287644ec8e
newbie
Activity: 45
Merit: 0

Btw, i was thinking about an idea that probably will bring more people aboard. I am not sure if it can be done or maybe if it is bad so i am just writing it here for discussion. Is it possible to automatically know who (if he wants ofc) is mining the world record blocks so that we can list the records like this: Gapcoin[Username]
You know, the idea is that you are mining gaps for the coins, for science and for a position on the 'leaderboards'...

A username would probably have to be embedded in the blockchain somehow.  Either as a custom wallet address with a person's username or another optional field setting on a solved block which I've read can be done with Bitcoin and this coin is a fork of it.  I'm sure j0nn9 knows more.
legendary
Activity: 1428
Merit: 1001
getmonero.org
I tried mining some with some shifts on the range around 380 but miners gave me 'illegal instruction core dump' error.

I then noticed that it gives me that error for every shift bigger than 192. So i put my miners running with shift 187-192. Lets see what happens.

It seems to work. Any reason why i get this error? Can my binaries be the problem?

My PPS is halved btw.

Looks like you've found a world record already on a shift 192--length 7546

https://bchain.info/GAP/block/8af4723fc2e9b9f460455ab09d38dcc9649d9a06e2927783a0e89c6efd522075

Yep i checked and i think its mine Smiley Hurray!


j0nn9, pdazzl

I have a few VMs with AMD processors. I think i have plenty of memory and thats not the problem. Running Ubuntu 14.04.  Unfortunately i cant install dependencies so i can only use binaries. Now since i am quite noob on those things, i know just the basics, when i made some binaries from the source  on my personal computer i couldnt run it on my VMs because of missing dependencies. See, i dont really know how to build nice static binaries (damn i am not sure if those are called like this, i am just a physics guy Tongue ) So i got permissions to install dependencies on one of my VMs once and somehow i built a binary that managed to work on the other VMs. The binary was like 15% slower but it did the job.

So what i think i need is a guide to show me how to static build gapminer...


Btw, i was thinking about an idea that probably will bring more people aboard. I am not sure if it can be done or maybe if it is bad so i am just writing it here for discussion. Is it possible to automatically know who (if he wants ofc) is mining the world record blocks so that we can list the records like this: Gapcoin[Username]
You know, the idea is that you are mining gaps for the coins, for science and for a position on the 'leaderboards'...
full member
Activity: 177
Merit: 154
I tried mining some with some shifts on the range around 380 but miners gave me 'illegal instruction core dump' error.

I then noticed that it gives me that error for every shift bigger than 192. So i put my miners running with shift 187-192. Lets see what happens.

It seems to work. Any reason why i get this error? Can my binaries be the problem?

My PPS is halved btw.

Yes that's probably the binary, or some library. With what hardware, system and binary do you mine?

Thanks, will be great to see CRT improvements.  Will using default --sieve-primes and --sieve-size still be what to use on larger shifts with the new miner?

Currently I'm testing with the default values, but they're probably not suitable for any shift value.
newbie
Activity: 45
Merit: 0
I tried mining some with some shifts on the range around 380 but miners gave me 'illegal instruction core dump' error.

I then noticed that it gives me that error for every shift bigger than 192. So i put my miners running with shift 187-192. Lets see what happens.

It seems to work. Any reason why i get this error? Can my binaries be the problem?

My PPS is halved btw.

Looks like you've found a world record already on a shift 192--length 7546

https://bchain.info/GAP/block/8af4723fc2e9b9f460455ab09d38dcc9649d9a06e2927783a0e89c6efd522075
full member
Activity: 154
Merit: 100
I don't want to be any gap between me and GAP... Wink
legendary
Activity: 1428
Merit: 1001
getmonero.org
I tried mining some with some shifts on the range around 380 but miners gave me 'illegal instruction core dump' error.

I then noticed that it gives me that error for every shift bigger than 192. So i put my miners running with shift 187-192. Lets see what happens.

It seems to work. Any reason why i get this error? Can my binaries be the problem?

My PPS is halved btw.
newbie
Activity: 45
Merit: 0

I've been running my two machines in shift 380 & 381 off and on and they've gotten some hits; just a suggestion if you're going for records might want to space all your machines out on different high shifts.  Btw how much pps horsepower do you have?  On default shift solo mining I'm around 1.4M pps.

I have a peak hashrate of around 12M pps at shift 381 currently. I started mining again like 17 hours ago. Generally i mining either monero or gapcoin. I think i will let it at gapcoin for a few days. Its a bit difficult to mine on different shifts mostly because i dont understand what shift does mathematically speaking. I mean, forgive my ignorance, but what happens when a new record is found with shift 381? Can a new one be found but it is even more difficult? I could write a script to change shifts every few hours or every day or something. But i am not sure if all shifts are logical to mine on. So many questions...Like what shift means exactly. Should i 'scan mine' a range of shifts every few hours? I noticed a mined many blocks over the night with shift 381 thought...



j0nn9, nice to see that you are still working on the coin Smiley

All shift does is affect the size of the numbers you are searching.  Larger shifts means bigger raw numbers you are scanning/testing and subsequently larger gaps are found in larger number ranges (though you need larger overall gap lengths to get equivalent merit scores to solve the block compared to smaller number ranges).

A block solution is calculated by sha256(Blockheader) * 2^shift + adder.  During a particular round, the miner is searching through all the "adder" possibilities to find a gap.

An example of what shift does using solved block #113196 - https://bchain.info/GAP/block/d6173fb8d38ec64dabb92d9af96290e68d02c3494f758d7274931fecb4c60490
-------------------
256 bit hash = 96836026872238572127838827186667600687197793668933440162407221099313404183696 (Hash is stored in hexadecimal format of d6173fb8d38ec64dabb92d9af96290e68d02c3494f758d7274931fecb4c60490)
Shift = 32
Adder = 739033261

Solution is (96836026872238572127838827186667600687197793668933440162407221099313404183696)*(2^32)+739033261
That's the first prime before the gap of length 5034 begins.  The last prime that ends the gap would be of course plus 5034 to the solution above.

The number above is 87 digits number long, 13 digits away from a google.  Theoretically if the shift was instead 381 then the resultant number would 192 digits.

It's up to you how you do the shifts, I personally think a wider dragnet (different simultaneous shifts on different machines) will yield more solutions.  Also different shifts seem like they have better yields in my observation but I don't have concrete proof of that.
legendary
Activity: 1428
Merit: 1001
getmonero.org

I've been running my two machines in shift 380 & 381 off and on and they've gotten some hits; just a suggestion if you're going for records might want to space all your machines out on different high shifts.  Btw how much pps horsepower do you have?  On default shift solo mining I'm around 1.4M pps.

I have a peak hashrate of around 12M pps at shift 381 currently. I started mining again like 17 hours ago. Generally i mining either monero or gapcoin. I think i will let it at gapcoin for a few days. Its a bit difficult to mine on different shifts mostly because i dont understand what shift does mathematically speaking. I mean, forgive my ignorance, but what happens when a new record is found with shift 381? Can a new one be found but it is even more difficult? I could write a script to change shifts every few hours or every day or something. But i am not sure if all shifts are logical to mine on. So many questions...Like what shift means exactly. Should i 'scan mine' a range of shifts every few hours? I noticed a mined many blocks over the night with shift 381 thought...



j0nn9, nice to see that you are still working on the coin Smiley
newbie
Activity: 45
Merit: 0
But if you targeting higher shifts anyway, than the CRT could make a difference!
I'm currently testing my implementation within testnet,
but It will still probably take some time till it's ready.
Just wanted to let you know, that I'm working on something.

I also want to thank you all for the great support from all of you!

Thanks, will be great to see CRT improvements.  Will using default --sieve-primes and --sieve-size still be what to use on larger shifts with the new miner?


The website now parses all gaps from http://www.trnicely.net/ till 20k, which is currently
not very efficient implemented, so I set the refresh interval to 4 hours,
once the new miner is finished, I'll take care of it.

Noticed the new records list on gapcoin.org now includes the shift used, definitely makes it easier to search whether or not you set a record after the fact.
full member
Activity: 128
Merit: 101
Hi there,

It's nice to see that some of you using higher shifts to find new records.

Im currently working on new version of the Miner wich should speed up
mining with higher shift by using the Chinese Reminder Theorem (CRT).

I tried long to improve mining by using the CRT,
but couldn't find a solution with gives a real speed improve.
The thing is, to improve the mining speed with the CRT you have to use
an higher shift, as higher the shift as bigger the improvement you make by using the CRT.
But with higher shift the mining speed also decreases, so that you make
no big improvement at all.

But if you targeting higher shifts anyway, than the CRT could make a difference!
I'm currently testing my implementation within testnet,
but It will still probably take some time till it's ready.
Just wanted to let you know, that I'm working on something.

I also want to thank you all for the great support from all of you!



FYI - gapcoin.org isn't showing a new record of length 9100 though maybe it needs time to refresh

The website now parses all gaps from http://www.trnicely.net/ till 20k, which is currently
not very efficient implemented, so I set the refresh interval to 4 hours,
once the new miner is finished, I'll take care of it.

Wow, he is not dead.
full member
Activity: 177
Merit: 154
Hi there,

It's nice to see that some of you using higher shifts to find new records.

Im currently working on new version of the Miner wich should speed up
mining with higher shift by using the Chinese Reminder Theorem (CRT).

I tried long to improve mining by using the CRT,
but couldn't find a solution with gives a real speed improve.
The thing is, to improve the mining speed with the CRT you have to use
an higher shift, as higher the shift as bigger the improvement you make by using the CRT.
But with higher shift the mining speed also decreases, so that you make
no big improvement at all.

But if you targeting higher shifts anyway, than the CRT could make a difference!
I'm currently testing my implementation within testnet,
but It will still probably take some time till it's ready.
Just wanted to let you know, that I'm working on something.

I also want to thank you all for the great support from all of you!



FYI - gapcoin.org isn't showing a new record of length 9100 though maybe it needs time to refresh

The website now parses all gaps from http://www.trnicely.net/ till 20k, which is currently
not very efficient implemented, so I set the refresh interval to 4 hours,
once the new miner is finished, I'll take care of it.
newbie
Activity: 45
Merit: 0
I have a daemon on a VM and i am solo mining on it with the rest of my computers... The problem is that even if i put it mining with some --shift option i wouldnt know if i break any records Tongue  

If you see your wallet go up, you can use your most recent wallet transaction numbers to find which block(s) you solved by searching on https://bchain.info/GAP/

Once you've found your solved block# on bchain.info/GAP it'll list the shift used along with gap length and merit score.

Then check Nicely's site under "Tables of first known occurrence prime gaps" to see if you have a higher merit score than the current world record of that length - http://www.trnicely.net/

A new gap record should also end up appearing on gapcoin.org

I've been running my two machines in shift 380 & 381 off and on and they've gotten some hits; just a suggestion if you're going for records might want to space all your machines out on different high shifts.  Btw how much pps horsepower do you have?  On default shift solo mining I'm around 1.4M pps.
legendary
Activity: 1428
Merit: 1001
getmonero.org
I have a daemon on a VM and i am solo mining on it with the rest of my computers... The problem is that even if i put it mining with some --shift option i wouldnt know if i break any records Tongue 
newbie
Activity: 45
Merit: 0
If you find me a way to mine on pools port ,by using a proxy? maybe, since i can only use port 80 and 443 i can help. But i am not very good with technical stuff and i dont know how to do that...

How do you mine currently?  This is probably something the pool operator would have to setup or you could figure something out with a proxy.

FYI - gapcoin.org isn't showing a new record of length 9100 though maybe it needs time to refresh
Pages:
Jump to: