Pages:
Author

Topic: DEAD - page 44. (Read 79202 times)

sr. member
Activity: 366
Merit: 250
March 07, 2015, 04:44:06 AM
So the stake reward is 100% per block now?  Grin
member
Activity: 116
Merit: 10
March 07, 2015, 04:43:11 AM
So the stake reward is 100% per block now?  Grin
sr. member
Activity: 366
Merit: 250
March 07, 2015, 04:38:17 AM
Hello Intellect community
PoS works great. I contacted C-CEX and BitTrex to update wallets. Waiting for an answer.







member
Activity: 116
Merit: 10
March 07, 2015, 04:16:54 AM
And got results:
Code:
nSubsidy1 = -10780497
nSubsidy2 = 1000000000


Guess the GC code had an integer overflow in it  Wink Like I explained, this is what happens when you use too much math and go over a 9 quintillion satoshi calculation. That's 9 with 18 zeroes. Although that's pretty hard to believe, apparently it's happening on multiple coins now too. Surprise!

*sets off fireworks*

Coins ops are the worst programmers.  Kiss

Satoshi didn't expect such calculations  Wink

I'm sure he did. That's what a debugger is for. Although no one could stand looking at his code until about 2000 people got their hands on it and made it actually human readable. I'm sure he didn't depend on doing calculations in the quintillions though, because he knows his math.
newbie
Activity: 6
Merit: 0
March 07, 2015, 04:04:31 AM
And got results:
Code:
nSubsidy1 = -10780497
nSubsidy2 = 1000000000


Guess the GC code had an integer overflow in it  Wink Like I explained, this is what happens when you use too much math and go over a 9 quintillion satoshi calculation. That's 9 with 18 zeroes. Although that's pretty hard to believe, apparently it's happening on multiple coins now too. Surprise!

*sets off fireworks*

Coins ops are the worst programmers.  Kiss

Satoshi didn't expect such calculations  Wink
member
Activity: 116
Merit: 10
March 07, 2015, 03:03:58 AM
And got results:
Code:
nSubsidy1 = -10780497
nSubsidy2 = 1000000000


Guess the GC code had an integer overflow in it  Wink Like I explained, this is what happens when you use too much math and go over a 9 quintillion satoshi calculation. That's 9 with 18 zeroes. Although that's pretty hard to believe, apparently it's happening on multiple coins now too. Surprise!

*sets off fireworks*

Coins ops are the worst programmers.  Kiss


Edit: Or not. The two examples you put on the bottom of the quote did not match what you put in code. However, the existing code might not be fit for a large pile of coin. Or any amount. Who knows apparently  Tongue
member
Activity: 116
Merit: 10
March 07, 2015, 03:01:00 AM
The staking rewards are broken. However, if you lock your wallet, your coins will keep age. Trusting the algorithm stays the same, you will have earned just as much, by stopping now and contining after the fork, and fractions less if you continue to stake.
legendary
Activity: 1120
Merit: 1004
March 07, 2015, 02:25:35 AM
How much time need I to wait before my coins get matures ?
hero member
Activity: 588
Merit: 500
March 07, 2015, 02:23:11 AM
So can we stake it now? should i split them on small amount to get better stake?
newbie
Activity: 6
Merit: 0
March 07, 2015, 01:19:07 AM
That's not the issue. The value is to be returned in satoshis (multiplied by COIN). I thought I made that perfectly clear.
So, is nSubsidy1 and nSubsidy2 equal?

Can't tell if trolling or you can't figure it out =p

int64_t nRewardCoinYear;
nRewardCoinYear = MAX_MINT_PROOF_OF_STAKE; // 36.5 * COIN (main.h)
int64_t nCoinAge = 100 * COIN * 1;
int64_t nSubsidy = nCoinAge * nRewardCoinYear / 365 / COIN;

nSubsidy = 100 * COIN * 1 * 36.5 * COIN / 365 / COIN;
nSubsidy = 100 * COIN * 1 * 36.5 / 365;

Is it correct? Value is multiplied by COIN? nSubsidy in satoshi format?

ps
So, is nSubsidy1 and nSubsidy2 equal?

Sorry, thought you were totally trolling before. Yes, the bottom two nSubsidy are equal.

Thanks.
I wrote a little code to check it:
Code:
#include 

