5 min read

Technical Progress Update June

Technical Progress Update June

[ - by ID.Iota]

GM 🌅  #IOTA Fam 🤖

in June we had the first monthly development update on #iota-core within the Tangleverse Times Magazine and I am happy to present you with the second one today.

Disclaimer: The information provided in these updates comes from the official IOTA GitHub (https://github.com/iotaledger) and the IOTA discord server (https://discord.iota.org). The interpretation of that information, however, does not represent official information from the IOTA Foundation. While we strive to ensure the accuracy and reliability of the content, it is important to note that the updates reflect community perspectives. For official announcements and statements, please refer to the IOTA Foundation's official channels and communications.

I got some Feedback and want to address that right at the beginning. I have decided to add a TLDR of every monthly update right at the end. So if you are in a hurry or just don’t want to spend time to read through that wall of text, don’t hesitate and jump to the TLDR at the end of this article. Furthermore those updates aren’t meant to replace the weekly updates on Twitter. I will continue to publish Twitter threads covering the iota-core progress.

With that out of the way, let’s have a short look at what happened last month so we know where we are coming from. In May the efforts around #iota-core took off. The decision to move from #GoShimmer to an experimental prototype implementation of the node protocol towards #iota-core, a production ready node software, led to a situation where the existing GoShimmer CodeBase had to be ported to #iota-core. As a surprise to a lot of nagging community members this took only roughly a month and the team nearly finished those efforts just in time for the first monthly update in June. That was the first time Stardust VM ran decentralized on IF computers.

Since then the efforts have shifted a little… The most important topics in June didn’t contain porting code from #GoShimmer but concerned the implementation of completely new things. June was all about Congestion Control, Accounts, Mana and Staking. Congestion Control is important to avoid people spamming the network and claiming all the network bandwidth for themselves. In order to avoid this, IOTA implements a secondary resource called Mana. You need to own and spend Mana in order to use the network in times of congestion. Mana is obtained as a reward for staking your IOTA tokens and followed up through an individual Mana Account that is connected to your Iota Wallet. This system is essential to avoid or handle network congestion but also has high implications for the token value. It is going to be interesting to see the Mana economy running 😇!

So that’s how everything is coming together, but where are we with the implementation of those features? Let’s have a look feature by feature.

1.Mana and Mana Accounts

The implementation of Mana and Account support has happened mainly in the iota.go repository and is trackable in PR#435. The implementation is realized through a novel Output: the AccountOutput. The implementation has been reviewed roughly two weeks ago and is now merged into the code base. So the protocol is able to keep track of the Mana balances of each Wallet. Based on the Mana balance, the congestion control can kick in.

2. Congestion Control

The implementation of the Congestion Control is visible in the iota-core repository in PR#130. The congestion control is basically the control unit for the block scheduler and it lets you pass only your block to the block scheduler if the stored Mana on the account is high enough. The PR hasn’t been finished yet and the team consisting of research engineers and research scientist are working on it right at the moment. I think we can expect it to be merged into the code base in the coming week(s).

3. Staking

Now the missing piece is how do I earn or generate Mana? Well you guessed it… Exactly through staking. In PR #143 within the iota-core repository you are able to track the progress on staking. You will be able to delegate your funds to a registered validator in order to stake your funds. There your Mana rewards get calculated based on the amount of time and Iota tokens you are staking. Following that you will be able to claim your earned Mana rewards. This PR is also not finished yet and the team is working on it daily. A merge is likely going to happen at the same time the Congestion Control is finalized.

So much towards the implementation of the Mana economy. I am super curious about the progress the team is making and can’t wait to issue my first transactions with Mana on the tangle…

Besides those efforts around Mana and Congestion Control the team is also introducing seamless protocol updates. They are necessary to make sure the protocol is fully decentralized and does not need to be halted whenever a new update goes live. The implementation is visible within the iota.go repository in #PR448. Jonas implied that this way of seamlessly updating the protocol does contain a lot of changes and therefore might take some more time. I would expect it to be finished for the next monthly update, however there are a lot of implications that need to be controlled.

As always there is so much more happening in the code base and I only covered the most important changes that took place in June. Jonas gave a very recent overview about all the things the team is working on, on Discord. If you want to dive a little deeper don’t hesitate to check his latest post.

Very interesting were also Jonas’ comments on the implementation approach and the progress the team is making. At the moment the IF is making progress at an incredible speed, implementing new functions and protocol parts on a weekly or even daily basis. The protocol with all its features is close to a first version of a testing candidate. This rapid progress however comes at the cost of in-depth analysis of all possible attack vectors, bugs and so on. So it's likely the team will shift in the future from introducing new things in the code base towards reviewing, testing and bug fixing the code base.

Jonas was very clear when he said that he is expecting a “hardening phase” in order to clean up the code base. So don’t get too hyped yet… We are coming closer!

TL;DR: The second monthly development update is focusing on the recent additions to the iota-core protocol like Congestion Control, Mana, and Staking. Mana is a secondary resource obtained by staking IOTA tokens and is necessary to use the network during congestion. The implementation of Mana Accounts has been finished. Congestion Control is being worked on and hasn’t been “finished” yet. Staking will allow users to earn Mana rewards. Staking is making good progress, however it hasn't been finished yet. The team is also working on seamless protocol updates and a lot of other stuff. Overall, progress is being made rapidly, but a "hardening phase" to review and fix bugs is expected in the future.