Pages:
Author

Topic: [ANN] Catcoin - 0.9.1.1 - Old thread. Locked. Please use 0.9.2 thread. - page 60. (Read 131010 times)

sr. member
Activity: 294
Merit: 250
Diff went down to 1
that ridiculous
and if someone says the fork works cause on average we have a normal block time, then i want you to try to send coin when diff is high and stuck.
legendary
Activity: 1537
Merit: 1005
Any word when cryptsy will be on the correct chain?
newbie
Activity: 11
Merit: 0

I discovered if I close my wallet, and start it up again, the problem returns.  The wallet stalls endlessly and will not sync.  I can keep up using the delete and rebuild method, but there is a bug in the wallet system that would be nice to be fixed.  Developers please take note.  Thanks.

http://i.imgur.com/98oO739.png

I think you're fine, it's just an hour behind because no block has been found since, which is a problem, but not with the wallet. If you want to make sure, check http://catchain.info/chain/Catcoin and see if your wallet has the same block. It shows 2 hours behind for me too, which is true, we're not even close to 10 minute blocks.

You were correct.  Thanks.
hero member
Activity: 588
Merit: 501
You really give yourself a hard time.

Don't you think it's finnaly time to check Kmotos Gravity Well code?

Just open the main.cpp of any Coin that have it (KDC, Vent, Mega) and study it. Just reading it will give you some good ideas I am sure. Also about how to do the averaging better/more correctly.


We are a community coin. We don't add features that most people can't relate to. If we add black magic, fewer people will contribute to the vitality of the coin. Then we die.

We are going to restructure the coin so that this stuff is easier to deal with.

Correct me if I'm wrong, but from your comment I get the feeling that you didn't make the effort to look it up and understand how it work, and I think it's fair to make a judgement about it after you do those things. and btw it is a simpler solution than SMA36LIM12

For those who didn't bother looking at it or who aren't tech savies let me explain to you how kimoto gravity works (from my understanding) :
1-Diff retarget is made every single block
2-The function for diff retarget depends on hashrate or rather the time to solve a block
It uses this function KGW = 1 + (0.7084 * pow((double(PastBlocksMass)/double(144)), -1.228))
So if fast rate is high the function above is applied if/when it's the opposite 1/KGW is applied
Here is the whole code behind it, there is nothing magical about it just a simple math formula applied dynamicly :

Code:
unsigned int static KimotoGravityWell(const CBlockIndex* pindexLast, const CBlockHeader *pblock, uint64 TargetBlocksSpacingSeconds, uint64 PastBlocksMin, uint64 PastBlocksMax) {
        /* current difficulty formula, megacoin - kimoto gravity well */
        const CBlockIndex  *BlockLastSolved                                = pindexLast;
        const CBlockIndex  *BlockReading                                = pindexLast;
        const CBlockHeader *BlockCreating                                = pblock;
                                                BlockCreating                                = BlockCreating;
        uint64                                PastBlocksMass                                = 0;
        int64                                PastRateActualSeconds                = 0;
        int64                                PastRateTargetSeconds                = 0;
        double                                PastRateAdjustmentRatio                = double(1);
        CBigNum                                PastDifficultyAverage;
        CBigNum                                PastDifficultyAveragePrev;
        double                                EventHorizonDeviation;
        double                                EventHorizonDeviationFast;
        double                                EventHorizonDeviationSlow;
        
    if (BlockLastSolved == NULL || BlockLastSolved->nHeight == 0 || (uint64)BlockLastSolved->nHeight < PastBlocksMin) { return bnProofOfWorkLimit.GetCompact(); }
        
        for (unsigned int i = 1; BlockReading && BlockReading->nHeight > 0; i++) {
                if (PastBlocksMax > 0 && i > PastBlocksMax) { break; }
                PastBlocksMass++;
                
                if (i == 1)        { PastDifficultyAverage.SetCompact(BlockReading->nBits); }
                else                { PastDifficultyAverage = ((CBigNum().SetCompact(BlockReading->nBits) - PastDifficultyAveragePrev) / i) + PastDifficultyAveragePrev; }
                PastDifficultyAveragePrev = PastDifficultyAverage;
                
                PastRateActualSeconds                        = BlockLastSolved->GetBlockTime() - BlockReading->GetBlockTime();
                PastRateTargetSeconds                        = TargetBlocksSpacingSeconds * PastBlocksMass;
                PastRateAdjustmentRatio                        = double(1);
                if (PastRateActualSeconds < 0) { PastRateActualSeconds = 0; }
                if (PastRateActualSeconds != 0 && PastRateTargetSeconds != 0) {
                PastRateAdjustmentRatio                        = double(PastRateTargetSeconds) / double(PastRateActualSeconds);
                }
                EventHorizonDeviation                        = 1 + (0.7084 * pow((double(PastBlocksMass)/double(144)), -1.228));
                EventHorizonDeviationFast                = EventHorizonDeviation;
                EventHorizonDeviationSlow                = 1 / EventHorizonDeviation;
                
                if (PastBlocksMass >= PastBlocksMin) {
                        if ((PastRateAdjustmentRatio <= EventHorizonDeviationSlow) || (PastRateAdjustmentRatio >= EventHorizonDeviationFast)) { assert(BlockReading); break; }
                }
                if (BlockReading->pprev == NULL) { assert(BlockReading); break; }
                BlockReading = BlockReading->pprev;
        }
        
        CBigNum bnNew(PastDifficultyAverage);
        if (PastRateActualSeconds != 0 && PastRateTargetSeconds != 0) {
                bnNew *= PastRateActualSeconds;
                bnNew /= PastRateTargetSeconds;
        }
    if (bnNew > bnProofOfWorkLimit) { bnNew = bnProofOfWorkLimit; }
        
    /// debug print
    printf("Difficulty Retarget - Kimoto Gravity Well\n");
    printf("PastRateAdjustmentRatio = %g\n", PastRateAdjustmentRatio);
    printf("Before: %08x  %s\n", BlockLastSolved->nBits, CBigNum().SetCompact(BlockLastSolved->nBits).getuint256().ToString().c_str());
    printf("After:  %08x  %s\n", bnNew.GetCompact(), bnNew.getuint256().ToString().c_str());
        
        return bnNew.GetCompact();
}


