Happy first anniversary, Qubic! We’re celebrating one year of Qubic status updates with the new simplified design that Sabri is introducing to our header image.

This year has been quite the roller coaster ride, with lots of reading, research, coding, testing, restarting from scratch, one step forward, minus two steps back, hours of staring at code looking for bugs that aren’t there, meetings, brainstorm sessions, and trying to decode CfB’s brain waves. Haven’t had this much fun in decades!

The results we’ve accomplished are looking good. We now have a lot of basic IXIs that are necessary to put the Qubic puzzle together. We also have the Abra specification, the Qupla language that implements the specification, the Qubic Computation Model that integrates all entities in the system, a basic library with standard functions for Qupla, and some tools to be able to test all this. The remaining puzzle pieces are being architected as we speak so that we can start building Q-nodes.

For those of you who have been following the monthly status updates, you may have missed the mentioning of two key players. The monthly accomplishments by the other team members could not have been achieved if it weren’t for the two geniuses behind the scenes. I am of course talking about the inventor of Qubic, Sergey Ivancheglo, or Come-from-Beyond as he is generally known by, and Qubic’s chief architect, Paul Handy. Whenever the team gets stuck or misses a piece of information it is these two that will provide the answers and guidance to help them on their way.

With that having been said, let’s look at this month’s progress.

Ict

The latest version of Ict is now 0.6.1. It is pretty stable and documented well. This will probably be the last Java version. The big news this month is that Lukas has taken the lessons from the Java version and has started a rewrite of the Ict code from scratch, this time in Rust. This programming language switch allows us to create a version that runs many times faster, is way smaller, and can be used on embedded systems. We’ve also taken the opportunity to rebrand the awkward ‘ikt’ name to a new name that pays homage to the swarm aspects of this project: Bee. You can find the architecture for Bee in a new repository. Lukas has been greatly helped by a seasoned Rust developer and community member: /alex/. He has taken lead on the Rust development and the amount of code and documentation that has been produced between the two of them is simply astounding.

IXI

Benoit has been finalizing the serialization.IXI. Samuel did his usual multiple projects thing and updated the graph.IXI, the timestamping.IXI, and the weighing.IXI. Lukas is currently also writing the architecture document for the initial implementation of Economic Clustering.

FPGA

Thomas has started on his first FPGA component, a communication protocol to get trits to and from the FPGA we call STEP. He is currently ironing the kinks out of the second version of the protocol, which should double its speed.

Donald has been investigating a few issues we found with the QCM at the hardware level and should come up with his analysis shortly.

As mentioned last month pmaxuw pointed us in the direction of a senior FPGA engineer, who has joined the community under the handle Beeef.

Beeef has been helping the FPGA team in his spare time with his experience and ideas and essentially single-handedly leveled up the entire team. He was also responsible for a few breakthrough ideas in the last month. We’re still working out the details but it looks like our approach to running tritcode on FPGA could become a game-changer and could bring Abra to the status of a full-fledged Hardware Description Language and open up the possibility of creating Qubic-specific ASICs. Once we have verified the ideas further in practice we will do a write-up of all the exciting new ideas in this area.

Qupla

Part 7 in the series of articles that explore the depths of the Qubic Computation Model (QCM) is nearing completion. I had hoped to have it released by now but there were a lot of moving parts that needed managing this month. Omega team will be merging back into Alpha team by the 10th of June and as you can probably appreciate this takes some careful planning.

We now have a new way of generating optimized Verilog code for FPGA. Verilog is the current Hardware Description Language that is used to synthesize the actual FPGA circuitry. The optimized code can be created for any function, and can be optimized for the different trit encodings. One very exciting optimization in the trit encoding enables us to invert trit values without circuitry. It becomes just a matter of crossing two wires.

The initial experiments with different looping constructs to simplify code that otherwise would have to resort to complex recursion are looking good and the results will probably become available in Qupla after the Omega/Alpha merge. The exact syntax needs some finalizing. But as a teaser of what it can do: we rewrote the Curl hash function using the new looping/parallelization construct and reduced it from 729 lines of code to just 5 lines.

Community

Finally, yet another community member, Evaldas Drąsutis (lunfardo on Discord) has joined the Qubic team on June 1st. He will be assisting Eric with everything related to the QCM, Qupla and Abra.

As has been evident all these months, our Discord community has become pretty much our best resource for hiring new IF members. The process invariably seems to be the same. A Discord member puts the spotlight on himself by enthusiastically participating in discussions and by picking up or creating a project that is interesting to him. Once these contributions reach a certain threshold there is always someone within IF who starts asking if it wouldn’t be a good idea to hire that person. You could say that it’s simply a matter of accumulating enough mana in the Discord network :-P

I would personally like to thank all the team members and other fun people within IF and in the community for all your support and cooperation in the last year. Thank you for the many interesting discussions that forced me to keep up with more aspects of IOTA than I probably would have otherwise. Thank you for allowing me to vent my quirky sense of dad-humor. I really appreciate all you kids for keeping it positive and fun. Thank you also for your trust in me and your patience during last year’s Qubic roller coaster ride. We’re definitely on track to create something remarkable that we can be proud of.