Happy new year to everyone! We’re excited to enter this new year with so much progress set to unfold. As many of you who have been following along and testing Pollen with us already know, our testnet implementation of Coordicide is approaching a complete state - meaning we are close to having a real world implementation of Coordicide. There are of course still some critical tasks to complete, but we are very much looking forward to our official Nectar launch — our full Coordicide implementation on testnet. This will be a big step for us in the Research Department, and we know for everyone in the IOTA Foundation and community as well. For now, please enjoy the latest group updates below.
Pollen Testnet Implementation. Last month we released Pollen testnet v0.3.2 and a few subsequent versions (v0.3.3 and v0.3.4) with different fixes. The main features of those updates are the addition of FPC statements written in the Tangle, clock-based time to message metadata, syncing improvement and more. The team has also experimented with a new database based on Pebble, but concluded that, for the moment, BadgerDB is more stable. We will continue experimenting with Pebble once GoShimmer data flow will be refactored.
To this end, we have redesigned the overall data flow, from the inbox of incoming messages, to their processing according to the new scheduler. More specifically, upon reception of a message from the gossip layer, several filters, such as recently seen bytes, message syntactic validation, signature check and adaptive proof of work check are executed. Then, the message store creates the metadata and triggers the message stored (deleted) event. Subsequently, voting on the timestamp quality, solidification and both parents eligibility and age checks are performed.
Finally, the scheduler manages when the messages are gossiped and booked into the Tangle.
The team has also focused on the specification of the epochs and the initial implementation of the required mana functionalities to calculate active consensus mana based on transactions happened in the past.
Finally, we have fixed some issues related to the graceful shutdown of some components, improved hive.go, made the integration tests faster and more reliable and we are progressing with the merge of the Message Tangle and Value Tangle.
Pollen Testnet Study Group. Time plays a prominent role in our lives and unsurprisingly in coordicide, too. The current Pollen network allows measuring the network latency; an analysis node issues periodically special messages in the tangle. Once any other node, at least those who have enabled the corresponding plugin, receive these messages, they send the message's arrival time back to the analysis node. This procedure allows a reasonable estimate of the network latency. The maximal latency, the time difference between issuing and receiving of a message, in the current network is mostly around 100-200ms. The next natural steps are to study how this latency behaves for larger testnets and a greater number of messages per second.
Another crucial point in IOTA is the tip selection algorithm (TSA). It is necessary for a quick finality of messages that the TSA eventually picks up every message. In other words, the orphanage rate should be minimal. To test several possible TSAs, we implemented a stand-alone simulator. For example, Coordicide will allow messages to no longer refer only to two previous messages, but possibly more than two. Referring to more than two messages reduces the width of the tangle and reduces the orphanage rate, but on the other hand, may reduce the throughput. As a first result, we developed a TSA that dynamically adapts the number of references. This research is still ongoing, and we hope to share more details soon.
Networking. Having finalized the baseline congestion control mechanism (and started the implementation in the Pollen Testnet), in the networking team we are now working on advanced aspects to further optimize IOTA performance in Coordicide. In particular, we are studying, in parallel, two research directions: (i) defining a fast resynchronization mechanism for nodes that have missed a few recent messages; (ii) adaptively setting a minimum mana threshold (potentially zero) needed to issue messages according to current network congestion and active mana.
Additionally, we are happy to communicate that last December two of our papers have been presented in International conferences:
- “Preventing Denial of Service Attacks in IoT Networks through Verifiable Delay Functions” at IEEE GLOBECOM 2020
- “Healthor: protecting the weak in heterogeneous DLTs with health-aware flow control” at SERIAL Workshop ‘20 (YouTube video presentation here).
Sharding. We completed our proposal for “data sharding” and shared it internally for review and comment. Also, just before the holiday break, we had several lengthy seminars around data sharding and our overall sharding vision with many Foundation members. We were pleased to receive very positive feedback. We are moving forward with a whitepaper to flesh out necessary details at this stage, and we will make a more formal announcement with more information regarding the project when we’ve reached the appropriate stage.
If you have any questions or would just like to say hi, you can find our Research team members in the #tanglemath channel on our Discord. You are also welcome to follow and participate in our technical discussions on our public forum: IOTA.cafe.