The above is the code for the Gravity Well, just for reference's sake.
hero member
Activity: 756
Merit: 500
Cool got them solo  Roll Eyes

Looks like normal. Put your mouse on the watch and you´ll se how many conformations needed to confirm.
120 are needed for the CAT, this can take some days. On the overview side they should be listed as immature.
I havent´t seen that on my CAT wallet but on other coins
full member
Activity: 213
Merit: 100
Hey guys, is anyone else having problems mining right now? I have been mining for the past two days and havnt gotten any confirmed CAT or unconfirmed CAT. Right now I am mining with Coinium, and have  15,750 valid shares on this block. I did have a auto payout set at 10 CAT but I disabled that because I was not receiving anything in my wallet yesterday. Today I do not have anything like yesterday but I can see myself hashing in cgminer and on the coinium website.



I've been solo mining and I just found two blocks in a row with my meager 4 megahashes, about 3 hours apart, what are the odds? and I am up to block 21601. I hope I just got lucky and I am on the right fork. Otherwise, maybe I  will lose 100 CATs I thought I mined. Smiley

Etblvu1
full member
Activity: 210
Merit: 100
Regarding the Catcoin logo, I much prefer the new one. The old one looked like a kitten sticking its tongue out for a facial (you know what I mean), and I know I wasn't the only one that saw that.

Frankly it didn't look even remotely professional. Even DOGE's logo looks better that the old CAT logo.

I took the liberty of throwing together a few new full logos with the updated artwork that might come in useful. I went for a look that emulated the Bitcoin logo, since Catcoin is meant to be the Scrypt Bitcoin.









I might upload new artwork to my Catcoin Art album on Imgur now and then if I get bored.
newbie
Activity: 12
Merit: 0
Hey guys, is anyone else having problems mining right now? I have been mining for the past two days and havnt gotten any confirmed CAT or unconfirmed CAT. Right now I am mining with Coinium, and have  15,750 valid shares on this block. I did have a auto payout set at 10 CAT but I disabled that because I was not receiving anything in my wallet yesterday. Today I do not have anything like yesterday but I can see myself hashing in cgminer and on the coinium website.
sr. member
Activity: 364
Merit: 250
You really give yourself a hard time.

Don't you think it's finnaly time to check Kmotos Gravity Well code?

Just open the main.cpp of any Coin that have it (KDC, Vent, Mega) and study it. Just reading it will give you some good ideas I am sure. Also about how to do the averaging better/more correctly.


We are a community coin. We don't add features that most people can't relate to. If we add black magic, fewer people will contribute to the vitality of the coin. Then we die.

We are going to restructure the coin so that this stuff is easier to deal with.
hero member
Activity: 588
Merit: 501
full member
Activity: 378
Merit: 100
Coinium caused a fork apparently. People need to get off Coinium.
full member
Activity: 213
Merit: 100
Hi strelok369,

From a mathematical perspective, what do you think about the idea of breaking up the tendency for harmonics to develop, by replacing just the "36" portion of "SMA36LIM12" with a prime number pseudo-randomly at each block retarget, to be selected from a table? For example, if we take the least significant 4 bits of the hash of the last block, and used it to look up a table of 16 prime numbers for example consisting of {7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67}. Why this sequence of prime numbers? It's the closest consecutive list of prime numbers that approaches the average of 36 that we already have in place (average of this list of primes is 34.875 and median is 31 or 37, so responsiveness to sudden changes in hash power would roughly match what we have now at 36, actually slightly better). And why prime numbers? By using prime numbers, we eliminate any unintended/unforeseen harmonics that could happen in relation to sampling sizes. Even if there is no danger of harmonics in this sense, it seems good to spread out the numbers a bit, and using prime numbers seems as good a way as any to distribute the numbers.

Thank you for your thoughts.

Etblvu1

How do you synchronize the RANDOM selection number across all clients? We have already clients that don't agree what block we're on.

That aside +9001 for short READABLE proposal. This could be useful.

Hi zerodrama,

I appreciate your thoughtful question.

All the clients inherently and necessarily agree on what the hash of the last solved block is, or else they could not agree on the next block being valid, either.

So we take the least significant 4 bits of that hash, so all the clients agree on which prime number to use from the list. So it's technically a deterministic pseudorandom number that all the clients inherently already have access to in common.

We inherently can't worry about clients not on the correct fork, so they are not a factor. Clients that aren't caught up are also not a problem, because they inherently will see the same pseudorandom number (last block known) to validate the next block as they catch up, the same exact way they already validate blocks as they catch up.

Etblvu1
hero member
Activity: 965
Merit: 515
You really give yourself a hard time.

Don't you think it's finnaly time to check Kmotos Gravity Well code?

Just open the main.cpp of any Coin that have it (KDC, Vent, Mega) and study it. Just reading it will give you some good ideas I am sure. Also about how to do the averaging better/more correctly.
newbie
Activity: 56
Merit: 0
Anyone else's wallet stuck synchronizing at 21 hours behind?  It's been stuck here for about 30 minutes.

It says I have 10 active connections to the Catcoin network.

I think I spoke too soon.  Exited and restarted client and now it's stuck at 3 hours behind.  Hopefully it's synch up eventually.

It wound up synchronizing.  I just exited the client and reopened it a couple times an hour until it finally synched up.
sr. member
Activity: 364
Merit: 250
Hi strelok369,

From a mathematical perspective, what do you think about the idea of breaking up the tendency for harmonics to develop, by replacing just the "36" portion of "SMA36LIM12" with a prime number pseudo-randomly at each block retarget, to be selected from a table? For example, if we take the least significant 4 bits of the hash of the last block, and used it to look up a table of 16 prime numbers for example consisting of {7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67}. Why this sequence of prime numbers? It's the closest consecutive list of prime numbers that approaches the average of 36 that we already have in place (average of this list of primes is 34.875 and median is 31 or 37, so responsiveness to sudden changes in hash power would roughly match what we have now at 36, actually slightly better). And why prime numbers? By using prime numbers, we eliminate any unintended/unforeseen harmonics that could happen in relation to sampling sizes. Even if there is no danger of harmonics in this sense, it seems good to spread out the numbers a bit, and using prime numbers seems as good a way as any to distribute the numbers.

Thank you for your thoughts.

Etblvu1

How do you synchronize the RANDOM selection number across all clients? We have already clients that don't agree what block we're on.

That aside +9001 for short READABLE proposal. This could be useful.
newbie
Activity: 56
Merit: 0
Anyone else's wallet stuck synchronizing at 21 hours behind?  It's been stuck here for about 30 minutes.

It says I have 10 active connections to the Catcoin network.

I think I spoke too soon.  Exited and restarted client and now it's stuck at 3 hours behind.  Hopefully it's synch up eventually.
newbie
Activity: 43
Merit: 0
We could still switch back to the gray kitten logo, it would work with the orange colour scheme.
full member
Activity: 213
Merit: 100
newbie
Activity: 56
Merit: 0
Anyone else's wallet stuck synchronizing at 21 hours behind?  It's been stuck here for about 30 minutes.

It says I have 10 active connections to the Catcoin network.
sr. member
Activity: 364
Merit: 250

I discovered if I close my wallet, and start it up again, the problem returns.  The wallet stalls endlessly and will not sync.  I can keep up using the delete and rebuild method, but there is a bug in the wallet system that would be nice to be fixed.  Developers please take note.  Thanks.



The difficulty prevents blocks. The wallet assumes it missed something. That's why. This is not an error.
Pages:
Jump to: