GoldenEye
|
|
August 10, 2016, 07:01:59 AM |
|
The POS Reward is currently complete wrong. Mojo V2 pays ~1,5% (should be:15%) but your 1,19 Mojo for 319K is a mystery. At 1.5% takes about 200 Mojo come as a result (319K 3 weeks). Your earnings for the 5000 Mojo are correct (1,5%). (Amount /2 =0,75%) Can you send me your debug.log?
Currently I've no debug log with coins staking. But it is full with entries like this: Hash() : min age violation 2016-08-10 06:13:48 BSDDev Min age violation : nTimeBlockFrom + nStakeMinAge)- nTimeTx =7104 2016-08-10 06:13:48 ERROR: CheckStakeKernelHash() : min age violation 2016-08-10 06:13:48 BSDDev Min age violation : nTimeBlockFrom + nStakeMinAge)- nTimeTx =7136 2016-08-10 06:13:48 ERROR: CheckStakeKernelHash() : min age violation 2016-08-10 06:13:48 BSDDev Min age violation : nTimeBlockFrom + nStakeMinAge)- nTimeTx =7136 2016-08-10 06:13:48 ERROR: CheckStakeKernelHash() : min age violation 2016-08-10 06:13:48 BSDDev Min age violation : nTimeBlockFrom + nStakeMinAge)- nTimeTx =8736 2016-08-10 06:13:48 ERROR: CheckStakeKernelHash() : min age violation 2016-08-10 06:13:48 BSDDev Min age violation : nTimeBlockFrom + nStakeMinAge)- nTimeTx =8736 2016-08-10 06:13:48 ERROR: CheckStakeKernelHash() : min age violation 2016-08-10 06:13:48 BSDDev Min age violation : nTimeBlockFrom + nStakeMinAge)- nTimeTx =7376 2016-08-10 06:13:48 ERROR: CheckStakeKernelHash() : min age violation 2016-08-10 06:13:48 BSDDev Min age violation : nTimeBlockFrom + nStakeMinAge)- nTimeTx =7376 2016-08-10 06:13:48 ERROR: CheckStakeKernelHash() : min age violation 2016-08-10 06:13:48 BSDDev Min age violation : nTimeBlockFrom + nStakeMinAge)- nTimeTx =7648 2016-08-10 06:13:48 ERROR: CheckStakeKernelHash() : min age violation 2016-08-10 06:13:48 BSDDev Min age violation : nTimeBlockFrom + nStakeMinAge)- nTimeTx =7648 2016-08-10 06:13:48 ERROR: CheckStakeKernelHash() : min age violation 2016-08-10 06:13:48 BSDDev Min age violation : nTimeBlockFrom + nStakeMinAge)- nTimeTx =8192 2016-08-10 06:13:48 ERROR: CheckStakeKernelHash() : min age violation 2016-08-10 06:13:48 BSDDev Min age violation : nTimeBlockFrom + nStakeMinAge)- nTimeTx =8192 2016-08-10 06:13:48 ERROR: CheckStakeKernelHash() : min age violation 2016-08-10 06:13:48 BSDDev Min age violation : nTimeBlockFrom + nStakeMinAge)- nTimeTx =10096 2016-08-10 06:13:48 ERROR: CheckStakeKernelHash() : min age violation 2016-08-10 06:13:48 BSDDev Min age violation : nTimeBlockFrom + nStakeMinAge)- nTimeTx =10800 2016-08-10 06:13:48 ERROR: CheckStakeKernelHash() : min age violation 2016-08-10 06:13:48 BSDDev Min age violation : nTimeBlockFrom + nStakeMinAge)- nTimeTx =10800 2016-08-10 06:13:48 ERROR: CheckStakeKernelHash() : min age violation 2016-08-10 06:13:48 BSDDev Min age violation : nTimeBlockFrom + nStakeMinAge)- nTimeTx =12064 2016-08-10 06:13:48 ERROR: CheckStakeKernelHash() : min age violation 2016-08-10 06:13:48 BSDDev Min age violation : nTimeBlockFrom + nStakeMinAge)- nTimeTx =12064 2016-08-10 06:13:48 ERROR: CheckStakeKernelHash() : min age violation
|
|
|
|
|
|
Make sure you back up your wallet regularly! Unlike a bank account, nobody can help you if you lose access to your BTC.
|
|
|
Advertised sites are not endorsed by the Bitcoin Forum. They may be unsafe, untrustworthy, or illegal in your jurisdiction.
|
|
|
|
Limx Dev
Copper Member
Legendary
Offline
Activity: 2324
Merit: 1348
|
|
August 10, 2016, 08:37:34 AM |
|
The POS Reward is currently complete wrong. Mojo V2 pays ~1,5% (should be:15%) but your 1,19 Mojo for 319K is a mystery. At 1.5% takes about 200 Mojo come as a result (319K 3 weeks). Your earnings for the 5000 Mojo are correct (1,5%). (Amount /2 =0,75%) Can you send me your debug.log?
Currently I've no debug log with coins staking. But it is full with entries like this: Hash() : min age violation 2016-08-10 06:13:48 BSDDev Min age violation : nTimeBlockFrom + nStakeMinAge)- nTimeTx =7104 2016-08-10 06:13:48 ERROR: CheckStakeKernelHash() : min age violation 2016-08-10 06:13:48 BSDDev Min age violation : nTimeBlockFrom + nStakeMinAge)- nTimeTx =7136 2016-08-10 06:13:48 ERROR: CheckStakeKernelHash() : min age violation 2016-08-10 06:13:48 BSDDev Min age violation : nTimeBlockFrom + nStakeMinAge)- nTimeTx =7136 2016-08-10 06:13:48 ERROR: CheckStakeKernelHash() : min age violation 2016-08-10 06:13:48 BSDDev Min age violation : nTimeBlockFrom + nStakeMinAge)- nTimeTx =8736 2016-08-10 06:13:48 ERROR: CheckStakeKernelHash() : min age violation 2016-08-10 06:13:48 BSDDev Min age violation : nTimeBlockFrom + nStakeMinAge)- nTimeTx =8736 2016-08-10 06:13:48 ERROR: CheckStakeKernelHash() : min age violation 2016-08-10 06:13:48 BSDDev Min age violation : nTimeBlockFrom + nStakeMinAge)- nTimeTx =7376 2016-08-10 06:13:48 ERROR: CheckStakeKernelHash() : min age violation 2016-08-10 06:13:48 BSDDev Min age violation : nTimeBlockFrom + nStakeMinAge)- nTimeTx =7376 2016-08-10 06:13:48 ERROR: CheckStakeKernelHash() : min age violation 2016-08-10 06:13:48 BSDDev Min age violation : nTimeBlockFrom + nStakeMinAge)- nTimeTx =7648 2016-08-10 06:13:48 ERROR: CheckStakeKernelHash() : min age violation 2016-08-10 06:13:48 BSDDev Min age violation : nTimeBlockFrom + nStakeMinAge)- nTimeTx =7648 2016-08-10 06:13:48 ERROR: CheckStakeKernelHash() : min age violation 2016-08-10 06:13:48 BSDDev Min age violation : nTimeBlockFrom + nStakeMinAge)- nTimeTx =8192 2016-08-10 06:13:48 ERROR: CheckStakeKernelHash() : min age violation 2016-08-10 06:13:48 BSDDev Min age violation : nTimeBlockFrom + nStakeMinAge)- nTimeTx =8192 2016-08-10 06:13:48 ERROR: CheckStakeKernelHash() : min age violation 2016-08-10 06:13:48 BSDDev Min age violation : nTimeBlockFrom + nStakeMinAge)- nTimeTx =10096 2016-08-10 06:13:48 ERROR: CheckStakeKernelHash() : min age violation 2016-08-10 06:13:48 BSDDev Min age violation : nTimeBlockFrom + nStakeMinAge)- nTimeTx =10800 2016-08-10 06:13:48 ERROR: CheckStakeKernelHash() : min age violation 2016-08-10 06:13:48 BSDDev Min age violation : nTimeBlockFrom + nStakeMinAge)- nTimeTx =10800 2016-08-10 06:13:48 ERROR: CheckStakeKernelHash() : min age violation 2016-08-10 06:13:48 BSDDev Min age violation : nTimeBlockFrom + nStakeMinAge)- nTimeTx =12064 2016-08-10 06:13:48 ERROR: CheckStakeKernelHash() : min age violation 2016-08-10 06:13:48 BSDDev Min age violation : nTimeBlockFrom + nStakeMinAge)- nTimeTx =12064 2016-08-10 06:13:48 ERROR: CheckStakeKernelHash() : min age violation
This is already fixed in the next version. It is only a protection function. The wallet trys to early to stake. You can ignore this message.
|
Bitcore BTX - a UTXO fork of Bitcoin - since 2017
|
|
|
|
Limx Dev
Copper Member
Legendary
Offline
Activity: 2324
Merit: 1348
|
|
August 10, 2016, 10:49:50 AM |
|
Get me your Debug please.
|
Bitcore BTX - a UTXO fork of Bitcoin - since 2017
|
|
|
GoldenEye
|
|
August 10, 2016, 11:43:46 AM |
|
Get me your Debug please. PM sent
|
|
|
|
drays
Legendary
Offline
Activity: 2520
Merit: 1073
|
|
August 10, 2016, 11:52:23 AM |
|
So what up with this? EBK1000, I have sent you a PM regarding the swap just before you temporarily disappeared from the forum. No answer received. Then I have PM-ed you once more lately, still nothing... I had an impression this is a solid project, and I was one of the initial investors. Was that impression wrong? I was a believer in you, and expressed my confidence in even when most folks were thinking you've gone for good. Because of this same reason, I was not checking the forum every day, having some confidence you'll answer when you come back, and hoping to get email notification in form of an answer. Should we really check forums every day to catch those swaps? So what? Are my MOJO's lost forever...? There was too much trust from my side..? Relax man, he prolly has like 200 pm's per day. I highly doubt he didn't respond on purpose, just overlooked. He is quite busy getting things back in order. So what is your exact question? You still need to swap out your V1 Mojo for V2 Mojo? If so then no problem, he has stated NUMEROUS times that he will do it. Just because he doesn't do it in the exact second you want him too, doesn't mean shit. Patience man. All is well. You will be taken care of. Nothing is lost. RELAX! I hope so... I understand the dev is busy as hell, but just a short approval notice (like yours for example) would do quite well... I really don't like getting no reply, especially from a person whom I consider to be reliable.
|
... this space is not for rent ...
|
|
|
FogHorn_LegHorn
|
|
August 10, 2016, 01:41:52 PM |
|
So what up with this? EBK1000, I have sent you a PM regarding the swap just before you temporarily disappeared from the forum. No answer received. Then I have PM-ed you once more lately, still nothing... I had an impression this is a solid project, and I was one of the initial investors. Was that impression wrong? I was a believer in you, and expressed my confidence in even when most folks were thinking you've gone for good. Because of this same reason, I was not checking the forum every day, having some confidence you'll answer when you come back, and hoping to get email notification in form of an answer. Should we really check forums every day to catch those swaps? So what? Are my MOJO's lost forever...? There was too much trust from my side..? Relax man, he prolly has like 200 pm's per day. I highly doubt he didn't respond on purpose, just overlooked. He is quite busy getting things back in order. So what is your exact question? You still need to swap out your V1 Mojo for V2 Mojo? If so then no problem, he has stated NUMEROUS times that he will do it. Just because he doesn't do it in the exact second you want him too, doesn't mean shit. Patience man. All is well. You will be taken care of. Nothing is lost. RELAX! I hope so... I understand the dev is busy as hell, but just a short approval notice (like yours for example) would do quite well... I really don't like getting no reply, especially from a person whom I consider to be reliable. Yes, he has had his questionable days for sure, but things are moving along so just hang tight. How many coins are you talking about? I could send you a few thousand if you wanted to play with the new wallet and all. At work now, but can do it this evening (6 hours or so). Lemme know.
|
|
|
|
drays
Legendary
Offline
Activity: 2520
Merit: 1073
|
|
August 10, 2016, 02:18:19 PM |
|
So what up with this? EBK1000, I have sent you a PM regarding the swap just before you temporarily disappeared from the forum. No answer received. Then I have PM-ed you once more lately, still nothing... I had an impression this is a solid project, and I was one of the initial investors. Was that impression wrong? I was a believer in you, and expressed my confidence in even when most folks were thinking you've gone for good. Because of this same reason, I was not checking the forum every day, having some confidence you'll answer when you come back, and hoping to get email notification in form of an answer. Should we really check forums every day to catch those swaps? So what? Are my MOJO's lost forever...? There was too much trust from my side..? Relax man, he prolly has like 200 pm's per day. I highly doubt he didn't respond on purpose, just overlooked. He is quite busy getting things back in order. So what is your exact question? You still need to swap out your V1 Mojo for V2 Mojo? If so then no problem, he has stated NUMEROUS times that he will do it. Just because he doesn't do it in the exact second you want him too, doesn't mean shit. Patience man. All is well. You will be taken care of. Nothing is lost. RELAX! I hope so... I understand the dev is busy as hell, but just a short approval notice (like yours for example) would do quite well... I really don't like getting no reply, especially from a person whom I consider to be reliable. Yes, he has had his questionable days for sure, but things are moving along so just hang tight. How many coins are you talking about? I could send you a few thousand if you wanted to play with the new wallet and all. At work now, but can do it this evening (6 hours or so). Lemme know. I don't have too many MOJOs, but its more than couple of thousands. Thanks a lot for the offer, I really appreciate it. I would prefer to wait for reply from EBK1000, anyway I am on MOJO for the long term, so no need to hurry, just want to be sure I would get my coins at some point. I would probably just mine some now, to see how thats working and to get some MOJOv2 meanwhile
|
... this space is not for rent ...
|
|
|
EBK1000 (OP)
Legendary
Offline
Activity: 1148
Merit: 1000
A Wound in Eternity
|
|
August 10, 2016, 02:50:03 PM |
|
We are working on a fix for the stake reward etc. and it shouldn't take too long. Just to let you know that I am off on a holiday for around 2-3 weeks so there may not be that many updates as I will only have my phone and may be off-line for periods of time. We expect to have something new out end of August. Hang in there...
|
Soooooooon...............
|
|
|
Anatoliyb50
|
|
August 10, 2016, 03:01:34 PM |
|
My wallet stopped at 47499 block yesterday. Masternod 0, 4 connections. What do?
|
|
|
|
GoldenEye
|
|
August 11, 2016, 09:39:02 AM |
|
We are working on a fix for the stake reward etc. and it shouldn't take too long. Just to let you know that I am off on a holiday for around 2-3 weeks so there may not be that many updates as I will only have my phone and may be off-line for periods of time. We expect to have something new out end of August. Hang in there...
The problem is the overflow in uint64 arithmetic, as already stated by r1d1: https://bitcointalk.org/index.php?topic=1366963.msg14459322;topicseen#msg14459322Example: I have 7,500 MOJO, 1.677 days old Staking reward was 0.0575693 MOJO See https://chainz.cryptoid.info/mojo/address.dws?MVtE3mm7wejMG2FoijgUPVfGNovcx9YhCr.htm : Block #49582 debug.log: 2016-08-11 00:26:04 Coinage 1257800000000 * nRewardCoinYear 15000000 = nSubsidy 11513860, COIN =100000000
CoinAge: 1257800000000 (= age in days * coins) (=1.677 days * 7,500 MOJO * 10^8) nRewardCoinYear : 15000000 (= 15%) nSubsidy : 11513860 (= calculated reward * 10^8) (= 0.11513860 MOJO) 50% of reward goes to MasterNode, 50% to me The belonging code you can find in main.cpp: int64_t GetProofOfStakeReward(const CBlockIndex* pindexPrev, int64_t nCoinAge, int64_t nFees, int64_t nValueOut = 0) { int64_t nRewardCoinYear = 1 * CENT; if (nValueOut > DARKSEND_POOL_MAX) { nRewardCoinYear = 15 * CENT; } else { if (pindexPrev->nHeight < 512000) nRewardCoinYear = 15 * CENT; if (pindexPrev->nHeight >= 512000 && pindexPrev->nHeight < 1025000) nRewardCoinYear = 10 * CENT; if (pindexPrev->nHeight >= 1025000 && pindexPrev->nHeight < 1537000) nRewardCoinYear = 5 * CENT; }
int64_t nSubsidy = nCoinAge * nRewardCoinYear / 365 / COIN; return nSubsidy + nFees; }
The reward should be : 1257800000000 * 15000000 / 365 / 100000000 = 516904109 (5.16904109 MOJO) and not 0.11513860 MOJO The problem? The first multiplication (1257800000000 * 15000000 = 18867000000000000000 = 0x1 05D50C89D14B8000) is greater then 2^64, the result is truncated to 0x05D50C89D14B8000 = 420255926290448384. 420255926290448384 / 365 / 100000000 = 11513860 which is the wrong result. Solution: as already stated by r1d1: change the multiplication to: int64_t nSubsidy = nCoinAge / COIN * nRewardCoinYear / 365; return nSubsidy + nFees;
|
|
|
|
Limx Dev
Copper Member
Legendary
Offline
Activity: 2324
Merit: 1348
|
|
August 11, 2016, 10:11:23 AM |
|
We are working on a fix for the stake reward etc. and it shouldn't take too long. Just to let you know that I am off on a holiday for around 2-3 weeks so there may not be that many updates as I will only have my phone and may be off-line for periods of time. We expect to have something new out end of August. Hang in there...
The problem is the overflow in uint64 arithmetic, as already stated by r1d1: https://bitcointalk.org/index.php?topic=1366963.msg14459322;topicseen#msg14459322Example: I have 7,500 MOJO, 1.677 days old Staking reward was 0.0575693 MOJO See https://chainz.cryptoid.info/mojo/address.dws?MVtE3mm7wejMG2FoijgUPVfGNovcx9YhCr.htm : Block #49582 debug.log: 2016-08-11 00:26:04 Coinage 1257800000000 * nRewardCoinYear 15000000 = nSubsidy 11513860, COIN =100000000
CoinAge: 1257800000000 (= age in days * coins) (=1.677 days * 7,500 MOJO * 10^8) nRewardCoinYear : 15000000 (= 15%) nSubsidy : 11513860 (= calculated reward * 10^8) (= 0.11513860 MOJO) 50% of reward goes to MasterNode, 50% to me The belonging code you can find in main.cpp: int64_t GetProofOfStakeReward(const CBlockIndex* pindexPrev, int64_t nCoinAge, int64_t nFees, int64_t nValueOut = 0) { int64_t nRewardCoinYear = 1 * CENT; if (nValueOut > DARKSEND_POOL_MAX) { nRewardCoinYear = 15 * CENT; } else { if (pindexPrev->nHeight < 512000) nRewardCoinYear = 15 * CENT; if (pindexPrev->nHeight >= 512000 && pindexPrev->nHeight < 1025000) nRewardCoinYear = 10 * CENT; if (pindexPrev->nHeight >= 1025000 && pindexPrev->nHeight < 1537000) nRewardCoinYear = 5 * CENT; }
int64_t nSubsidy = nCoinAge * nRewardCoinYear / 365 / COIN; return nSubsidy + nFees; }
The reward should be : 1257800000000 * 15000000 / 365 / 100000000 = 516904109 (5.16904109 MOJO) and not 0.11513860 MOJO The problem? The first multiplication (1257800000000 * 15000000 = 18867000000000000000 = 0x1 05D50C89D14B8000) is greater then 2^64, the result is truncated to 0x05D50C89D14B8000 = 420255926290448384. 420255926290448384 / 365 / 100000000 = 11513860 which is the wrong result. Solution: as already stated by r1d1: change the multiplication to: int64_t nSubsidy = nCoinAge / COIN * nRewardCoinYear / 365; return nSubsidy + nFees;
I agree! Good work
|
Bitcore BTX - a UTXO fork of Bitcoin - since 2017
|
|
|
Emerger
|
|
August 11, 2016, 10:29:21 AM |
|
Would correcting this require a hard fork, or can we re-compile safely now with the correction?
|
|
|
|
GoldenEye
|
|
August 11, 2016, 11:00:45 AM |
|
Is it intended that each staked block splits the coins in two equal parts?
|
|
|
|
Limx Dev
Copper Member
Legendary
Offline
Activity: 2324
Merit: 1348
|
|
August 11, 2016, 11:46:17 AM |
|
Would correcting this require a hard fork, or can we re-compile safely now with the correction?
The next update is in progress.
|
Bitcore BTX - a UTXO fork of Bitcoin - since 2017
|
|
|
klarki
Legendary
Offline
Activity: 3234
Merit: 3592
Top Crypto Casino
|
|
August 11, 2016, 06:44:03 PM |
|
Tell me please. There were old coins, can I exchange them for new MOJO? If yes, how?
|
|
|
|
starsnshamrocks
|
|
August 11, 2016, 09:45:38 PM |
|
Tell me please. There were old coins, can I exchange them for new MOJO? If yes, how?
Send a PN to the dev EBK1000 .. but he is currently on vacation.
|
|
|
|
GoldenEye
|
|
August 12, 2016, 06:37:17 AM |
|
Is it intended that each staked block splits the coins in two equal parts?
I see several problems, if this behavior is not changed. Halving coin blocks with each stake means: - blockchain bloat
- possibly disappearing of the coins after a sufficient number of stakes
The last point is not so far-fetched. Example: I have 1 MOJO which are staking. After the first round I have 2 x 0.5 MOJO, then 4 x 0.25 MOJO ... ... and after 27 rounds I have 134217728 x 0 MOJO (or whatever) If I had 100K MOJO at the beginning, it will take 20 stakes longer ==> if the coins remain untouched and staking in the wallet, there is a good chance the coins are dissolved after 1-2 months. ... and the network is dead I have not seen in the source codes and of course I don't know what will really happen. But I don't really want to try it ...
|
|
|
|
metamorphin
Legendary
Offline
Activity: 1106
Merit: 1004
No risk, no fun!
|
|
August 12, 2016, 07:09:38 AM |
|
Is it intended that each staked block splits the coins in two equal parts?
I see several problems, if this behavior is not changed. Halving coin blocks with each stake means: - blockchain bloat
- possibly disappearing of the coins after a sufficient number of stakes
The last point is not so far-fetched. Example: I have 1 MOJO which are staking. After the first round I have 2 x 0.5 MOJO, then 4 x 0.25 MOJO ... ... and after 27 rounds I have 134217728 x 0 MOJO (or whatever) If I had 100K MOJO at the beginning, it will take 20 stakes longer ==> if the coins remain untouched and staking in the wallet, there is a good chance the coins are dissolved after 1-2 months. ... and the network is dead I have not seen in the source codes and of course I don't know what will really happen. But I don't really want to try it ... If the code is well working, so it's not.possible to split to zero. Normally it will go back to one big pile. Almost all coins have this. Steve
|
|
|
|
GoldenEye
|
|
August 12, 2016, 07:25:58 AM |
|
If the code is well working, so it's not.possible to split to zero. Normally it will go back to one big pile. Almost all coins have this.
Steve
Good to hear this
|
|
|
|
|