Dev Status Update — October, 2020

Published by the IOTA dev team every month, this update will provide you with news and updates about our key projects! Please click here if you want to see the last status update.  

The research department is also releasing a monthly update that you might want to read.  

IOTA 1.5 (also known as Chrysalis) is the mainnet’s intermediate stage before Coordicide is complete. You can read more about the strategy for releasing Chrysalis here.  

The Chrysalis phase 1 components were deployed to the mainnet in August. The engineering team is now working on Chrysalis phase 2.  

The current plan is to have a publicly available testnet for Chrysalis phase 2 ready as soon as possible. The testnet will allow us to test the node integrations, client libraries, and the new wallet. Partners and anyone integrating on top of the current network will be able to start working with the new APIs and functionality. In November, we will also be auditing the core functionality.

We have released a new version of the Pollen network. The latest version of the GoShimmer software, v0.3.0 contains the full integration of the Decentralized Random Number Generator (dRNG) module. You can read up on the update here.  

The team is working on the next large milestone, Nectar. The components that will make up the Nectar network are being iteratively released on the testnet to allow us to test individual Coordicide components.

You can read more about Pollen, Nectar, and Honey, concepts we introduced to talk about the milestones on the path to Coordicide, in this post.  

You can follow the project on its GitHub repository. If you want to get involved, check out our updated contributing guidelines.  

The Bee team has finished the implementation of some of the important components of the node software. We have switched the runtime to Tokio for better performance and compatibility with the Rust ecosystem. We also switched our channels to flume for better performance. We have added deserialization and serialization of the new message layout for Chrysalis phase 2. The network layer is being migrated to libp2p for the future implementation of autopeering. The node and its interaction with the different workers and storage has been completely refactored for better maintainability.  

A large effort that Thibault has started during the regular Friday coding live stream is the removal of bundles and ternary from code. Bee is now working completely without ternary and bundles in the code. You can find the full playlist of our coding live streams here.  

You can find all Bee RFCs in their respective GitHub repository.  

The team has significantly progressed with the implementation of Chrysalis phase 2 changes in the node software. The biggest missing piece is the adjusted Proof of Work(PoW) for binary messages. Changes like the new node API and local snapshots and solidification are working in the current development build.  

As noted in this blog post, IRI 1.8.6 was the last release of IRI. The software has been discontinued with the upgrade to Chrysalis phase 1 and you are encouraged to run Hornet nodes instead.  

We have just released the pre-alpha version of IOTA Smart Contracts. You can read all about it in this blog post. We are now working on scoping up the future development of the smart contracts protocol, to Wasp alpha, fully integrated Wasmtime VM and VM sandbox API, all the way to Wasp beta and more. We are also extending the team to be able to ramp up the efforts of our smart contract.  

The Stronghold team is currently working on the final engine revision and a proper client implementation so that the external security audit in November can be undertaken on schedule. These changes will promote Stronghold to alpha quality software. You can read more about it in the forthcoming blog update.

The team has been working to finalize the wallet frontend to provide the designers with a medium through which they can validate the designs, illustrations and UX. The onboarding UI is complete, and there are just some finer details around the dashboard UI to finalize. The process is illuminating because often only when you have a dummy app in front of you can you identify missing functionalities and screens or subpar user experience. Accordingly, the design team is now revisiting some onboarding illustrations and some details around how best to present user accounts.

The backend has been validated and is working across all platforms (iOS, Android, Linux, Windows & Mac). With the UI nearly complete, we will now begin hooking up the wallet frontend to its backend and building the rest of the wallet functionality. This coincides nicely with the progress node API and Hornet teams have made. With the new Chrysalis node API available on internal Hornet nodes, we can begin to test the wallet library in a Chrysalis setting.

Note that the first version of the wallet has been scaled back to core wallet functionality, and with a focus on desktop only initially. This decision was made to ensure nothing is rushed and that the base layer is as solid as possible for expansion — which will pay dividends in the future. Once desktop is complete we will return to the mobile app, and begin adding the future feature set, including things like contacts and, later, native assets.

The DID standard from W3C has almost completely been implemented and the team is preparing an early 0.1 alpha for people interested in experimenting with the DID standard. We are exploring how to provide Javascript bindings as soon as possible. Verifiable Credentials should soon follow for a quick succession of three alpha releases. Keep an eye out for the identity.rs repository for the stream of deliveries that we will see over the next two months.

While these low-level libraries are taking shape, we are designing the higher-level and much easier-to-use Identity libraries. These will be a lot easier to work with and should support about 90% of the use cases. As discussed last month, integration with Stronghold is also a top priority to deliver out-of-the-box protected digital identities. Thanks to the EDF team consisting of huhn#8105, Thoralf#3558 and Tensor#2912, we remain on track for the release of the IOTA Identity fundamentals before the end of the year.

We have just released the last alpha version of IOTA Streams. You can read all about it and the next plans in this blog post.  

This month also brings news about the community involvement in the IOTA Experience Teams.

IOTA Access has been introduced and Bernardo Araujo, our Embedded Software Engineer and System Integrator, is now leading the IOTA Access Experience Team.  

This X-Team revolves around IOTA Access and the number of contributors has grown thanks to curiosity and common interest. The X-Team members will have a Q&A session and feedback meeting after exploring the IOTA Access MVP with Bernardo.

Hereby we welcome the new X-Team members lito#3766, Dr.Electron#9370 and hcsatish#2337.

The GoShimmer X-Team supported Angelo Capossele, our Senior Research Scientist, in testing and launching the X-Team dRNG committee that has now become an integral part of the Pollen Testnet with the 0.3.0 release. This committee is providing a verifiable, decentralized randomness beacon that will be used by our consensus mechanism FPC as well as anyone that may need a public source of randomness for GoShimmer.  

Their goal in the upcoming months is to mentor and support the IOTA Community in the organization and set-up of the official IOTA community-driven dRNG committee. We would like to thank the GoShimmer X-Team community members for their help and support throughout the testing phase of the dRNG module.  

The Bee X-Team is contributing with very valuable feedback to the IOTA Foundation Bee team.

svenger87#8523, daverl#0001 and Luca#3952 are setting up Bee nodes and reporting their findings.

The IOTA Streams X-Team members Yalamber#9880 and huhn#8105 are contributing independently to IOTA Streams with the goal they proposed: WASM Binding for Node.js and Browsers.  

Everyone is invited to the IOTA Experience Teams to pave the road for IOTA to have the best developer experience in the DLT and IoT space. Discover the IOTA Experience Team on GitHub, explore the IOTA Experience Initiatives and then apply through this form.  

We have made the following updates to our roadmap:  

  • Bee node software has been moved to December. We will be releasing the Bee node software together with Chrysalis phase 2. Due to the scope of the rewrite of Bee for Chrysalis phase 2, a lot of effort would have to be put into components that would be discontinued shortly after the release, such as bundles.
  • Nectar has been moved to Q1 2021. We expect this is when we will have all the Coordicide components implemented in the GoShimmer node software.
  • Honey has been moved to the end of Q2 2021.

This section will mention significant bugs or vulnerabilities that have been fixed in any software managed by the IOTA Foundation.

On August 19, 2020, Hornet v0.5.0 was officially released. This version of Hornet contained a vulnerability that allowed the node software to request transactions with invalid, lower than allowed, Minimum weight magnitude (MWM). This allowed anyone using a customized spammer to send a large number of transactions to the network with a disproportionately low proof of work.

This was consequently fixed with the release of Hornet 0.5.1 on August 27. While the network coordinator and the IF infrastructure was upgraded on the same day as the vulnerability was discovered, August 21, with a build that already contained the fix.  

As always, we welcome everyone to stop by on Discord— every project mentioned here has a channel (or more) for discussion with the devs!  

Follow us on Twitter to keep track of all the latest news: https://twitter.com/iotatoken  

This article has been updated to replace the term "colored coins" with "native assets"