- The Meta-iota project supported by the IOTA Ecosystem Development Fund has achieved new progress.
- Bernardo Rodrigues has integrated four projects: iota.py BitBake, iota.go, HORNET BitBake and a honeycombOS Distro configuration into Meta-iota and created a respective application example for each.
The independent developer Bernardo Rodrigues has already been selected by the IOTA Foundation for funding by the Ecosystem Development Fund. His project, an OpenEmbedded Layer for IOTA projects, Meta-iota, enables a simple and fast integration of IOTA projects into Yocto-based embedded Linux distributions. As Rodrigues explained, the Yocto project and OpenEmbedded are focused on Internet of Things (IoT) devices, as is IOTA, which aims to drive a machine-to-machine economy.
Yocto project is an open-source collaboration project that helps developers to build custom Linux-based systems independent of the hardware architecture. OpenEmbedded is a build automation framework and cross compile environment used to build Linux distributions for embedded devices. Together, both projects (YP/OE) provide a set of tools for developing Linux-based embedded and IoT devices.
Regarding the goal of the project, Rodrigues explains that bringing IOTA into YP/OE could accelerate the adoption of IOTA in the embedded Linux community, since many boards, through his work, could support the different IOTA softwares. For the first milestone, Rodrigues has ported three projects from IOTA’s enTangled repository.
New implementations for Meta-IOTA
For the second and last milestone, for which a report was published yesterday, Rodrigues ported four projects: iota.py BitBake, iota.go, HORNET BitBake and a honeycombOS Distro configuration and created a corresponding application example each.
Regarding iota.py, the official Python library for IOTA, Rodrigues writes that Meta-iota will only support Python 3. The biggest challenge was that many Python dependencies were not provided by the standard OpenEmbedded or Poky distributions. Because of this he developed some workarounds.
For iota.go, IOTA’s official Go client library, which allows creating, reading, signing and generating transactions, Rodrigues first wrote a BitBake recipe for the library itself. As the developer writes, this initially worked well. However, there was a problem when he started to integrate the client software HORNET, which made the implementation for iota.go unnecessary:
The problem with this initial approach is how BitBake processes the Golang compiler environment internally. If an application recipe sets a dependency that the library (iota.go) also depends on, but with different versions, the Golang environment doesn’t know how to handle both. The only way to handle this problem is by not having a separate recipe for the iota.go API, which means iota.go_1.0.0.bb is not really needed. This will be clearer in the next section, where I describe the Hornet BitBake recipe.
For the previously mentioned lightweight client alternative to IRI, HORNET, Rodrigues was able to achieve “really good performance”:
This performance improvement makes Hornet a good candidate for Embedded Systems.
However, according to Rodrigues, there are two limitations. On the one hand, the board must have at least 1 GB RAM. On the other hand, a Linux OS operating system is required to provide a Go runtime environment. According to the developer, the implementation has been tested on Raspberry Pi 3 and 4 by both him and the IOTA community without any major problems being reported.
The fourth implementation, honeycombOS, is described by Rodrigues as his biggest contribution to the IOTA community:
That is because it avoids all unnecessary bloatware shipped with popular distributions (e.g.: DietPi, Armbian and Raspbian) that have no use for IOTA nodes. All CPU power is saved for Tangle related computations.
honeycombOS is another embedded Linux distribution tailored for IOTA nodes, clients and Tangle related tools. It is mainly based on Poky and was created with the tools of the Yocto Project and OpenEmbedded. As a part of Meta-iota, honeycombOS is built as minimalistic and lightweight as possible, so that all CPU power is used for Tangle computations. Therefore, there was no user interface (GUI) so far, but according to Rodrigues this might follow in the future.
Bernardo Rodrigues has integrated four projects: iota.py BitBake, iota.go, HORNET BitBake and a honeycombOS […]