Post
Topic
Board Announcements (Altcoins)
Re: [ANN] AGAcoin (currency for the Amiga community and others) - Developers wanted!
by
Emerger
on 02/03/2018, 08:30:19 UTC
Looking in my last push i saw it will never change the diff, could somebody check if this look's good? it should be working after height 535020

Code:
// Limit adjustment step
    int64 nActualTimespan = pindexLast->GetBlockTime() - pindexFirst->GetBlockTime();
    printf("  nActualTimespan = %"PRI64d"  before bounds\n", nActualTimespan);
    if(pindexLast->nHeight+1 > 535020)
    {
     // From Digibyte to implement Digishield
        static const int64 nAveragingInterval = 10; // 10 blocks
        static const int64 nAveragingTargetTimespan = nAveragingInterval * nTargetSpacing; // *10        
        static const int64 nMaxAdjustDown = 16; // 16% adjustment down
        static const int64 nMaxAdjustUp = 8; // adjustment up
        
        static const int64 nMinActualTimespan = nAveragingTargetTimespan * (100 - nMaxAdjustUp) / 100;
        static const int64 nMaxActualTimespan = nAveragingTargetTimespan * (100 + nMaxAdjustDown) / 100;
        
        if (nActualTimespan < nMinActualTimespan)
            nActualTimespan = nMinActualTimespan;
        if (nActualTimespan > nMaxActualTimespan)
            nActualTimespan = nMaxActualTimespan;
    }
    else if(pindexLast->nHeight+1 > 10000)
    {
        if (nActualTimespan < nTargetTimespan/4)
            nActualTimespan = nTargetTimespan/4;
        if (nActualTimespan > nTargetTimespan*4)
            nActualTimespan = nTargetTimespan*4;
    }
    else if(pindexLast->nHeight+1 > 5000)
    {
        if (nActualTimespan < nTargetTimespan/8)
            nActualTimespan = nTargetTimespan/8;
        if (nActualTimespan > nTargetTimespan*4)
            nActualTimespan = nTargetTimespan*4;
    }
    else
    {
     if (nActualTimespan < nTargetTimespan/16)
            nActualTimespan = nTargetTimespan/16;
        if (nActualTimespan > nTargetTimespan*4)
            nActualTimespan = nTargetTimespan*4;
    }

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

    if (bnNew > bnProofOfWorkLimit)
        bnNew = bnProofOfWorkLimit;

Can these kinds of changes be made without causing a fork? I assumed we need to collect all changes into a new "major release" then get everybody (including the wallets run by any exchanges) to move to the new version ahead of time. Shouldn't there be a built-in block height a few weeks/months in the future at which time the new code changes become live, so we can make sure everyone has upgraded before then? If that's the case then I think we should only choose the specs like block time and difficulty adjustment after some agreement as to what the changes should be.

Also - since @sonountaleban has stated they left the AGAcoin project, I suggest everyone submit code changes to https://github.com/AGAcoin/amigacoin where we have set up the new GitHub Organization (If you need commit access just ask).