The past month has been very productive for our team, as we move toward a full, formal specification of IOTA 2.0. Our team has been hard at work across the board, both on wrapping up current tasks, as well as beginning to plan for our post-specification research. Below are the updates from several of our research groups. Please note that we’re planning to reformulate a few of the groups that have already concluded specification work, so next month’s update will have a slightly different presentation.
GoShimmer Implementation. This month the GoShimmer team has focused on making the Pollen testnet more stable and reliable by releasing v0.2.2. This release brings several changes under the hood. This includes a refactored worker pool and message request management, a better solidification process, and a new beacon plugin replacing the previous bootstrap plugin. These changes result in an overall improved synchronization process.
We have also improved the process of validating both messages and transactions. This is done by adjusting the maximum transaction inputs count and maximum message size as well as adding the signature verification before issuance.
A new API middleware, the ability to allow a client to issue transactions by providing them in a JSON format, and a new tool API endpoint to facilitate the debug of the solidification status is part of the new API improvements.
Finally, we focused on the Pollen usability aspect by releasing a brand new GUI wallet as well as an enriched Grafana local dashboard with charts. This includes information about messages in the database (solid, not solid, total), the average solidification time, and the message request queue size.
For more information about this release please have a look at our blog post. As our community continues to test and help us improve each Pollen testnet release, we will progressively add new features and Coordicide modules to the network. The first candidate for this process will, most likely, be the distributed Random Number Generator (dRNG).
Networking. As the vanilla version of the congestion control algorithm has been finalized, we moved our focus on parameter tuning and buffer dimensioning. By properly setting backoff thresholds of the rate-setting module, one can improve performance (for instance, by reducing propagation delay of messages). We also made progress on the message drop policy, which is fundamental to guarantee protection against malicious or selfish nodes: when the outbox buffer gets full, our proposal is to remove messages from the longest queue (remember, we have one queue per issuing node) and to drop connections with neighboring spamming nodes. As a next step, we will formalize these ideas and perform appropriate simulations.
Additionally, we submitted a paper on the fast generation of prime numbers through the usage of smooth integers to the journal IEEE Transactions on Computers. We are also comparing multi exponentiation techniques to speed up VDF computation time on general-purpose hardware.
dRNG. We continued to work on writing up our findings in the form of academic papers. We submitted one of our dRNG papers to the conference “22nd International Conference on Distributed Computing and Networking” where we hope to present our findings. The second paper is still being polished. We hope to have it ready for submission in the upcoming weeks.
Mana and Autopeering. This month we have completed our main objectives: the autopeering and mana specifications are now done. Beyond writing the relevant specification for IOTA 2.0, we have additionally outlined some interesting questions about the economics of mana and how user choices may be shaped by our implementation. The research department has passed the relevant information to our partnerships and business development department at the IOTA Foundation for further study.
One preliminary technical outcome of these discussions is the idea that future optimizations will likely include at least two different manas, used for different purposes (one for ‘access’ and another for consensus). Note that mana never needed to be defined in a single way, and different manas can be calculated in different ways. Such optimizations will add to the robustness of the protocol as it matures. Please also note that the present discussion pertains strictly to IOTA 2.0 and that sharding radically changes all present economic considerations. Although discussions about mana will continue, the formal ‘mana and autopeering group’ will discontinue our meetings as part of a planned group restructuring, and so this is our last update.
Protocol. This month we focused on reviewing the Chrysalis RFC, writing the Protocol Specifications, and had some discussions on game-theoretical aspects of the tip selection algorithms.
Right now the focus of the team is in finishing the specifications and reviewing them in preparation for review during the next Research Summit.
Specifications. For the first time, we had all the drafts ready, so we got all files together to compile the first full version of the specifications. Although we have all the theory and elements for each module, gluing the pieces together in a single presentable file is a lot of hard work. A plan was made on how to proceed with this, and it has four main objectives:
- Prepare all the files into a single working environment that is easily accessible and workable by all researchers.
- Standardization of all the files by making a glossary, an index of parameters, and a list of functions of all pseudo-algorithms. Also, make sure grammar and capitalization are in agreement over all the files.
- Review all the files, making sure to point out possible errors or confusing parts.
- Finish the work making the main file by arranging possible orders, introductions, texts, references, and images that may be needed.
Right now we are between steps 2 and 3, and we plan to finish step 3 during the Research Summit happening now!
We hope you find these updates helpful. 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.