Post
Topic
Board Announcements (Altcoins)
Re: [ANN][YAC] yacoin: yet another altcoin. START is now.
by
tacotime
on 08/05/2013, 20:18:23 UTC
I also believe the OP may be a bit BIP incompliant.

I do not see an RPC command or a Field in getwork - getworkex or getblocktemplate that gives the current Nfactor.

I may be wrong and missed it, but withholding vital mining information from RPC is ,shall we say "dirty pool"   Wink

Here is where it's calculated in the source
Code:
// yacoin: increasing Nfactor gradually
const unsigned char minNfactor = 4;
const unsigned char maxNfactor = 30;

unsigned char GetNfactor(int64 nTimestamp) {
    int l = 0;

    if (nTimestamp <= nChainStartTime)
        return 4;

    int64 s = nTimestamp - nChainStartTime;
    while ((s >> 1) > 3) {
      l += 1;
      s >>= 1;
    }

    s &= 3;

    int n = (l * 170 + s * 25 - 2320) / 100;

    if (n < 0) n = 0;

    if (n > 255)
        printf("GetNfactor(%d) - something wrong(n == %d)\n", nTimestamp, n);

    unsigned char N = (unsigned char)n;
    //printf("GetNfactor: %d -> %d %d : %d / %d\n", nTimestamp - nChainStartTime, l, s, n, min(max(N, minNfactor), maxNfactor));

    return min(max(N, minNfactor), maxNfactor);
}

Note that "N factor" means 2^N, so minimum is N=16.  But it doesn't really matter what N is, you can just keep increasing the lookup_gap on higher N values and I think you still will get 5-10x better GPU performance (particularly once you offload onto DDR3 memory with the CPU, when N > 1024 or N factor is > 10; you're outside of the L2 cache at that point and the DDR3 is slooooow in comparison to GDDR5 so you should see at least 10x performance I would guess).