dreamwatcher



Offline



Activity: 1064

Merit: 1000







LegendaryActivity: 1064Merit: 1000 Re: [ANN][HYP] HyperStake | 750% PoS | MultiSend | liteStake | Stake Modes February 13, 2015, 01:27:31 AM #4161



Have the services that use/support Hyperstake been notified? I know I haven't, I only noticed it because it popped up in my reply post list.



Exchanges, explorers, gambling, etc etc?? All these services need time to get setup even after they are notified.



How many users are going to end up on a forked chain because they didn't happen to come to a forum where it has been announced in the last few hours?



I was hoping that this was really going to be a soft fork until I saw this in the code currently in github:



Code: if (pfrom->nVersion < 72099)

{

printf("partner %s using an old client %d, disconnecting

", pfrom->addr.ToString().c_str(), pfrom->nVersion);

pfrom->fDisconnect = true;

I hope it is for testing purposes, and you are not intending to truly block out version 72000 from the new client (In other words a true hard fork) in the next few hours or even days.



This has to be a misunderstanding on my part. When is the hard-fork actually going to be enforced?





Is there seriously going to be a true hard-fork with a few hours notice? If so, you are looking at a major train wreck.Have the services that use/support Hyperstake been notified? I know I haven't, I only noticed it because it popped up in my reply post list.Exchanges, explorers, gambling, etc etc?? All these services need time to get setup even after they are notified.How many users are going to end up on a forked chain because they didn't happen to come to a forum where it has been announced in the last few hours?I was hoping that this was really going to be a soft fork until I saw this in the code currently in github:I hope it is for testing purposes, and you are not intending to truly block out version 72000 from the new client (In other words a true hard fork) in the next few hours or even days.This has to be a misunderstanding on my part. When is the hard-fork actually going to be enforced?

presstab



Offline



Activity: 1330

Merit: 1000





Blockchain Developer







LegendaryActivity: 1330Merit: 1000Blockchain Developer Re: [ANN][HYP] HyperStake | 750% PoS | MultiSend | liteStake | Stake Modes February 13, 2015, 01:42:58 AM #4164 Quote from: iantunc on February 13, 2015, 12:05:00 AM Presstab, could you describe in two words, pls, the bug in PoS you have discovered, for those who's out of topic, in a non-tech way? To let them have an understanding of what is going on behind the scenes.



Every coin has a setting "timedrift". It is meant to allow nodes that are for one reason or another a bit out of sync with the median time, to be able to submit blocks and still be fine.



For example peercoin allows a time drift of 2 hours, and same with NovaCoin. HoboNickels, BottleCaps, HyperStake are all 15 minute timedrift allowance.



So when you are attempting to stake and meet the staking target, you create 60 hashes at once per UTXO if you are using standard peercoin hashing code. The only thing that changes from hash to hash is the input for time. It hashes 60 seconds into the future at once. This system works pretty good, and doesn't really have much problem.



The problem is that when you get someone that tweaks the code, and says "why not hash 2 hours into the future" I will have 7,200 hashes to attempt to stake instead of 60 hashes". So this code tweakers chance of staking is actually 11,900% more likely to hit a hash (did I do the math correctly? I think I did).



My original thinking, and the reason I released the beta release, was that if some code tweaker has that advantage, let us even the playing field and give it to everyone. And so I released that code.



What I failed to realize is that this would really screw up difficulty. Let's say the code tweaker above hashed two hours into the future, submitted the stake, and the network accepted it with no problems. The next block would calculate difficulty by taking that 2 hour future stake and subtracting the last time before that, calculating the time to stake as 2 hours between the two blocks. The difficulty code thinks that this means that people are having trouble staking, and the diff drops.



With the new HYP code, we got diff as low as 3 i think it was (from the 10+ that it had been before), made 1,975 blocks today (compared to the target of 960), and minted 1.8 million HYP compared to our targeted 960k max.



Hope that makes some sense. Running the new code on a test network and should have it out soon. Every coin has a setting "timedrift". It is meant to allow nodes that are for one reason or another a bit out of sync with the median time, to be able to submit blocks and still be fine.For example peercoin allows a time drift of 2 hours, and same with NovaCoin. HoboNickels, BottleCaps, HyperStake are all 15 minute timedrift allowance.So when you are attempting to stake and meet the staking target, you create 60 hashes at once per UTXO if you are using standard peercoin hashing code. The only thing that changes from hash to hash is the input for time. It hashes 60 seconds into the future at once. This system works pretty good, and doesn't really have much problem.The problem is that when you get someone that tweaks the code, and says "why not hash 2 hours into the future" I will have 7,200 hashes to attempt to stake instead of 60 hashes". So this code tweakers chance of staking is actually 11,900% more likely to hit a hash (did I do the math correctly? I think I did).My original thinking, and the reason I released the beta release, was that if some code tweaker has that advantage, let us even the playing field and give it to everyone. And so I released that code.What I failed to realize is that this would really screw up difficulty. Let's say the code tweaker above hashed two hours into the future, submitted the stake, and the network accepted it with no problems. The next block would calculate difficulty by taking that 2 hour future stake and subtracting the last time before that, calculating the time to stake as 2 hours between the two blocks. The difficulty code thinks that this means that people are having trouble staking, and the diff drops.With the new HYP code, we got diff as low as 3 i think it was (from the 10+ that it had been before), made 1,975 blocks today (compared to the target of 960), and minted 1.8 million HYP compared to our targeted 960k max.Hope that makes some sense. Running the new code on a test network and should have it out soon. Veil | PIVX | HyperStake | Crown | SaluS Projects I Contribute To: libzerocoin

presstab



Offline



Activity: 1330

Merit: 1000





Blockchain Developer







LegendaryActivity: 1330Merit: 1000Blockchain Developer Re: [ANN][HYP] HyperStake | 750% PoS | MultiSend | liteStake | Stake Modes February 13, 2015, 01:44:11 AM #4165 Quote from: dreamwatcher on February 13, 2015, 01:27:31 AM



Have the services that use/support Hyperstake been notified? I know I haven't, I only noticed it because it popped up in my reply post list.



Exchanges, explorers, gambling, etc etc?? All these services need time to get setup even after they are notified.



How many users are going to end up on a forked chain because they didn't happen to come to a forum where it has been announced in the last few hours?



I was hoping that this was really going to be a soft fork until I saw this in the code currently in github:



Code: if (pfrom->nVersion < 72099)

{

printf("partner %s using an old client %d, disconnecting

", pfrom->addr.ToString().c_str(), pfrom->nVersion);

pfrom->fDisconnect = true;

I hope it is for testing purposes, and you are not intending to truly block out version 72000 from the new client (In other words a true hard fork) in the next few hours or even days.



This has to be a misunderstanding on my part. When is the hard-fork actually going to be enforced?







Is there seriously going to be a true hard-fork with a few hours notice? If so, you are looking at a major train wreck.Have the services that use/support Hyperstake been notified? I know I haven't, I only noticed it because it popped up in my reply post list.Exchanges, explorers, gambling, etc etc?? All these services need time to get setup even after they are notified.How many users are going to end up on a forked chain because they didn't happen to come to a forum where it has been announced in the last few hours?I was hoping that this was really going to be a soft fork until I saw this in the code currently in github:I hope it is for testing purposes, and you are not intending to truly block out version 72000 from the new client (In other words a true hard fork) in the next few hours or even days.This has to be a misunderstanding on my part. When is the hard-fork actually going to be enforced?

No sorry, the official repo is hyperstake/hyperstake, I am running some test code on presstab/hyperstake that includes some extra code that won't be included in the fork. Please ignore it.



I will schedule the fork to happen at (GMT): Fri, 13 Feb 2015 14:00:00 GMT



I wish I felt comfortable giving more time in advanced, but there are more than double the amount of coins being minted than normal.



I will release new binaries tonight and fresh commits to github.com/hyperstake/hyperstake

No sorry, the official repo is hyperstake/hyperstake, I am running some test code on presstab/hyperstake that includes some extra code that won't be included in the fork. Please ignore it. Veil | PIVX | HyperStake | Crown | SaluS Projects I Contribute To: libzerocoin

presstab



Offline



Activity: 1330

Merit: 1000





Blockchain Developer







LegendaryActivity: 1330Merit: 1000Blockchain Developer Re: [ANN][HYP] HyperStake | 750% PoS | MultiSend | liteStake | Stake Modes February 13, 2015, 02:05:10 AM #4167 Quote from: dreamwatcher on February 13, 2015, 01:27:31 AM Is there seriously going to be a true hard-fork with a few hours notice? If so, you are looking at a major train wreck.



Have the services that use/support Hyperstake been notified? I know I haven't, I only noticed it because it popped up in my reply post list.



Exchanges, explorers, gambling, etc etc?? All these services need time to get setup even after they are notified.



How many users are going to end up on a forked chain because they didn't happen to come to a forum where it has been announced in the last few hours?



Major exchanges have been notified, most of our services have been notified. You were on my list as well, just hadn't got there yet. Trying to do a lot of things at once here.



Quote



Code: if (pfrom->nVersion < 72099)

{

printf("partner %s using an old client %d, disconnecting

", pfrom->addr.ToString().c_str(), pfrom->nVersion);

pfrom->fDisconnect = true;

I hope it is for testing purposes, and you are not intending to truly block out version 72000 from the new client (In other words a true hard fork) in the next few hours or even days.



This has to be a misunderstanding on my part. When is the hard-fork actually going to be enforced?

I was hoping that this was really going to be a soft fork until I saw this in the code currently in github:I hope it is for testing purposes, and you are not intending to truly block out version 72000 from the new client (In other words a true hard fork) in the next few hours or even days.This has to be a misunderstanding on my part. When is the hard-fork actually going to be enforced?

This was for my own personal testing. This should be doable via softfork, but I am sure old clients will be likely to get off on their own forks if not updated. Its hard to say for sure. At first we were planning on going all out and getting our whole list of fork items crossed off the list. This is just too much now, and too quick in advanced. I will simply be changing the timedrift code to 60 seconds. No difficulty changes or other changes. Hope this answers your questions, I will get you the updated code as soon as I have it. Major exchanges have been notified, most of our services have been notified. You were on my list as well, just hadn't got there yet. Trying to do a lot of things at once here.This was for my own personal testing. This should be doable via softfork, but I am sure old clients will be likely to get off on their own forks if not updated. Its hard to say for sure. At first we were planning on going all out and getting our whole list of fork items crossed off the list. This is just too much now, and too quick in advanced. I will simply be changing the timedrift code to 60 seconds. No difficulty changes or other changes. Hope this answers your questions, I will get you the updated code as soon as I have it. Veil | PIVX | HyperStake | Crown | SaluS Projects I Contribute To: libzerocoin