Dev Status Update - December, 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 mainnet in August. The engineering team is now working on Chrysalis phase 2.
Implementing Chrysalis phase 2
Earlier this week, we made the Chrysalis testnet open to the public. This will allow us to test all the Chrysalis components in the open, as well as add the remaining capabilities and products to the mix. For example, Firefly is set to become available, first to a limited number of testers, soon.
We are now also releasing weekly updates on Chrysalis phase 2 progress on the weeks between monthly dev updates. Things will be quiet over the holidays, but we will be back in full strength in the New Year. If you are interested in what is going on over the holidays, make sure to check our Discord!
The team has released the 0.3.2 update and a few subsequent versions with different fixes last week. The update added FPC statements, clock-based time to message metadata and more. The team is currently focused on markers, epochs, and refactoring of the ledger state and branch manager.
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 a large part of the implementations necessary for Chrysalis phase 2. This includes all the new node APIs, message processing, storage layer, local snapshots and more. There are few outstanding items before the node implementation officially joins the Chrysalis testnet.
The new node dashboard that has been designed and implemented for Chrysalis phase 2, and which will be shared with Hornet, is also being wired in.
The team has also published new live coding sessions. One of the sessions showcased setting up Bee on the private Chrysalis testnet.
You can find all Bee RFCs in their respective GitHub repository.
The Hornet team has significantly progressed with the implementation of Chrysalis phase 2 changes in the node software. The team has integrated delta snapshots, added bech32 encoding to the REST API, integrated the new node dashboard, and worked on setting up the public Chrysalis testnet.
You can already set up a Hornet on the public Chrysalis testnet. For example using the instructions from Svenger87#8523 (thank you!).
We have released the pre-alpha version of IOTA Smart Contracts. You can read all about it in this blog post. The team has been heavily focused on refactoring the Rust environment and adjusting smart contracts implemented as PoCs to the refactored shape. The communication layer of the Wasp nodes has been refactored, UDP messaging was added along with TCP. A new DKG with Rabin algorithm was integrated with the core code. Design and development of data schema model for client libraries and smart contracts has been in progress. A set of core built-in smart contracts have been written, including the ones for on-chain account and fee management (this effort is still in progress).
Stand-alone smart contract testing tool for Wasm and built-in contracts in the native VM environment on multiple chains was implemented. This will significantly speed up the development process. Another effort was development of Rust/Wasm smart contract programming environment and writing PoC smart contracts and unit tests for it, including ERC-20 smart contract among others. This allows us to have hands-on experience and assess the potential of ISCP and the Rust/Wasm programming environment.
You can follow the updates in the #smartcontracts-discussion and #smartcontracts-dev channels on Discord.
The final touches of stronghold are in the finishing and verification phase, and the alpha release is imminent. We have built and tested a complete client interface that internally uses Riker and will sit nicely in a larger Riker based project. Addressing records in the vault is now easier, and we have introduced a new type of vault that allows for non-versioned mutable data to be stored and retrieved. We have refactored the snapshot actor to not only improve the performance of updating, but also have resolved corruption problems that arose in early tests - thanks to the close collaboration with the Wallet team and the tireless work of Tensor, who has rejoined the Stonghold project via an EDF grant.
We have merged in both the runtime and communication crates, which the client is consuming internally - and can also be used by other projects without needing a hard dependency on Stronghold. The runtime is a secure memory allocator and a secure computation zone, which basically means that cryptographic operations using private keys / seeds will be done in a forked process with fewer permissions. It needs to be handcrafted for each platform - but currently linux on 64bit machines is the most ‘robust’, with more on the way. The communication crate is based on libp2p, and will allow strongholds on different devices (or applications) to talk to each other securely. We have validated that the communication service works as expected between a USB Armory mk ii and a host Ubuntu laptop.
All of the crypto needed is now being consumed from crypto.rs - including bip39 and slip10. We are finalizing the fully automated release procedure with CI. When everything is ready, we will be publishing a new blogpost that goes into great details about the alpha version of Stronghold.
The team continues work on finishing the dashboard and settings and hooking up the frontend to wallet.rs. With the Stronghold refactor now complete we can also integrate the latest Stronghold changes into wallet.rs.
Much of the wallet team has been busy getting the Chrysalis testnet ready. This has provided a useful exercise for testing out wallet.rs as a library, with its first full implementation in the new CLI wallet. This has useful consequences for Firefly, finding bugs and issues ahead of its implementation in the wallet.
We are also finalizing the strings in the app which will allow us to open it up to the community translators. If you are interested in translating Firefly then look out for an announcement about that soon.
With the completion of the EDF grant, the team is currently refactoring, documenting and finalizing a few features before the release of version 0.2. This version will include some IOTA unique features that enable fast authentication of identities with a rich history of updates. In addition, we will introduce another IOTA unique system to revoke credentials with maximum privacy, such that no personal identifiable information or hashes need to be published to IOTA. This provides a guarantee that our verifiable credential implementation will be 100% GDPR compliant. This update will be finalized after the holidays.
We have recently released a new version of Stream, 1.0.1. This release provides improved error handling with a centralised message location, as well as fixes the message limit bug with the client requests. The release also adds additional functions for c bindings.
The team has also been maintaining a streams implementation compatible with Chrysalis phase 2.
The Chronicle team is now working on an RFC for the selective permanode functionality and the solidifier functionality. The team has also been heavily involved in strengthening the infrastructure that powers our explorer.
IOTA Experience Team
The IOTA Experience Teams grew to 38 highly dedicated members, since the launch in May of this year.
This month the GoShimmer X-Team members Dave [EF] and Dr.Electron took ownership of setting up the community driven distributed random number generator committee with eleven IOTA community members. More details in an upcoming blog post.
All X-Team members were invited to test the Chrysalis upgrades and share their feedback on the Chrysalis testnet with IOTA Foundation members before it was made public to everyone.
This month we welcome Martin N, NO8ODY and alaakaaazaaaam to the X-Teams.
Learn more about this initiative and the goals in this GitHub repository.
Everyone is invited to the IOTA Experience Teams to pave the road for IOTA to have the best 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.
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