Pages:
Author

Topic: [ANN] Launch-time charts - 57 currencies - cryptometer.org (Read 17044 times)

hero member
Activity: 567
Merit: 500
In gold I trust - Aurumcoin www.cointech.net
mxn
newbie
Activity: 59
Merit: 0
Hi,
very interesting data,
i wanna ask you for three coins,
all three now on fully PoS, but mined at the beginning:

- Philosopher Stone (current supply: 2 millions, initial PoW mining: ca. 9 months)
- Mintcoin (19 billions, 5 weeks)
- Blackcoin (74 millions, 1 week)

Cheers
newbie
Activity: 28
Merit: 0
On the contrary I think it looks beautiful, aside from the genesis block and the launch spike everythings going just about perfect. Smoothest chart i've seen.
full member
Activity: 185
Merit: 100
Bitbar charts are hilarious. Still baffles me that people purchase that shit.
member
Activity: 76
Merit: 10
To be or to have
Please add Polcoin  Grin
member
Activity: 112
Merit: 10
smartcoin.io
SmartCoin would love to be added!  Smiley
full member
Activity: 121
Merit: 100
Add request

42coin, Potcoin and Craftcoin please

Thanks!

edit: didn't see Craftcoin

I've added 42coin charts to the site.  It's the first 2014 coin.

http://cryptometer.org/42coin_96_hour_charts.html
http://cryptometer.org/42coin_90_day_charts.html

Note: I made the "Minted Currency" chart use micro-42s.  This is because the logarithmic scale does weird things to numbers between 0 and 1 and that's where all the data for this currency falls.  The numbers near 0 end up with large bars and the numbers near 1 end up with small bars.  This is the opposite of what we're used to seeing and makes my brain hurt.  Using mircro-42s scales the data by one million and gets nearly all of it out of 0 to 1 range.  Then the chart looks normal.

full member
Activity: 121
Merit: 100
Buy the way, did you manage to remove the coin creation from the transaction chart, as we talked about before ?

Ok.  I just did it and it was quite easy.  The coinbase transactions are now excluded from the Transactions chart.  I should have done it ages ago.  It really didn't make sense to count the coinbase transactions because the first chart which counts blocks is the same thing as the number of coinbase transactions.  It's much more interesting now.  As I update the different currencies on the site, it will gradually take affect.  Right now, I've only run it on Bitcoin.  To make the transition clear, the old chart is called "Transactions" and the new chart is called "Transactions (non coinbase)".  That way you know if it's applied to a particular currency yet.  Are there any currencies you want me to update first?

Great, thanks, this is funny to see 0 transaction a week at the very beginning of BTC.

Well my next choice would be MMC and XPM.

MMC and XPM are updated.
sr. member
Activity: 248
Merit: 251
Buy the way, did you manage to remove the coin creation from the transaction chart, as we talked about before ?

Ok.  I just did it and it was quite easy.  The coinbase transactions are now excluded from the Transactions chart.  I should have done it ages ago.  It really didn't make sense to count the coinbase transactions because the first chart which counts blocks is the same thing as the number of coinbase transactions.  It's much more interesting now.  As I update the different currencies on the site, it will gradually take affect.  Right now, I've only run it on Bitcoin.  To make the transition clear, the old chart is called "Transactions" and the new chart is called "Transactions (non coinbase)".  That way you know if it's applied to a particular currency yet.  Are there any currencies you want me to update first?

Great, thanks, this is funny to see 0 transaction a week at the very beginning of BTC.

Well my next choice would be MMC and XPM.
full member
Activity: 121
Merit: 100
Buy the way, did you manage to remove the coin creation from the transaction chart, as we talked about before ?

Ok.  I just did it and it was quite easy.  The coinbase transactions are now excluded from the Transactions chart.  I should have done it ages ago.  It really didn't make sense to count the coinbase transactions because the first chart which counts blocks is the same thing as the number of coinbase transactions.  It's much more interesting now.  As I update the different currencies on the site, it will gradually take affect.  Right now, I've only run it on Bitcoin.  To make the transition clear, the old chart is called "Transactions" and the new chart is called "Transactions (non coinbase)".  That way you know if it's applied to a particular currency yet.  Are there any currencies you want me to update first?
sr. member
Activity: 308
Merit: 250
You should add Netcoin Smiley
sr. member
Activity: 248
Merit: 251
Could you add MemoryCoin (MMC).

They used a bad parameter at the beginning which resulted in quite a big funny fluctuation, they then changed the algorithm, it's smooth now. Could be interesting.


Added MemoryCoin charts to the site:
http://cryptometer.org/memorycoin_96_hour_charts.html
http://cryptometer.org/memorycoin_90_day_charts.html

Yes, that's interesting.  You can see the fluctuation on the first chart.  I guess they hard-forked at Hour 71?  Sounds stressful!  I'm going to read that giant thread and see what parameter they changed.

Thanks, yes the fluctuation was stopping the mining due to high difficulty, FreeTrade applied this fix in just a few day, nice to him.

Buy the way, did you manage to remove the coin creation from the transaction chart, as we talked about before ?
full member
Activity: 168
Merit: 100
Awesome! Great info about Quark! Shows that it was never only mined by a few, and network strength was the about the same for months after release!
full member
Activity: 121
Merit: 100
Could you add MemoryCoin (MMC).

They used a bad parameter at the beginning which resulted in quite a big funny fluctuation, they then changed the algorithm, it's smooth now. Could be interesting.


Added MemoryCoin charts to the site:
http://cryptometer.org/memorycoin_96_hour_charts.html
http://cryptometer.org/memorycoin_90_day_charts.html

Yes, that's interesting.  You can see the fluctuation on the first chart.  I guess they hard-forked at Hour 71?  Sounds stressful!  I'm going to read that giant thread and see what parameter they changed.


I found the fix in github.  They replaced the entire algorithm.  It's not a simple parameter change.  I also compared the old algorithm in MemoryCoin with the current algorithms in Unobtanium and Zetacoin.  They are the same.  So that's the problem and how to fix it.

https://github.com/memorycoin/memorycoin/commit/05d26375cb17804bf2fa233678d0bb2dbea6321f

The old algorithm:
Code:
unsigned int static OldGetNextWorkRequired(const CBlockIndex* pindexLast, const CBlockHeader *pblock)
{
    unsigned int nProofOfWorkLimit = bnProofOfWorkLimit.GetCompact();

    // Genesis block
    if (pindexLast == NULL)
        return nProofOfWorkLimit;

    //Change difficulty every block based on the previous nInterval blocks

    //Timewarp bug fix
        // Go back the full period unless it's the first retarget after genesis. Code courtesy of Art Forz
     int nBlocksBack = nInterval-1;
    if((pindexLast->nHeight+1) != nInterval)
        nBlocksBack = nInterval;

     const CBlockIndex* pindexFirst = pindexLast;
    for (int i = 0; pindexFirst && i < nBlocksBack; i++)
         pindexFirst = pindexFirst->pprev;

     //assert(pindexFirst);
        if(pindexFirst==NULL){
        return nProofOfWorkLimit;
        }

    // Limit adjustment step
    int64 nActualTimespan = pindexLast->GetBlockTime() - pindexFirst->GetBlockTime();
    printf("  nActualTimespan = %"PRI64d"  before bounds\n", nActualTimespan);

    if (nActualTimespan < nTargetTimespan*0.8)
        nActualTimespan = nTargetTimespan*0.8;

    if (nActualTimespan > nTargetTimespan*1.2)
        nActualTimespan = nTargetTimespan*1.2;

    // Retarget
    CBigNum bnNew;
    bnNew.SetCompact(pindexLast->nBits);
    bnNew *= nActualTimespan;
    bnNew /= nTargetTimespan;

    if (bnNew > bnProofOfWorkLimit)
        bnNew = bnProofOfWorkLimit;

    /// debug print
    //printf("\n");
    printf("nTargetTimespan = %"PRI64d"    nActualTimespan = %"PRI64d"\n", nTargetTimespan, nActualTimespan);
    printf("Before: %08x  %s\n", pindexLast->nBits, CBigNum().SetCompact(pindexLast->nBits).getuint256().ToString().c_str());
    printf("GetNextWorkRequired RETARGET After:  %08x  %s\n", bnNew.GetCompact(), bnNew.getuint256().ToString().c_str());

    return bnNew.GetCompact();
}

The new algorithm:
Code:
unsigned int static KimotoGravityWell(const CBlockIndex* pindexLast, const CBlockHeader *pblock, uint64 TargetBlocksSpacingSeconds, uint64 PastBlocksMin, uint64 PastBlocksMax) {
    /* current difficulty formula, Anoncoin - 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();
}

unsigned int static NeoGetNextWorkRequired(const CBlockIndex* pindexLast, const CBlockHeader *pblock)
{
    static const int64 BlocksTargetSpacing = 6 * 60; // 6 minutes
    unsigned int TimeDaySeconds = 60 * 60 * 24;
    int64 PastSecondsMin = TimeDaySeconds*0.25;
    int64 PastSecondsMax = TimeDaySeconds*1;
    uint64 PastBlocksMin = PastSecondsMin / BlocksTargetSpacing;
    uint64 PastBlocksMax = PastSecondsMax / BlocksTargetSpacing;

    return KimotoGravityWell(pindexLast, pblock, BlocksTargetSpacing, PastBlocksMin, PastBlocksMax);
}

full member
Activity: 224
Merit: 100
MineCrew
You have a wonderful statistics. People don't speak about it. I'll just start to examine this site. Smiley Thanks.
Pages:
Jump to: