Happy New Year everyone and welcome to the revamped Qubic team!
December saw a restructuring of our development processes with the introduction of Omega team. After a little bit of initial upheaval, everyone quickly decided on a personal focus point and started with renewed energy.
With the separation of responsibilities very clear, each team member now owns and works on a very specific part of the project. The boundaries between the separate components have been documented clearly and these boundaries are updated, as needed, by quick communication between the team members involved. In addition, each separate component has now been open-sourced so that the community not only has a direct view of our progress but also can contribute to the development of the components.
One of the things that had become clear to us during the last few months was that we were blurring the lines between IoT and Internet requirements of the system too much. Since IoT requires lean-and-mean systems, whereas the Internet needs more enterprise-level systems, it was decided to modularize the system in such a way that the users can decide for themselves what components they need. A redesign of the entire system based on CfB (Sergey Ivancheglo)’s Ict (pronounced ‘ikt’) concept has been started, which will allow for ultimate flexibility and extensibility.
Lukas decided to own the Ict component and took it upon himself to rewrite the Ict client from scratch, taking the lessons learned from CfB’s initial implementation. He is turning it into a lean, and very extensible core system component. The responsibility of Ict is to provide the core level Tangle access for transactions and data integrity. The extensibility of Ict is achieved through the Iota eXtension Interface (IXI) which decouples applications from the underlying implementation through a protocol.
The IXI will allow us to add components needed for Qubic to function correctly. An example of such an IXI module is the Timestamping IXI that Qubic will need in the future. Responsibility for the IXI modules is now in the hands of our latest team member Samuel, another community member that decided to join IF. His article on E-voting on the Tangle shows his deep interest in IOTA. Samuel joined forces with Lukas over Christmas to create a Proof-of-Concept IXI module called CHAT.ixi that essentially created a permissionless and uncensorable chat application on the Tangle.
Paul has taken up the responsibility for the Qubic architecture. He is working closely with CfB on the core protocols of Qubic and the Abra specification. Abra is no longer the programming language for Qubic that we built over the last few months, but rather transformed into a specification for how to run a programming language in a dataflow architecture geared towards the IoT. Abra, like Ict, is extremely minimal. Its run-time model is implemented through a common low-level assembly language tritcode specification that allows Abra code to be run anywhere.
The original Abra programming language was starting to exceed its scope as a simple assembly-level programming language for Qubic. So we decided to revamp the existing parser/interpreter/compiler and allow it to grow into a higher-level programming language called Qupla (which is short for QUbic Programming LAnguage). Qupla is the first programming language that implements the new Abra specification and is Eric’s responsibility. He will focus on translating the sometimes alien concepts of the Qubic Computation Model (QCM) into programming language constructs that feel familiar to programmers.
The responsibility for the FPGA/ASIC implementation of the QCM is still in the hands of Donald. He has been defining how the translation of Abra to Verilog needs to happen and has started to compile and run the resulting Verilog code on actual FPGAs. He will also be implementing the Supervisor module that governs the dataflow model of the QCM and that allows the Abra code to run on these devices.
Well, there you have it. The new and improved Qubic project. The amount of progress in the last month has been astonishing and the separate components are starting to come together nicely. Already new ideas have begun to form due to the new possibilities provided by the new architecture. The next few months are going to be very interesting. Especially once people like Hans and Luca will finally be able to jump in as well.
We would like to invite our community to join in the fun. There are so many awesome ideas out there, and you’ve already proven that you are able to help us out in small and large ways. Sometimes by helping us to identify bugs, sometimes by providing us with cool tools. But we would love to see you actively involved in the development of features as well. Feel free to talk to us and implement some of your ideas.