Hello folks and welcome to another Developer Update from the Gridcoin team. I'd like to remind everyone that these posts will be created every two weeks unless a wallet update is pending that week.
Now to get things rolling, I want to show off the new art I am going to be using for these posts in the future. This artwork was created for me by the fantastic @joshoeah, who also designed our current purple GRC logo as well as many of the header art you see on Reddit, Steemit, and people's Slack profiles. He is truly a great artist and I can't thank him enough for his hard work.
Now on to the development work done in the last two weeks. A large amount of work put into development in these last couple weeks was this PR by /u/jamescowens. This PR is all about making the in-wallet Time to Stake calculations closer to reality. Currently the estimations given by the wallet for your time to stake are pretty rough, to say the least. This patch incorporates a lot of work done by Jim over the last month or so delving deep into the Proof of Stake code and making our estimations much closer to reality. For more details you can read the PR commits, but I must warn that they are very technical. Here is a snippet from the PR summary:
Note that the new ETTS algorithm gives radically different (and correct) ETTS values in the corner case of a big UTXO which is about to come off cooldown, but with only small UTXO's stakeable. The old calculation would only consider the currently stakeable (small UTXO's) sum and give a ridiculously long ETTS, when in fact the big UTXO would be stakeable very shortly and has a large probability of staking (i.e. short ETTS).
It also deals correctly with the middle ground of suboptimal UTXO count... If you have a relatively large balance, but have less than the optimal number of UTXO's, it will provide more realistic (longer in this case) ETTS values.
As far as other development work goes:
Work continues with @ifoggz's RPC overhaul that I mentioned in the last update (https://github.com/gridcoin/Gridcoin-Research/pull/1024). This is still being tested on testnet.
@ifoggz has also been working on fixes for the Neural Network for windows (note that we will be moving to a platform-agnostic NN sometime in the future). These fixes mainly relate to speeding up consensus syncing and eliminating errors when the project stat files are corrupted or otherwise not complete in some way.
@thecharlatan added optional support for Qt 5.9 with this PR. A Qt Version greater than 5.8 is needed for displaying for displaying the pie charts used in the voting window.
@tomasbrod has submitted the initial PR for Constant Block Reward. Note that this implementation still requires the outcome of an upcoming poll regarding the exact amount for the CBR value. Stay tuned to this PR for more updates in the coming weeks!
As testing coordinator, I wanted to add a little bit about testnet happenings in the last couple weeks. I personally executed three separate load testing events over that time period, but as a whole testnet has been relatively quiet, mainly testing the aforementioned RPC changes and dev branch in general. When the new Time to Stake PR is merged I expect this to be a major testing priority for us.
I would also like to add that I will be hosting a "Getting Started on Testnet" session on the Gridcoin Fireside Chat, hosted by @jringo every Thursday night in the Gridcoin Discord at 8 PM EST. Note that I will be hosting this topic either this Thursday (4/12) or next Thursday (4/19). More updates can be followed in the Fireside posts each week. Note that if you cannot make it to the meeting, they are recorded and put up on YouTube usually a few days later.
I do believe that wraps up this edition of the Developer Update. Expect to see another update two weeks from today (4/23), barring a wallet update around that time. If you have any comments or questions for the Gridcoin development team feel free to ask in the comments below. If I am not able to answer your question directly, I can certainly forward it to someone who can! Thanks everyone!