February 17, 2023

By brianp

Tari Base Node v0.45.0 Released on StageNet

Tari Protocol 0.45.0 Released: Approaching mainnet one minor release at a time

It’s that time again! The Tari protocol team is excited to announce the release of version 0.45.0, bringing a number of new features and improvements to the network. This release also marks an important milestone in our development with big news - wait for it - we’ve launched the Tari StageNet! Yes, you heard it right. We know, you’re excited about the Mainnet, but trust me, this is almost as good.

What’s so special about StageNet?

After several iterations of testnets with cool names like our currently running Esme, Igor, and our previously retired Dibbler, Weatherwax, Ridcully, and Stibbons (RIP ✌️), we’re approaching a time that requires a stable testnet that mirrors our future Mainnet as closely as possible. And that’s what StageNet is all about. It’s a long-lived, stable testnet that won’t reset often, because we know how annoying that can be. You can experiment with the network and test new features risk-free just as they should run on Mainnet.

We won’t be getting rid of our named testnets though. They still play an integral part in the development of the Tari network, and are where we can play a little more fast and loose with features. We’ll do our best not to, but these networks may see breakage sometimes. Or a new one may crop up to test a specific subset of features. For example, right now our two running named testnets exist for different reasons.

Our Esme network has been our stable-er testnet prior to StageNet. It sees new features and enhancements as they come out, and supports our mobile wallets Tari Aurora on iOS and Android.

Our Igor testnet is used in the development of the DAN Layer and sees frequent resets to help support the rapid pace of the development team.

I know what you’re thinking. Without Mainnet, what’s the difference between this new stable StageNet and the previous ones? And here’s the answer: It’s all in how we’re shepherding it. We’re transitioning to an 8-week release cycle schedule. Yes, you heard it right. We may not have a Mainnet yet, but we’re gonna start developing like we do. StageNet will get new updates every 8 weeks, just like the Mainnet will soon™️. This is a big change for our protocol team’s workflow, and we’re excited to iron out the kinks early to ensure a smoother Mainnet transition.

How this will look in the immediate future:

Currently, the Protocol team is a highly functioning group, throwing out new features and fixes whenever inspiration strikes. When work gets completed it gets merged into the development branch on our Github repo.

Then, every so often we decide “hey we’ve done some really great work here, we should share it with people”. And somebody will tag a release. This approach has gotten us to where we are but is a little unpredictable. So we’re introducing a little more structure to our process.

Going forward, we’ll be taking a more meticulous approach to code selection and testing. We’ll be running features through the gauntlet of our named testnets to ensure they’re truly ready for prime time. No half-baked ideas muddling their way in, only once a feature has passed the rigorous testing will it earn its place in the coveted StageNet branch. These features will be pruned and picked from our development branch into the stagenet branch. Only then will a tag be created from this branch, and released for your ultimate enjoyment.

In practice this will be done with the addition of codified feature gates. These feature gates will allow us to perform conditional compilation when releasing new versions of our applications. When we release a new version for StageNet it will only contain hardened features we know are ready for prime time. While we can continue to release to our other testnets with additional features we’re still trying out.

And with the introduction of a regular release cadence, you’ll always know exactly when to expect the latest and greatest from us. No more sitting around wondering “when’s the next release?” We’ve got you covered every 8 weeks.

Sure, this means a bit more process and management for us, and one of the consequences of the feature gating process is the production of multiple binaries for different stages of development, and different networks. But we think it’s worth it to ensure a smoother and more stable experience for everyone on the network.

In the meantime, if you’re interested in reading more about how code will move through our testnets or our 8-week release cycles, you can check out our contributing guidelines. And if you’re still waiting for the Mainnet, don’t worry, we’re just us eager as you are.

And finally, here are the features and fixes we’ve made in version 0.45.0 to help stabilize the network. We’ve been working hard, we promise.

⚠ BREAKING CHANGES

  • refactor database encryption (#5154)
  • update Argon2 parameters (#5140)

Features

Bug Fixes