Yeastplume - Progress update thread - May - Sept 2018

Update Friday July 6th, 2018

For what is hopefully the last time, we’ve just launched our traditional pre-testnet developer network through which we’ll try to convince ourselves that nothing is horribly broken in advance of Testnet3. At a guess, T3 represents about a 30% rewrite from Testnet2, which is less code changed than the T1 to T2 jump, but still means it contains tons of new and changed code that needs to be tested in the wild again.

Off the top of my head and in no particular order, the changes and enhancements between T2 in T3 are (some of these are implemented or partially implemented in T2 as well:

  • PMMR improvements and enhancements (storing PMMR markers in headers, using a bitmap for pruning and rewinding)
  • Merkle Proofs no longer needed to spend coinbase outputs
  • Kernel history verification on fast-sync (to address a security issue)
  • Newer version of bulletproofs, with features included to facilitate wallet recovery
  • Chain storage migrated to LMDB from RocksDB
  • Variable cuckoo size POW, with miners able to submit cuckoo solutions from size 30 upwards as opposed to just 30.
  • Error handling improvements
  • Improvements to difficulty adjustment, remove ‘double hash’ from cuckoo cycle input
  • Changes to report sync state to the TUI
  • Many improvements and enhancements to the wallet library to pave the way for future wallet enhancements

And I’m sure a few others I’m forgetting (perhaps I can update this list as people remind me)

The past week has been mostly about testing the various parts of the system (particularly consensus breaking issues) and fixing issues as and when they arise. Everyone has done bits of work on various issues as they’ve come up, but I’ve mostly focused on making sure mining works properly and ensuring the difficulty adjustment algorithm works well enough though some scenario modelling tests. Quite a few fixes to mining and a few tweaks made to difficulty adjustment as a result.

In any case, I’m now fairly comfortable saying that T3 is imminent. Hopefully this is the last distinct testnet, and (hopefully again) any consensus-breaking issues that come up from now should be addressed via forking rather than a completely new chain. At some point, we might even be able to call this chain a Beta.

Enjoy weekend, and Grin hard.

4 Likes