Chrysalis (IOTA 1.5) Phase 2 Update and Next Steps

Research & Development Sep 23, 2020

The first phase of IOTA 1.5 (also known as Chrysalis) — 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 have been deployed on the IOTA mainnet a few weeks back. Since then, the network has been running with fast confirmation times and sustaining high TPS.  

The IOTA Foundation is now actively working on the development of Chrysalis Phase 2 components. You can read more about the release strategy for Chrysalis here. Currently, our plan is to start testing the first version of Chrysalis node software in October or November. Depending on the progress of testing, we would like to release Chrysalis Phase 2 later this year.  

Chrysalis Phase 2 will be the biggest network update we have ever performed at the IOTA Foundation. The components of Chrysalis Phase 2 affect every part of the IOTA ecosystem. From the node software, client libraries, products like Streams and Chronicle, to anything that takes any kind of dependency on those, as well as wallet users.

To reiterate,Chrysalis Phase 2 includes:

  • Ed25519 support— a more commonly used signature scheme and support for reusable addresses.
  • UTXO— A better fund and state management approach.
  • Binary transaction layout— validation, IO and other processing working on binary data without the need to have many binary-ternary conversions as in the current node software.
  • Atomic transactions— Move from the current Bundle construct and use of simpler atomic transactions instead.

The development itself is a significant team effort as the protocol changes every part of the ecosystem. It is important for everyone to be involved in designing the changes. Either directly or by providing feedback, that’s why we also publish the changes as RFCs. Most recently, we added an initial version of the new node API into the proposals.  

The development of Chrysalis Phase 2 changes in the node software is ongoing now. The Bee and Hornet teams are already busy planning for and implementing the changed transaction layout, for example. This work led us to adjust some of the types in the proposed RFCs. However, the changes to the node software side are happening on many fronts. Below is a brief rundown of some of those changes we currently have in the works:  

  • A new message object, this is the object that nodes gossip around the network and contains different payloads
  • Signed transaction payload
  • Milestone payload
  • Indexation payload
  • Proof of work changes to reflect different message size
  • An extendable address format for different types of signature schemes based on bech32
  • A completely new node API
  • And much more…

All the client libraries need to change significantly for Chrysalis Phase 2. Many of the libraries will be covered with bindings to our core Rust library. Some will remain native, like C or Go.

Client libraries will come with a high-level API that will make integrating and maintaining solutions on top of IOTA simpler than before.

Client libraries will also completely replace Hub, our wallet management solution for exchanges and custodians.  

The wallet team has been working on the new wallet to replace Trinity for some time now. The new wallet is being rebuilt from the ground up. This includes the UX, all the implementations, and even a new wallet library to support all the underlying functionality through the new Rust library.

The new wallet will be built for both desktop and mobile. With desktop having a higher priority in the development process.

Stronghold will be a strong basis for the new wallet. This will enable a new level of security for wallet users.  

All the other products that we are developing at the Foundation, including IOTA Streams, IOTA Access, or Chronicle, will be adjusted for Chrysalis Phase 2. Some will require more effort than others, some only need their dependencies — specific libraries — to be adjusted. All of this is included in our planning process for Chrysalis.

One of the important parts of Chrysalis Phase 2 will be having a testnet with the initial changes live prior to the release. This will allow us to test all the Chrysalis Phase 2 changes, wallet, and products, in addition to testing changes to existing integrations live. The testnet will expose public endpoints for anyone to test the new APIs and integrations.

The testnet will be available after we have a working node software and client library implementation available with the initial set of Chrysalis Phase 2 changes.

The development and support of the functionality of digital assets are enabled by our switch to the UTXO model. With the introduction of Chrysalis Phase 2 and its switch to UTXO, we will mainly focus on reusable addresses, binary transaction layout, introducing a much better developer and wallet experience, and the overall integration of UTXO into the protocol.  

Digital assets will be added to the protocol in a subsequent, separate update instead. This will allow us to design, develop, and release the functionality of digital assets in a way that allows us to support all the use cases we are envisioning for the tokenized economy. This will allow us to release Chrysalis Phase 2 without being delayed by digital asset capability development.  

We are also actively looking at ways to involve external parties to help us develop the tooling and core functionality of the digital assets.

As always, we welcome everyone to stop by on Discord.  

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

Tags

Jakub Cech

Director of Engineering @IOTA Foundation

Great! You've successfully subscribed.
Great! Next, complete checkout for full access.
Welcome back! You've successfully signed in.
Success! Your account is fully activated, you now have access to all content.