Pages:
Author

Topic: GoldCoin™ (GLC) Thread - The Gold Standard of Digital Currency [OFFICIAL THREAD] - page 72. (Read 310011 times)

legendary
Activity: 910
Merit: 1000
well.. I restarted the gld.minepool.net pool up again and its hitting blocks.  We're still on the same chain as cryptsy.com too.   I set up a new goldcoin pool on another server and network here in hopes of getting some of the miners to disperse!
gld.cryptcoins.net

I'm assuming that if we don't spread out .. its all going to happen all over again...and it then seems to affect the whole hasing network overall, not just the one mining pool.
legendary
Activity: 910
Merit: 1000
Our pool got to over 200Mhs and had many problems.  Many successful blocks but now all orphans.
Perhaps this was a contribution to the coin's problem right now? It really needs ...something.  The 51% protection works i suppose since the pool became more than 51% of the mining (i'm guessing)  I don't know what to tell the miners now who are still miming.  Im going to shut it down soon to see what happens.   gld.minepool.net


Your pool never mined on the official chain.

You created a fork instantly and ran with it, hence all the orphans.


~BCX~

Not true.. it was on the same chain as cryptsy's client the whole time.  I did test transactions to cryptsy to check.


It was doing the same thing several other people's clients are doing. Hoping chains.

I'm not knocking GLD, quite the opposite.

Hope they get this solved.


~BCX~

That sounds about right.  I believe somehow the 51% attack defense eventually led to the pool forking.. maybe all of them.  Solo mining with only 1Mhs on a separate coin client.. i got the same thing.
legendary
Activity: 1210
Merit: 1024
Our pool got to over 200Mhs and had many problems.  Many successful blocks but now all orphans.
Perhaps this was a contribution to the coin's problem right now? It really needs ...something.  The 51% protection works i suppose since the pool became more than 51% of the mining (i'm guessing)  I don't know what to tell the miners now who are still miming.  Im going to shut it down soon to see what happens.   gld.minepool.net


Your pool never mined on the official chain.

You created a fork instantly and ran with it, hence all the orphans.


~BCX~

Not true.. it was on the same chain as cryptsy's client the whole time.  I did test transactions to cryptsy to check.


It was doing the same thing several other people's clients are doing. Hoping chains.

I'm not knocking GLD, quite the opposite.

Hope they get this solved.


~BCX~
legendary
Activity: 910
Merit: 1000
Our pool got to over 200Mhs and had many problems.  Many successful blocks but now all orphans.
Perhaps this was a contribution to the coin's problem right now? It really needs ...something.  The 51% protection works i suppose since the pool became more than 51% of the mining (i'm guessing)  I don't know what to tell the miners now who are still miming.  Im going to shut it down soon to see what happens.   gld.minepool.net


Your pool never mined on the official chain.

You created a fork instantly and ran with it, hence all the orphans.


~BCX~

Not true.. it was on the same chain as cryptsy's client the whole time.  I did test transactions to cryptsy to check.
member
Activity: 103
Merit: 10
The situation with the 51% defense is ridiculous. Not only this smartass algorithm prevents 51% attacks, it also prevents anyone from mining this coin! I'm "the little guy" here, too, with only 2 Mh/s. Now I can't mine solo (getting 100% rejects), and I can't mine on pools (getting almost 100% orphans). Maybe this new defense is really good in theory, but in practice it's just killing this coin. Devs, fix this ASAP because nobody's gonna mine GLD if they can't get any profit and just waste their electricity.
sr. member
Activity: 565
Merit: 316
I hate to say it but goldcoin was better without the new 51% defense. I don't want to waste power mining when I don't get anything for it. Nothing against the dev's or anything just my own opinion. just makes it really hard to mine legit wise.


Same thing over at Coinex


https://coinex.pw/mining/pools/GLD

Gold has left the building!
Please make your way slowly and orderly to another coin!
member
Activity: 103
Merit: 10
I hate to say it but goldcoin was better without the new 51% defense. I don't want to waste power mining when I don't get anything for it. Nothing against the dev's or anything just my own opinion. just makes it really hard to mine legit wise.
legendary
Activity: 1210
Merit: 1024
Our pool got to over 200Mhs and had many problems.  Many successful blocks but now all orphans.
Perhaps this was a contribution to the coin's problem right now? It really needs ...something.  The 51% protection works i suppose since the pool became more than 51% of the mining (i'm guessing)  I don't know what to tell the miners now who are still miming.  Im going to shut it down soon to see what happens.   gld.minepool.net


Your pool never mined on the official chain.

You created a fork instantly and ran with it, hence all the orphans.


~BCX~
legendary
Activity: 910
Merit: 1000
Our pool got to over 200Mhs and had many problems.  Many successful blocks but now all orphans.
Perhaps this was a contribution to the coin's problem right now? It really needs ...something.  The 51% protection works i suppose since the pool became more than 51% of the mining (i'm guessing)  I don't know what to tell the miners now who are still miming.  Im going to shut it down soon to see what happens.   gld.minepool.net
member
Activity: 103
Merit: 10
+++1 I love goldcoin but can't get it to mine and I am the little guy you speak of.
full member
Activity: 224
Merit: 100
DigiByte Founder
@MicroGuy or Akumaburn


You've definitely have some multiple forking issues going on.

I tried GLD (solo mining) for the first time, found 26 blocks and had 1170 GLD, some confirmed and some still immature when apparently the client re-synced with a rouge chain and wiped out the previous mined GLD. I think it is related to your 51% attack solution but can't say for sure as I haven't looked at the source or tested beyond my initial mining effort.

Also I tried initially mining at 10 mhs which isn't a significant amount for me. Until I dialed it back to 5 mhs, every block I found was rejected. I assume this is also an issue with your 51% solution. So in effect, the maximum any miner can mine with is less than 49% of nethash to keep from triggering the 5 blocks in 10 minutes trigger.  With these kinds of restrictions/issues and the nethash only at 16mhs, it's going to be very hard to increase the nethash to any appreciable rate.

Hope to see you fix this chain.


~BCX~


+1
++1
Just mined for a few hours. Kept watching my freshly minted GLD #'s roll backwards. Not Cool.
legendary
Activity: 1210
Merit: 1024
@MicroGuy or Akumaburn


You've definitely have some multiple forking issues going on.

I tried GLD (solo mining) for the first time, found 26 blocks and had 1170 GLD, some confirmed and some still immature when apparently the client re-synced with a rouge chain and wiped out the previous mined GLD. I think it is related to your 51% attack solution but can't say for sure as I haven't looked at the source or tested beyond my initial mining effort.

Also I tried initially mining at 10 mhs which isn't a significant amount for me. Until I dialed it back to 5 mhs, every block I found was rejected. I assume this is also an issue with your 51% solution. So in effect, the maximum any miner can mine with is less than 49% of nethash to keep from triggering the 5 blocks in 10 minutes trigger.  With these kinds of restrictions/issues and the nethash only at 16mhs, it's going to be very hard to increase the nethash to any appreciable rate.

Hope to see you fix this chain.


~BCX~

hero member
Activity: 708
Merit: 502
any way to mine? quit for another coins now (
hero member
Activity: 708
Merit: 502
That will be because your peers are still set to 45sec. nothing you can do about that except be selective about peers.


any way to detect what peers are good?
erk
hero member
Activity: 826
Merit: 500
can you upload wallet with 300 sec plz )
Thank you

No point, here are the results:

Standard 45 second wallet - orphan, orphan, orphan, orphan, orphan, orphan, orphan
Modified 300 second wallet - orphan, orphan, orphan, orphan, orphan, orphan, orphan
That will be because your peers are still set to 45sec. nothing you can do about that except be selective about peers.
sr. member
Activity: 420
Merit: 250
can you upload wallet with 300 sec plz )
Thank you

No point, here are the results:

Standard 45 second wallet - orphan, orphan, orphan, orphan, orphan, orphan, orphan
Modified 300 second wallet - orphan, orphan, orphan, orphan, orphan, orphan, orphan
hero member
Activity: 708
Merit: 502
I've made your suggested main.cpp change from 45 to 300 seconds, recompiled and restarted the wallet. I'll let you know if I see any better results Smiley

can you upload wallet with 300 sec plz )
Thank you
sr. member
Activity: 420
Merit: 250
I've made your suggested main.cpp change from 45 to 300 seconds, recompiled and restarted the wallet. I'll let you know if I see any better results Smiley
sr. member
Activity: 281
Merit: 250
The Gold Standard of Digital Currency.
Can we get a list of peer IP's that are known to be on the right time?

You can set your computer to the right time, but it doesn't mean your peers are when you try and send them a newly mined
 block, so you may still get an orphan even though you are on the correct time, just because your peers are not.




In util.cpp on line 1161 change


Code:
void SetMockTime(int64 nMockTimeIn)
{
    nMockTime = nMockTimeIn;
}

static int64 nTimeOffset = 0;

int64 GetAdjustedTime()
{
    return GetTime() + nTimeOffset;
}

void AddTimeData(const CNetAddr& ip, int64 nTime)
{
    int64 nOffsetSample = nTime - GetTime();

    // Ignore duplicates
    static set setKnown;
    if (!setKnown.insert(ip).second)
        return;

    // Add data
    vTimeOffsets.input(nOffsetSample);
    printf("Added time data, samples %d, offset %+"PRI64d" (%+"PRI64d" minutes)\n", vTimeOffsets.size(), nOffsetSample, nOffsetSample/60);
    if (vTimeOffsets.size() >= 5 && vTimeOffsets.size() % 2 == 1)
    {
        int64 nMedian = vTimeOffsets.median();
        std::vector vSorted = vTimeOffsets.sorted();
        // Only let other nodes change our time by so much
        if (abs64(nMedian) < 35 * 60) // GoldCoin (GLD): changed maximum adjust to 35 mins to avoid letting peers change our time too much in case of an attack.
        {
            nTimeOffset = nMedian;
        }
        else
        {
            nTimeOffset = 0;

            static bool fDone;
            if (!fDone)
            {
                // If nobody has a time different than ours but within 5 minutes of ours, give a warning
                bool fMatch = false;
                BOOST_FOREACH(int64 nOffset, vSorted)
                    if (nOffset != 0 && abs64(nOffset) < 5 * 60)
                        fMatch = true;

                if (!fMatch)
                {
                    fDone = true;
                    string strMessage = _("Warning: Please check that your computer's date and time are correct.  If your clock is wrong GoldCoin (GLD) will not work properly.");
                    strMiscWarning = strMessage;
                    printf("*** %s\n", strMessage.c_str());
                    uiInterface.ThreadSafeMessageBox(strMessage+" ", string("GoldCoin (GLD)"), CClientUIInterface::OK | CClientUIInterface::ICON_EXCLAMATION);
                }
            }
        }
        if (fDebug) {
            BOOST_FOREACH(int64 n, vSorted)
                printf("%+"PRI64d"  ", n);
            printf("|  ");
        }
        printf("nTimeOffset = %+"PRI64d"  (%+"PRI64d" minutes)\n", nTimeOffset, nTimeOffset/60);
    }
}




To

Code:
void SetMockTime(int64 nMockTimeIn)
{
    nMockTime = nMockTimeIn;
}

static int64 nTimeOffset = 0;

int64 GetAdjustedTime()
{
    return GetTime() + nTimeOffset;
}

void AddTimeData(const CNetAddr& ip, int64 nTime)
{
    int64 nOffsetSample = nTime - GetTime();

    // Ignore duplicates
    static set setKnown;
    if (!setKnown.insert(ip).second)
        return;

    // Add data
    vTimeOffsets.input(nOffsetSample);
    printf("Added time data, samples %d, offset %+"PRI64d" (%+"PRI64d" minutes)\n", vTimeOffsets.size(), nOffsetSample, nOffsetSample/60);
    if (vTimeOffsets.size() >= 5 && vTimeOffsets.size() % 2 == 1)
    {
        int64 nMedian = vTimeOffsets.median();
        std::vector vSorted = vTimeOffsets.sorted();
        // Only let other nodes change our time by so much
        if (abs64(nMedian) < 35 * 60) // GoldCoin (GLD): changed maximum adjust to 35 mins to avoid letting peers change our time too much in case of an attack.
        {
            nTimeOffset = nMedian;
        }
        else
        {
            nTimeOffset = 0;

            static bool fDone;
            if (!fDone)
            {
                // If nobody has a time different than ours but within 10 seconds of ours, give a warning
                bool fMatch = false;
                BOOST_FOREACH(int64 nOffset, vSorted)
                    if (nOffset != 0 && abs64(nOffset) < 10)
                        fMatch = true;

                if (!fMatch)
                {
                    fDone = true;
                    string strMessage = _("Warning: Please check that your computer's date and time are correct.  If your clock is wrong GoldCoin (GLD) will not work properly.");
                    strMiscWarning = strMessage;
                    printf("*** %s\n", strMessage.c_str());
                    uiInterface.ThreadSafeMessageBox(strMessage+" ", string("GoldCoin (GLD)"), CClientUIInterface::OK | CClientUIInterface::ICON_EXCLAMATION);
                }
            }
        }
        if (fDebug) {
            BOOST_FOREACH(int64 n, vSorted)
                printf("%+"PRI64d"  ", n);
            printf("|  ");
        }
        printf("nTimeOffset = %+"PRI64d"  (%+"PRI64d" minutes)\n", nTimeOffset, nTimeOffset/60);
    }
}
And recompile

This will warn you that your clock is off by too much in the debug file.

Alternatively you could try syncing with nist automatic time servers.

There is a small tutorial on how to do that here: https://www.gldtalk.org/index.php?topic=730.msg3863#msg3863
sr. member
Activity: 281
Merit: 250
The Gold Standard of Digital Currency.
I've been looking at my debug.log and see lots of this:

ERROR: CheckBlock() : block timestamp too far in the future
ERROR: ProcessBlock() : CheckBlock FAILED
GetNetworkHashPS(120)
GetTrueNetworkHashPS(120) - modified lookup
 best index = 114672
 difficulty = 0.435018
 hashrate for section: 14.901249 MH/s, time diff = 1385421655 min
 ====difficulty change at block 114660
 height = 114659, difficulty = 0.445892
 hashrate for section: 15.959102 MH/s, time diff = 1385414455 min
 ====difficulty change at block 114600
 height = 114599, difficulty = 0.457037
returning hashrate 241.250000 MH/s, lookup 15 (time difference = -0.0)

Ok so server time must be out of sync right? Well:

ntpdate pool.ntp.org
26 Nov 10:30:55 ntpdate[8366]: adjust time server 192.189.54.33 offset -0.102237 sec

0.1 seconds out of sync... umm does this time stuff cater for timezone?

The default maximum wait is 45 seconds, but you can extend this if you want to for optimal acceptance rate.

In main.cpp on lines 2094 to 2107

Code:
else if(QDateTime::fromTime_t(pindexBest->pprev->pprev->pprev->pprev->GetBlockTime()).secsTo(QDateTime::fromTime_t(GetBlockTime())) < (60*10 + 45) && hashPrevBlock == pindexBest->GetBlockHash()) {
//A valid block has been found but the current network adjusted time will not permit it to be accepted by other peers
//Thus we hold the block until GetAdjustedTime() is such that if(GetBlockTime() > GetAdjustedTime() + 45) is false
printf("Local has found possible valid block... queueing until timestamp is valid \n");
//Since we know that GetBlockTime() is greater than GetAdjustedTime()
//We sleep the difference
//Doesn't hurt to check twice
                                    if(GetBlockTime() > GetAdjustedTime() + 45)
                                    Sleep(1000*(GetBlockTime()-(GetAdjustedTime() + 45)));
/*while(GetBlockTime() > GetAdjustedTime() + 45) {
//We wait here..
}*/
}


Change (60*10 + 45) to (60*10 + X)

Where X is the maximum amount of time you'd like to hold a block.

And recompile.
Pages:
Jump to: