Grin + Grin Wallet 4.0.0-beta.1 Released

Grin and Grin wallet 4.0.0-beta.1 have been released and are ready for public testing in advance of the full release scheduled for the beginning of July, 2020.

As always, there are a ton of fixes, enhancements and new features for testing and feedback. A particularly large feature of the 4.0.0 is the implementation of the new Slatepack standard for sending transactions between parties. This standard builds on top of previous work that enabled TOR transactions, and should serve as a foundation for addressing Grin’s long-term usability challenges. Though there may be some pain transitioning to the new work flow I think the long-term results will be worth it.

On the node side, there are many fixes and under-the-hood improvements, as well as initial work to support “No Recent Duplicate” Kernels, a unique approach to relative timelocks (vital for future payment channel support). This is a very new construction so 4.0.0 will allow NRD kernels on floonet to enable testing and further development.

Of course, all of this this also means a lot of new code, which means new bugs and issues. I’d ask everyone to test and play with the 4.0.0 release as early as possible, and open up github issues for anything you find.

Particular Areas to focus on for testing

Node:

  • Sync a new chain from scratch
  • Replace binary, using chain data from previous versions
  • full sync
  • stay in sync
  • tui still usable
  • memory usage and cpu usage on running node (should be no worse than 3.1.1)
  • ensure mining/cuckarooz will be applicable during earlier floonet HF

Wallet:

  • Sending between 4.0.0 wallets and 3.x.x wallets (make sure that your 3.0 wallet is talking to a 3.0 node)
  • Sending/receiving between a 4.0.0 wallet and your exchange of choice (use small test amounts!)
  • Sending and receiving transactions via the Slatepack workflow (for best results, ensure TOR is installed on your test system)
  • If running on floonet or mainnet pre-fork, be sure to use the --v4 flag to force the output of v4 slates and slatepack (otherwise, you’ll get v3 slates output for compatibility reasons). V4 Slatepacks cannot be sent to 3.0.0 wallets.
  • Detailed suggested testing steps can be found here: https://github.com/mimblewimble/grin-wallet/issues/431

Release notes for the full 4.0.0 release are still being compiled, but note that the grin-wallet send command is changed, and the dest parameter is optional. This can now be a slatepack address or a (deprecated) http address. To find your wallet’s slatepack address, use the grin-wallet address command.

Binaries

Grin 4.0.0-beta.1 Binaries
Grin Wallet 4.0.0-beta.1 Binaries

Release Planning

Planning notes for the 4.0.0 release

Major changes and enhancements (Please note this information may change before release)

Node:

  • New Cuckarooz PoW and header version 4 for latest hardfork.
  • TUI optimizations and overall code improvements
  • Server and backend DB code optimizations and improvements
  • BlockHeader via API now includes all relevant fields (including MMR size)
  • Feature flagged NRD kernel support (enabled in floonet, remains disabled in mainnet)

Further Details

https://github.com/mimblewimble/grin/issues/3341 (WIP, Full release notes pending)

Wallet

  • Slate version V4, a much more compact version of the slate.
  • Full implementation of the Slatepack standard

Futher Details

Full release notes pending

12 Likes

Awesome! Great work.

Excellent :+1: great

Tried to run latest release v4.0.0-beta.2 on macOS High Sierra version 10.13.6 got this error message…Screen Shot 2020-06-16 at 1.49.31 PM

Maybe this is due to incompatibilities between Mac OS versions 10.15 (which your binary was built for) and 10.13, which you’re running. Could you perhaps try building from source?

1 Like

Yes and I have previous version folders need to clean them also :+1: