Author

Topic: [ANN] [MΣC] Megacoin.co.nz - Forum, Github, Website Now in 18 Languages - page 183. (Read 330752 times)

sr. member
Activity: 325
Merit: 250
MultiPool

They have a dedicated port just for MEC.


stratum+tcp://pool1.us.multipool.in:3348
member
Activity: 98
Merit: 10
What pool are you using?

I can throw 650 Kh/s at it, all I have right now.
sr. member
Activity: 325
Merit: 250
I think Alein is right.  I am moving my available miners to MEC now.  Network hash rate 40mhash and growing and difficulty is dropping.
hero member
Activity: 490
Merit: 500
The Murraycoin Project ▪ Lead Developer
A L I E N -- that's my entire point. I'm not saying anything has changed...I'm saying something needs to change. This is going to continue to happen with every reward reduction and, while a hard-fork during the downtime could be used to correct it, why not fix the formula before that happens? If 5 MH/s was the network total, it would take 3-4 months to get the difficulty down low enough that the coin becomes attractive to start mining again. Who is going to sit there throwing 5 MH/s for months into a coin that may not even see the light of day again? Like I said...you downplay the situation...yet you aren't mining the coin for the same reason almost nobody else is. I mined it for 2 days trying to help out before I realized I was pretty much alone on the network! Next time, there is no way I would dedicate that much hash power to a losing venture. It was a thankless job and I lost out on a lot of profit elsewhere because I stayed dedicated to pushing Megacoin forward. Realizing nobody seemed to really care (nor willing to contribute help) after I posted about it was all I needed to see to walk away. These situations compromise the integrity of the network...and there are far too many alternative currencies out there to expect people to remain interested in one that is flawed in its design (or at least flawed due to the current state of the alt-coin community.)

We can see the difficulty starting to adjust now...I'm just saying I wouldn't count on this much hash power being thrown into the ring next time this happens (which is going to be in 30 days.) Lets get the formula corrected BEFORE we have this problem again.

This just isn't the proper way to adjust difficulty for coins these days -- there are too many other coins to mine. Combined with the multiple reward reductions, it obviously needs to change.
legendary
Activity: 1358
Merit: 1000
I understand the concerns with the way Megacoin's difficulty algorithm has handle the sudden drop in hash rate following the halving of the block reward.  This is a valid concern and Kimoto may need to make some alterations to it.  However, the difficulty adjustment design has not changed with the update nor is it doing anything now that it wasn't intended to do.  It is taking longer to adjust because the hash rate is much lower than it has been recently.  I have witnessed a number of coins get permanently stuck on high diffs, requiring them to hard fork just to survive.  This is not the case with Megacoin.  Someone with 5mh/s can clear this problem in a few days (which is happening).  That said, anyone willing to help out shellburner is welcome to do so or at least thank him. https://www.multipool.in/stats.php?curr=mec
legendary
Activity: 2674
Merit: 2965
Terminated.
hopefully kimoto will check it out soon, the difficulty used to retarget very well before.
He's MIA for a few days afaik, according to this thread where he usually posts.
sr. member
Activity: 325
Merit: 250
Thought:  The reward change shouldn't change the difficulty or have any effect to it.  That should not be a factor.. I think it more has to do with the multipool spikes.  

Multipool killed LuckyCoin in a different way, the difficulty code is based on a retarget of 4 hours in (block time).  However, as soon as the difficulty drops and gets hit by multipool, it shoots up high and gets stuck there for days because it says that long to mine 240 blocks.  

This really seems similar.  
hero member
Activity: 518
Merit: 500
hopefully kimoto will check it out soon, the difficulty used to retarget very well before.
sr. member
Activity: 325
Merit: 250


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

    #define WINDOW 144
    static double kOne = 1.0;
    static double kTwoToTheThirtyOne = double(2147483648);
    static double kGain = 0.025;
    static double kLimiterUp = 1.055;
    static double kLimiterDown = double(200) / double(211);
    static double kTargetInterval = double(nTargetSpacing);
    static int32_t kFilterCoeff[WINDOW] = {
         -845859,  -459003,  -573589,  -703227,  -848199, -1008841,
        -1183669, -1372046, -1573247, -1787578, -2011503, -2243311,
        -2482346, -2723079, -2964681, -3202200, -3432186, -3650186,
        -3851924, -4032122, -4185340, -4306430, -4389146, -4427786,
        -4416716, -4349289, -4220031, -4022692, -3751740, -3401468,
        -2966915, -2443070, -1825548, -1110759,  -295281,   623307,
         1646668,  2775970,  4011152,  5351560,  6795424,  8340274,
         9982332, 11717130, 13539111, 15441640, 17417389, 19457954,
        21554056, 23695744, 25872220, 28072119, 30283431, 32493814,
        34690317, 36859911, 38989360, 41065293, 43074548, 45004087,
        46841170, 48573558, 50189545, 51678076, 53028839, 54232505,
        55280554, 56165609, 56881415, 57422788, 57785876, 57968085,
        57968084, 57785876, 57422788, 56881415, 56165609, 55280554,
        54232505, 53028839, 51678076, 50189545, 48573558, 46841170,
        45004087, 43074548, 41065293, 38989360, 36859911, 34690317,
        32493814, 30283431, 28072119, 25872220, 23695744, 21554057,
        19457953, 17417389, 15441640, 13539111, 11717130,  9982332,
         8340274,  6795424,  5351560,  4011152,  2775970,  1646668,
          623307,  -295281, -1110759, -1825548, -2443070, -2966915,
        -3401468, -3751740, -4022692, -4220031, -4349289, -4416715,
        -4427787, -4389146, -4306430, -4185340, -4032122, -3851924,
        -3650186, -3432186, -3202200, -2964681, -2723079, -2482346,
        -2243311, -2011503, -1787578, -1573247, -1372046, -1183669,
        -1008841,  -848199,  -703227,  -573589,  -459003,  -845858
    };

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

    bool fUseFilter =
         (fTestNet && pindexLast->nHeight>=(DIFF_FILTER_THRESHOLD_TESTNET-1)) ||
        (!fTestNet && pindexLast->nHeight>=(DIFF_FILTER_THRESHOLD-1));

    int64 nInterval       = nFilteredInterval;
    int64 nTargetTimespan = nFilteredTargetTimespan;
    if ( !fUseFilter ) {
        nInterval       = nOriginalInterval;
        nTargetTimespan = nOriginalTargetTimespan;
    }

    // Only change once per interval
    if (  (fUseFilter && (pindexLast->nHeight+1) % nInterval != 0) ||
         (!fUseFilter && (pindexLast->nHeight+1) % 2016 != 0))
    {
        // Special difficulty rule for testnet:
        if (fTestNet)
        {
            // If the new block's timestamp is more than 2* 10 minutes
            // then allow mining of a min-difficulty block.
            if (pblock->nTime > pindexLast->nTime + nTargetSpacing*2)
                return nProofOfWorkLimit;
            else
            {
                // Return the last non-special-min-difficulty-rules-block
                const CBlockIndex* pindex = pindexLast;
                while (pindex->pprev && pindex->nHeight % nInterval != 0 && pindex->nBits == nProofOfWorkLimit)
                    pindex = pindex->pprev;
                return pindex->nBits;
            }
        }

        return pindexLast->nBits;
    }

    double dAdjustmentFactor;

    if ( fUseFilter ) {
        int32_t vTimeDelta[WINDOW];

        size_t idx = 0;
        const CBlockIndex *pitr = pindexLast;
        for ( ; idx!=WINDOW && pitr && pitr->pprev; ++idx, pitr=pitr->pprev )
            vTimeDelta[idx] = (int32_t)(pitr->GetBlockTime() - pitr->pprev->GetBlockTime());
        for ( ; idx!=WINDOW; ++idx )
            vTimeDelta[idx] = (int32_t)nTargetSpacing;

        int64_t vFilteredTime = 0;
        for ( idx=0; idx            vFilteredTime += (int64_t)kFilterCoeff[idx] * (int64_t)vTimeDelta[idx];
        double dFilteredInterval = double(vFilteredTime) / kTwoToTheThirtyOne;

        dAdjustmentFactor = kOne - kGain * (dFilteredInterval - kTargetInterval) / kTargetInterval;
        if ( dAdjustmentFactor > kLimiterUp ) {
            dAdjustmentFactor = kLimiterUp;
}
        else if ( dAdjustmentFactor < kLimiterDown ) {
            dAdjustmentFactor = kLimiterDown;
}
    } else {
        // This fixes an issue where a 51% attack can change difficulty at will.
        // Go back the full period unless it's the first retarget after genesis.
        // Code courtesy of Art Forz
        int blockstogoback = nInterval-1;
        if ((pindexLast->nHeight+1) != nInterval)
            blockstogoback = nInterval;

        // Go back by what we want to be 14 days worth of blocks
        const CBlockIndex* pindexFirst = pindexLast;
        for (int i = 0; pindexFirst && i < blockstogoback; i++)
            pindexFirst = pindexFirst->pprev;
        assert(pindexFirst);

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

        dAdjustmentFactor = double(nTargetTimespan) /
                            double(nActualTimespan);
    }

    // Retarget
    CBigNum bnNew;
    bnNew.SetCompact(pindexLast->nBits);

int64 dAdjustmentFactorNumerator;
int64 dAdjustmentFactorDenominator;
DoubleToNumeratorDenominator(dAdjustmentFactor, &dAdjustmentFactorNumerator, &dAdjustmentFactorDenominator);
    bnNew *= dAdjustmentFactorDenominator;
    bnNew /= dAdjustmentFactorNumerator;

    if (bnNew > bnProofOfWorkLimit)
        bnNew = bnProofOfWorkLimit;

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

    return bnNew.GetCompact();
}
sr. member
Activity: 325
Merit: 250
Plus the difficulty code should be the same still.  I may be wrong on that, but I thought changing the difficulty code required a hard fork.
sr. member
Activity: 325
Merit: 250
It says modified 7/24?  All of the files are from that day as well.  Was it just put up late?
member
Activity: 98
Merit: 10

That is the old source, new source is nowhere to be found.
sr. member
Activity: 325
Merit: 250
legendary
Activity: 2674
Merit: 2965
Terminated.
Yeah, somethings off since the block reward halve.

This is a graph of multipool.in hashrate with megacoins difficulty in green.

This graph doesn't show the total megacoin network speed, but it fell from 1040M to 200M once multipool left, then down to 40M over the next day.

You can see it was fairly responsive to the drops in network hashing speed before block 42000.


There's definently something wrong here, need Kimoto to check it out and fix it, else MEC will have a very bad time, hashrate will keep dropping :/
member
Activity: 73
Merit: 10
Yeah, somethings off since the block reward halve.

This is a graph of multipool.in hashrate with megacoins difficulty in green.

This graph doesn't show the total megacoin network speed, but it fell from 1040M to 200M once multipool left, then down to 40M over the next day.

You can see it was fairly responsive to the drops in network hashing speed before block 42000.

hero member
Activity: 490
Merit: 500
The Murraycoin Project ▪ Lead Developer
The point is simple, A L I E N: this situation could have literally killed Megacoin. I'll bet you aren't mining Megacoin right now, are you? The only reason it will pull through is because idiots like myself kept mining it solely to keep Megacoin alive. After the next reward reduction, these people might be less generous (or more wise.) This thing has been stuck for 2 1/2 days now -- that's ridiculous. That is an eternity in the alt-coin world when we have new alt-coins popping up daily and a growing number of people mining faceless coins in multipools thinking it will maximize their profits. I've already taken advantage of the panic-sells -- I've amassed hundreds of thousands of MΣC during this downtime and would surely make a profit once things started rolling again if I chose to sell. The issue is that I'm not collecting them to make a quick buck -- I want to hang onto them or spend them but not trade them. However, if this difficulty issue isn't addressed before the next reward reduction (30 days after this ship starts sailing again), it could literally be the end of Megacoin and I'd be stuck with a bunch of worthless coins. Clearly you don't know what you are talking about...and unless you are mining the coin yourself right now, in the face of losing money, you can't possibly tell me you don't understand how this formula could kill this currency. Everyone can't stand back and mine Bottlecaps and Fartcoins while MΣC isn't profitable and expect everything to move forward -- people have to give in for the good of the network (or slip into a coma while mining Megacoins at full power) to push things along. Is that going to be you? Based on your response alone, it's clear it won't be. There is a flaw in the logic here -- this retarget formula needs to be adjusted before I can be comfortable holding a large amount of Megacoins into the next reward reduction.

I will browse through it and see if I can piece it together. With most coins these days, the retarget strategy is provided by default. I had 33 MH/s - 35 MH/s going into Megacoin nonstop for approximately the past 12 days (until early this morning.) Since the reward was halved, my take has actually quartered (almost exactly) which is pretty crazy/senseless in itself. When you add the drop in market value to the equation, my actual profit per hash was roughly cut down to 1/7 the size since the reward adjustment. This could simply be bad luck...and obviously the market value is bound to fluctuate (especially with the panic-sellers in this situation) but, with the power cost factored in, I was actually losing money mining Megacoin (based on MΣC:BTC value, anyway.) I continued only because I figured the new difficulty was just around the corner after every retarget (which it never was) and I wanted to help push this thing out of the rut it had landed in to get it back on track. I could have mined something else (anything, really) and traded it in for MΣC instead of mining it directly and I'd have about 5 times as much MΣC right now. I chose not to do this in best interest of the future of Megacoin. Obviously I should have dug into things further before I committed...but I would have never guessed the retarget formula would be this poorly designed (especially considering the numerous initial reward reductions -- how did the dev(s) not see this coming?)

Regardless of my hash rate, lets look at the more generalized situation. In the past, Megacoin hash rate fluctuations were pretty clearly reflected in the difficulty after each 10-block retarget. With the network hash rate hovering around 1 GH/s shortly before the reward reduction, the difficulty peaked. Then, after the halving, hash rate rapidly dropped off over the next 30 blocks...and then tapered off even further over the next 60. Over the next 90 blocks...the hash rate averaged about 1/20th of where it peaked...yet through the next 9 "retargets" the difficulty barely changed. At this difficulty and this block reward you literally lose money mining Megacoin (unless you don't pay for power)...meaning nobody wants to mine this thing. Even if they have free power there are countless other coins with a return 5-6 times greater right now. Finally, after this most recent retarget, we're seeing a slight drop in difficulty. At this current pace (combined with the continuing reduction in hash rate) it's possible (although, not likely) that Megacoin will never recover from this. Either the value needs to spike...or the difficulty needs to start correcting more aggressively. Perhaps it will -- I'm not sure. It's just crazy that nobody can explain the formula and I have to go dig around through the source code to find it.

The bottom line is that this retarget formula is severely flawed and even if Megacoin survives this situation...there's another one right around the corner (every month until we hit the standard 25 coin blocks.) Perhaps the dev(s) underestimated miners' math skills or overestimated their devotion to Megacoin...but for such an aggressive string of reward reductions you'd think there would be an equally aggressive retarget formula to make it work. Nobody likes to lose money mining a coin! I want this thing back on track more than anyone...but even I had to throw in the towel after losing money for 48 straight hours. Had this been coded properly, the Megacoin network would be singing away right now instead of slowly crawling toward an uncertain future.
legendary
Activity: 1358
Merit: 1000
Man you guys, every other day someone is on here crying that the sky is falling.  The difficulty has peaked and will come down quickly going forward.  Take advantage of those panicking and get some at a discount because MEC's price will make new highs in the future.
member
Activity: 98
Merit: 10
"networkhashps" : 42104311

How much hash did you have?

How familiar are you with going through a source to find the difficulty calculation?
You can find the source here: http://www.megacoin.co.nz/downloads

I tried looking for it but I am seeing stuff for testnet, not sure if that would be the same code or not.

hero member
Activity: 490
Merit: 500
The Murraycoin Project ▪ Lead Developer
Just to update my previous post...the difficulty has managed to adjust by roughly 0.25. At this pace, Megacoin might not be profitable to mine again until Christmas...but at least we're seeing progress. I'm quite invested in this coin at this point so I'm just glad to see things moving in the right direction. I would definitely like to see the difficulty adjustment formula. I'm still trying to understand how a coin that is supposed to retarget every 10 blocks could maintain the same difficulty regardless of a 95% reduction in hashrate over the past 150 blocks.

As nobody really seems to be addressing (or even continuing to acknowledge) this issue, I'm assuming nobody really cares about Megacoin at this point. Unfortunate...but probably the smart choice for now. I only wish I would have done the same 2 1/2 days ago...and hopefully when this poorly-designed formula eventually trims the difficulty down to a reasonable level Megacoin will live on (or at least for another month until we have to do this all over again!) Perhaps somebody was mining Megacoins and died...so their miner is continuing to run? Lets keep our fingers crossed! Regardless, I pulled my miners off the Megacoin network and, despite making up the majority of the hash rate, the reported hash rate for Megacoin has remained essentially unchanged. This leads me to believe the numbers we're seeing there are quite inaccurate -- it's possible nobody is mining at all at this point.
hero member
Activity: 490
Merit: 500
The Murraycoin Project ▪ Lead Developer
Any idea when this difficulty is going to adjust? We're over 190 blocks into the 125s, I've wasted a ton of my hash power trying to push this thing forward, and I'm officially frustrated here. This has been the bumpiest reward reduction I have ever seen -- it has pushed one of the hottest coins to the brink of extinction in 48 hours. Nobody has the difficulty formula available to share?

I'm pulling my miners off Megacoin as soon as I finish breakfast (which make up about 80% of the current hash rate) -- it may be the nail in the coffin for Megacoin unless somebody else steps up to the plate willing to lose money pushing forward like I've been doing for over 2 days now. At some point you have to cut your losses and move along, I suppose.

It's just unfortunate how poorly thought out this transition was - what's the point of a 10-block retarget if it doesn't retarget when it needs to the most? This is stupidity - obviously hash rates will near max right before a reward halving...and they will obviously bottom out right after. Where is the logic in this formula? The scary part is there are plenty more reductions right around the corner.
Jump to: