Author

Topic: [ANN][RIC] Riecoin: constellations POW *CPU* HARD FORK successful, world record - page 194. (Read 685214 times)

dga
hero member
Activity: 737
Merit: 511
I guess we can easily get many such 32-bit numbers, without obtaining them from true prime sextuplets... ??

sure! you pick numbers that would form a valid 6tuple modulo each prime and then use the Chinese Remainder Theorem to get your remainder modulo your primorial (for example 1 mod 2, and 1 mod 3 gives you 1 mod 6). When numbers get larger, you'll have to do some trial and error in order to have your number fit in 32bits

If I'm reading this correctly, I do it (not dynamically, but the static program I use to do it) by a quick recursive generator.  Pseudocode for clarity, not quite actual mpz names:

primorial = 2*3*5*7;
next_prime = 11;
polynomial = [7];
max_size = 10000;

for i = 0 ... #Pn {
   polynomial = add_to_poly(polynomial, next_prime, primorial, max_size);
   primorial *= next_prime
   mpz_nextprime(next_prime);
}

add_to_polynomail(cur_poly, next_prime, primorial, max_size):
  for i = 0 .. next_prime {
    for j = 0 ... sizeof(cur_poly) and sizeof(new_poly) <= max_size{
        candidate = (i*primorial) + cur_poly[j]
        new_poly += candidate if candidate not divisible by next_prime at any of its six positions
    }
  }
}

It's silly fast if you make the not divisible test fast (advance to candidate by using a pre-computed inverse divisor).  A single thread can generate 7038807 valid offsets for the 33rd primorial in about 6 seconds.  Which is probably enough. Wink
newbie
Activity: 4
Merit: 0
>cell.md
Thank you for testing! Could you try setgenerate true 20 16, and raise the sieve size if you have RAM?
Or please catch me at ypool chat.
sr. member
Activity: 560
Merit: 250
"Trading Platform of The Future!"
Are we ready for another difficulty jump? http://ypool.net/ric/stats_blocks

ypool is finding nearly all of the blocks  Shocked
hero member
Activity: 583
Merit: 505
CTO @ Flixxo, Riecoin dev
I guess we can easily get many such 32-bit numbers, without obtaining them from true prime sextuplets... ??

sure! you pick numbers that would form a valid 6tuple modulo each prime and then use the Chinese Remainder Theorem to get your remainder modulo your primorial (for example 1 mod 2, and 1 mod 3 gives you 1 mod 6). When numbers get larger, you'll have to do some trial and error in order to have your number fit in 32bits
sr. member
Activity: 308
Merit: 250
Riecoin and Huntercoin to rule all!
hero member
Activity: 583
Merit: 505
CTO @ Flixxo, Riecoin dev
I just added RieCoin to our pool and would love some help testing it please ?

www.altcoinspool.com

Thanks.

Alt.

please have in mind that algo is not scrypt as your site puts
newbie
Activity: 4
Merit: 0
Following up on my earlier tracing of offsets and difficulty, here's a new graph:

http://www.cs.cmu.edu/~dga/crypto/ric/diff_offset_2014_03_18.png

Looks like within a few days, the low-primorial miners will mostly be gone.

Supercomputing alluded to this, but I think it'll be interesting to see what happens with coprimes (offsets relative to the primorial) other than the first.  The ypool miner and mine both use only the first (+97 for 2310, and +16057 for big primorials).  But a00k's uses a different coprime for each worker.  I'm not sure I see a fundamental advantage to using the coprimes unless we start exhausting the 256 bit nonce space with large primorials and need to search more densely, but it seems like something to keep in mind.

I'll see if I can add a coprime-detector to my analysis code for some graphs next week.  That should also provide a better signature of the miner used to mine the block - interesting stuff.


All these primorial optimizations are assuming that all 'coprimes' as you say (I'm not sure it's the correct term, I'd call them 'remainders' since they are the remainder of the first prime of the sextuplet modulo the primorial) are equiprobable (ie sextuplets are distributed evenly amongst different remainders). It's logical to assume that, but I think it's not proven to be true. Some may give better performance than others - and it could be a big difference.
The safest approach would be to choose one at random and switch every few minutes or something. And of course the best would be to research if they are truly the same or not.

Some of you people thought your were mining this for the money? while you were distracted, I made you do science! ha! Smiley

I may be wrong if I missed something, and I completely agree with gatra.

a00k seems to be doing a lot of unnecessary work just to get to this:

Base_Target = {Current Target}
Sextuplet = 7273427997146573527660308536800543291038744551505285967246716372557017 <---- Static Sextuplet Origin (different for each thread)
Primorial = 179#

Then do something like this:

Remainder = Target  % Primorial
Remainder = Primorial - Remainder

Target_Offset = Remainder % Primorial
Target_Offset = Target_Offset + Sextuplet
Target_Offset = Base_Target + Target_Offset

Then your sieve array will represent:
Target_Offset + Primorial + Primorial + Primorial + ...

or

Target_Offset + (k * Primorial)

Not yet got into the point.... but I'm calling mines coprimes obviously because not requiring them to be primes.
  COPRIMES= { n | n, n+4, n+6, n+10, n+12, n+16 are relatively primes to P# }
I guess we can easily get many such 32-bit numbers, without obtaining them from true prime sextuplets... ??

newbie
Activity: 27
Merit: 0
sr. member
Activity: 560
Merit: 250
"Trading Platform of The Future!"
how to calculate knumbers per second given 4-chains per second?
sr. member
Activity: 308
Merit: 250
Riecoin and Huntercoin to rule all!
I just added RieCoin to our pool and would love some help testing it please ?

www.altcoinspool.com

Thanks.

Alt.

Thanks for adding Riecoin!
newbie
Activity: 56
Merit: 0
I just added RieCoin to our pool and would love some help testing it please ?

www.altcoinspool.com

Thanks.

Alt.
sr. member
Activity: 560
Merit: 250
"Trading Platform of The Future!"
A mathematician and a scientist are given an identical problem: Prove that all swans are white
Mathematician: It is impossible to prove that!
Scientist: Well this swan is white, this one is too, and so is this one. I only see 3 swans. Proven!
newbie
Activity: 37
Merit: 0
Just to be a pedantic dick I don't think this is science, it's math (and math is most definitely not science), which is fine too.  Smiley

A mathematician and a scientist are given an identical problem: Prove that all odd numbers greater than 2 are prime numbers. They proceed:
Mathematician: 3 is a prime, 5 is a prime, 7 is a prime, 9 is not a prime - counterexample - claim is false.
Scientist: 3 is a prime, 5 is a prime, 7 is a prime, 9 is an experimental error, 11 is a prime, ...
hero member
Activity: 583
Merit: 505
CTO @ Flixxo, Riecoin dev
ric.upcpu.com is also open for testing
They use xpt insted of stratum, so the optimized miners for ypool should work on the upcpu pool too

how do I transfer RIC coin into the wallet?

xptMiner.exe -o ricpool.upcpu.com -u RCeZfFMVsJqkeZi21w8j3U8mUhwzDW2T99.worker -p x -t 8

or

xptMiner.exe -o ricpool.upcpu.com -u RCeZfFMVsJqkeZi21w8j3U8mUhwzDW2T99 -p x -t 8

which one is correct?

in upcpu I think the former is valid
just make sure RCeZfFMVsJqkeZi21w8j3U8mUhwzDW2T99 is your address and you'll receive payouts there
hero member
Activity: 583
Merit: 505
CTO @ Flixxo, Riecoin dev
^^ I would assume the latter.

Can anyone provide an equation for calculating the estimated 4-chains required to find a 6-chain and thus mine a block?
it's possible but kinda tricky, one of the variables is how many primes you put in your sieve. Will think about it
sr. member
Activity: 278
Merit: 250
Following up on my earlier tracing of offsets and difficulty, here's a new graph:

http://www.cs.cmu.edu/~dga/crypto/ric/diff_offset_2014_03_18.png

Looks like within a few days, the low-primorial miners will mostly be gone.

Supercomputing alluded to this, but I think it'll be interesting to see what happens with coprimes (offsets relative to the primorial) other than the first.  The ypool miner and mine both use only the first (+97 for 2310, and +16057 for big primorials).  But a00k's uses a different coprime for each worker.  I'm not sure I see a fundamental advantage to using the coprimes unless we start exhausting the 256 bit nonce space with large primorials and need to search more densely, but it seems like something to keep in mind.

I'll see if I can add a coprime-detector to my analysis code for some graphs next week.  That should also provide a better signature of the miner used to mine the block - interesting stuff.


All these primorial optimizations are assuming that all 'coprimes' as you say (I'm not sure it's the correct term, I'd call them 'remainders' since they are the remainder of the first prime of the sextuplet modulo the primorial) are equiprobable (ie sextuplets are distributed evenly amongst different remainders). It's logical to assume that, but I think it's not proven to be true. Some may give better performance than others - and it could be a big difference.
The safest approach would be to choose one at random and switch every few minutes or something. And of course the best would be to research if they are truly the same or not.

Some of you people thought your were mining this for the money? while you were distracted, I made you do science! ha! Smiley

I may be wrong if I missed something, and I completely agree with gatra.

a00k seems to be doing a lot of unnecessary work just to get to this:

Base_Target = {Current Target}
Sextuplet = 7273427997146573527660308536800543291038744551505285967246716372557017 <---- Static Sextuplet Origin (different for each thread)
Primorial = 179#

Then do something like this:

Remainder = Target  % Primorial
Remainder = Primorial - Remainder

Target_Offset = Remainder % Primorial
Target_Offset = Target_Offset + Sextuplet
Target_Offset = Base_Target + Target_Offset

Then your sieve array will represent:
Target_Offset + Primorial + Primorial + Primorial + ...

or

Target_Offset + (k * Primorial)
sr. member
Activity: 560
Merit: 250
"Trading Platform of The Future!"
^^ I would assume the latter. On the website, it says the former.

Can anyone provide an equation for calculating the estimated 4-chains required to find a 6-chain and thus mine a block?
sr. member
Activity: 420
Merit: 250
ric.upcpu.com is also open for testing
They use xpt insted of stratum, so the optimized miners for ypool should work on the upcpu pool too

how do I transfer RIC coin into the wallet?

xptMiner.exe -o ricpool.upcpu.com -u RCeZfFMVsJqkeZi21w8j3U8mUhwzDW2T99.worker -p x -t 8

or

xptMiner.exe -o ricpool.upcpu.com -u RCeZfFMVsJqkeZi21w8j3U8mUhwzDW2T99 -p x -t 8

which one is correct?
legendary
Activity: 1428
Merit: 1001
getmonero.org
Just to be a pedantic dick I don't think this is science, it's math (and math is most definitely not science), which is fine too.  Smiley



i am studding relativity right now. please come and tell me about math being DEFINITELY not science...
member
Activity: 104
Merit: 10
Hi, this is my first post here:)
I'd like to share my RIC solo-miner code, embedded in riecoind.

https://bitbucket.org/a00k/riecoin


hi a00k

I've compiled your version of riecoind, but just a few second after entering setgenerate true 20 the riecoind exits. In console appear:
Quote
terminate called after throwing an instance of 'std::bad_alloc'  what():  std::bad_alloc

System is:
Quote
Linux srv 3.12-1-amd64 #1 SMP Debian 3.12.6-2 (2013-12-29) x86_64 GNU/Linux

CPU:
Quote
CPU model name      : Intel(R) Xeon(R) CPU           X5650  @ 2.67GHz

It's so sad Sad
Jump to: