Alright another release for you folks! The last one should be looked at as the stable release the has few bugs and works well. This new release should be seen as a relatively stable beta version that you will need to make sure that you are in fact pulling in stakes with. Also for anyone that understand the code, feel free to give me some feedback.
https://github.com/hyperstake/HyperStake/releases/tag/v1.0.9.3I redesigned the hashing iteration in a few ways.
Code Reorginization - Instead of iterating the hashing in wallet.cpp, it
is iterated in kernel.cpp inside of checkstakekernelhash, this allows
the iteration to not need to initialize the variables for every
iteration. This is also true for the stake modifier, which was
previously
calculated for each iteration.
liteStake - Previously the staking process would continuosly rehash the
same hashes over and over, needlessly taking up valuable CPU power.
I have added a std::map that tracks the block height and the last time
the wallet hashed on this height. Depending on your staking settings,
the wallet will not begin a new round of hashing until after a certain
amount of time has passed, or a new block is accepted. This time delay
can be found in main.cpp bitcoinminer(). This means that there will be
1-5 seconds of heavier CPU use once every few minutes, compared to
continued heavy CPU use.
Staking Modes - This allows the user to decide how much time they want
to hash into the future and past. HYP has a max time drift of 15
minutes. The aggressive mode allows the user to hash 10 minutes into the future
and 10 into the past. This will affect the chains timing a bit, and also
might make difficulty more volatile in the short run. In my opinion it
is more dangerous to allow a creative coder to do these same accepted
practices without letting general users do the same. Use RCP "stakemode".