#ifndef WIN32
#include
#endif

int main(void) {
    int64_t COIN = 100000000;
    int64_t MAX_MINT_PROOF_OF_STAKE = 36.5 * COIN;
    int64_t nCoinAge = 100 * COIN * 1; // actually 100 coins one day aged
    int64_t nRewardCoinYear = MAX_MINT_PROOF_OF_STAKE;

    int64_t nSubsidy1 = nCoinAge * nRewardCoinYear / 365 / COIN;
    int64_t nSubsidy2 = nCoinAge / COIN * nRewardCoinYear / 365;

    printf("nSubsidy1= %ld\n", nSubsidy1);
    printf("nSubsidy2= %ld\n", nSubsidy2);
}

And got results:
Code:
nSubsidy1 = -10780497
nSubsidy2 = 1000000000

So, results are equal for human, but computer thinks different )

Quote from: tryphe
In the first statement(one above the bottom) the earlier *COIN will be "reversed" by the later /COIN. But there's no reason to have that many operations. nSubsidy is the satoshi value of the block, so since age is the only real factor here. Usually (for neatness and speed) you want to convert to satoshis last and not keep switching between 1s(coin) and 10,000,000s(satoshi). You want something neat and readable like this:

Code:
const int64_t MAX_PROOF_OF_STAKE_DAILY_DIVISOR = 10; // 10% daily
nSubsidy = nCoinAge / MAX_PROOF_OF_STAKE_DAILY_DIVISOR * COIN;

Dividing by 10 is an easy way to multiply by 0.1 (daily age modifier towards reward) and to avoid using floating points. Then you multiply by COIN to calculate the satoshi value. This is actually exactly the same math as the existing algorithmn, but simplified, and another *COIN added. Here is the original logic and why we are dividing by 10:

nRewardCoinYear / 365 / COIN  ==  36.5 * COIN / 365 / COIN  ==  0.1

There is NO need to do all of those operations other than if you're reading the code and have no idea what the 0.1 value means, or if you are trying to do math in years instead of days, like above. Now it looks pretty retarded, doesn't it?

Keep in mind that's untested so definitely don't use that until you test it, and it might be missing something(I'm sure it is) Smiley

Hope that makes a bit more sense.

Sure.
newbie
Activity: 56
Merit: 0
March 07, 2015, 12:16:11 AM
You can try this to make the interest rate higher with hard fork at block 15000

change this in main.cpp
Code:
// miner's coin stake reward based on coin age spent (coin-days)
int64_t GetProofOfStakeReward(int64_t nCoinAge, int64_t nFees)
{
int64_t nRewardCoinYear;
nRewardCoinYear = MAX_MINT_PROOF_OF_STAKE;
int64_t nSubsidy = nCoinAge * nRewardCoinYear / 365 / COIN;
if (fDebug && GetBoolArg("-printcreation"))
printf("GetProofOfStakeReward(): create=%s nCoinAge=%"PRId64"\n", FormatMoney(nSubsidy).c_str(), nCoinAge);
return nSubsidy + nFees;
}
to this
Code:
// miner's coin stake reward based on coin age spent (coin-days)
int64_t GetProofOfStakeReward(int64_t nCoinAge, int64_t nFees)
{
int64_t nRewardCoinYear;
nRewardCoinYear = MAX_MINT_PROOF_OF_STAKE;
int64_t biginterest;
biginterest = BIG_INTEREST;

if(pindexBest->nHeight > 15000)
{
int64_t nSubsidy = nCoinAge * biginterest * 33 / (365 * 33 + 8);
}
else
{
int64_t nSubsidy = nCoinAge * nRewardCoinYear / 365 / COIN;
}
if (fDebug && GetBoolArg("-printcreation"))
printf("GetProofOfStakeReward(): create=%s nCoinAge=%"PRId64"\n", FormatMoney(nSubsidy).c_str(), nCoinAge);
return nSubsidy + nFees;
}

and put this in main.h where the other static const int64_t are defined. put it under them.
Code:
static const int64_t BIG_INTEREST = 3650 * CENT; // 3650% per year

member
Activity: 116
Merit: 10
March 07, 2015, 12:03:44 AM
That's not the issue. The value is to be returned in satoshis (multiplied by COIN). I thought I made that perfectly clear.
So, is nSubsidy1 and nSubsidy2 equal?

Can't tell if trolling or you can't figure it out =p

int64_t nRewardCoinYear;
nRewardCoinYear = MAX_MINT_PROOF_OF_STAKE; // 36.5 * COIN (main.h)
int64_t nCoinAge = 100 * COIN * 1;
int64_t nSubsidy = nCoinAge * nRewardCoinYear / 365 / COIN;

nSubsidy = 100 * COIN * 1 * 36.5 * COIN / 365 / COIN;
nSubsidy = 100 * COIN * 1 * 36.5 / 365;

Is it correct? Value is multiplied by COIN? nSubsidy in satoshi format?

ps
So, is nSubsidy1 and nSubsidy2 equal?

Sorry, thought you were totally trolling before. Yes, the bottom two nSubsidy are equal. In the first statement(one above the bottom) the earlier *COIN will be "reversed" by the later /COIN. But there's no reason to have that many operations. nSubsidy is the satoshi value of the block, so since age is the only real factor here(for this coin at least), I'll leave it really simple. Usually (for neatness and speed) you want to convert to satoshis last and not keep switching between 1s(coin) and 10,000,000s(satoshi). You want something neat and readable like this:

Code:
const int64_t MAX_PROOF_OF_STAKE_DAILY_DIVISOR = 10; // 10% daily
nSubsidy = nCoinAge / MAX_PROOF_OF_STAKE_DAILY_DIVISOR * COIN;

Dividing by 10 is an easy way to multiply by 0.1 (daily age modifier towards reward) and to avoid using floating points. Then you multiply by COIN to calculate the satoshi value. This is actually exactly the same math as the existing algorithmn, but simplified, and another *COIN added. Here is the original logic and why we are dividing by 10:

nRewardCoinYear / 365 / COIN  ==  36.5 * COIN / 365 / COIN  ==  0.1

There is NO need to do all of those operations other than if you're reading the code and have no idea what the 0.1 value means, or if you are trying to do math in years instead of days, like above. Now it looks pretty retarded, doesn't it?

Keep in mind that's untested so definitely don't use that until you test it, and it might be missing something(I'm sure it is) Smiley

Hope that makes a bit more sense.


legendary
Activity: 1848
Merit: 1000
March 06, 2015, 10:32:40 PM
Just come back to check on thread, it is kind of embarrassing, if you invest you win you lose, if things don't work out then it really is just one of those things, the state of altcoins over recent months is shameful, lots of scams breed no confidence in coins that have credence, for example Sapience is a coin which I am in and am enthusiastic about as it has some legitimacy behind it and "could" be a game changer, ILT however was always a gamble, at the moment POS is not working for those that thought it would grant them 10% daily reward but it is working so you have the option of either sticking with it or getting out.  All these stupid posts are not doing anything apart from wasting people's time, if you are unhappy then sell, if you have sold then why are you even interested, if you are still a holder then hold, go with what you think but let's be grown up and stop all this childish foolishness, it's just embarrassing!
hero member
Activity: 630
Merit: 505
March 06, 2015, 10:15:00 PM
legendary
Activity: 1672
Merit: 1046
Here we go again
March 06, 2015, 08:51:17 PM
the amount of stupidity in this thread is more impressive then the coin



well lets hope so...

hero member
Activity: 574
Merit: 500
March 06, 2015, 08:45:35 PM
shadow runner = scam

I'm a project of CIA.  Cool
legendary
Activity: 1610
Merit: 1000
Crackpot Idealist
March 06, 2015, 08:44:34 PM
the amount of stupidity in this thread is more impressive then the coin
legendary
Activity: 1806
Merit: 1828
March 06, 2015, 08:42:52 PM
Fiat = scam. Better go buy some gold.

Gold is overpriced scam  Cheesy

Try silver then. Cheesy Or aluminum.
newbie
Activity: 17
Merit: 0
March 06, 2015, 08:42:25 PM
Fiat = scam. Better go buy some gold.

Gold is overpriced scam  Cheesy

shadow runner = scam
hero member
Activity: 574
Merit: 500
March 06, 2015, 08:37:05 PM
Fiat = scam. Better go buy some gold.

Gold is overpriced scam  Cheesy
Pages:
Jump to: