BOINC Development Status Report: December 2024

As the year draws to a close, it's time to reflect on 2024 and review its highlights and challenges.

Last year, I found myself in Vienna, Austria, contemplating 2023. At the time, this blog contained only an Introductory post and I had no concrete plans to update it regularly. Instead of writing a full blog post to share the BOINC contribution statistics, I opted for a simple update on X (formerly Twitter), Mastodon, and Threads.  However, this year, there’s much more to say about BOINC, so I decided to create a more detailed report.

At the start of 2024, I didn’t have high expectations. Yet, the year managed to surprise me—though not always in the ways I had hoped.

Reflections on Key Events

The main event of the year—the BOINC Anniversary Workshop—was bittersweet for me. While I wasn’t entirely disappointed, I had hoped for more enthusiasm and engagement. I’ve shared more details in a dedicated blog post, but to summarize: I enjoyed reconnecting with colleagues I’ve worked with over the past five years, and we generated some promising ideas for BOINC’s future. Still, the level of activity fell short of my expectations.
Another significant event, the conference in Bielefeld, amplified my concerns. It highlighted a growing need for fundamental changes in BOINC to ensure it continues to meet scientists’ evolving needs. As Adam Jensen, the protagonist of Deus Ex: Mankind Divided, aptly said, “The world is different now; the old rules no longer apply.” BOINC has been a unique and valuable resource for scientists over the past 20 years, but it must adapt to stay relevant.

Steps Toward Change

This year saw the introduction of a new concept: "Sporadic applications".These applications sit idle on users’ devices, ready to execute AI and ML tasks on command. While no active project currently utilizes this model, I’m confident we’ll see it adopted in the near future.

Another exciting development is the upcoming inclusion of BUDA (BOINC Universal Docker Applications) in the next release. This feature will significantly simplify application creation for scientists by leveraging Docker to handle platform-specific challenges. While Android remains an exception due to its increasingly restrictive nature, BUDA represents a critical step toward greater accessibility and efficiency.

Challenges and Delays

Despite the progress, the year wasn’t without its setbacks. I initially planned to release two more versions of the BOINC client in 2024, but these have been delayed to Q2 2025. The primary obstacle has been the expired signing key for the Windows installer. The process of acquiring a new key has become much more complex, as offline keys (in PFX format) are no longer permitted. This situation also forced an unplanned migration from the old InstallShield installer to a new custom solution. While this change was on my long-term roadmap, I hadn’t anticipated addressing it under such time pressure. Once resolved, the release process will closely resemble the streamlined Linux vanilla packaging process. My ultimate goal is to make releases as simple as a single button click.

Looking Ahead

2024 was a challenging yet eventful year, filled with progress and lessons. Looking forward, we have ambitious plans to enhance BOINC, making it more advanced and user-friendly. Stay tuned for updates as we bring these ideas to life.

And now, it’s time to share some statistics from the past year.

New issues153
Issues closed217
Total open issues445
New PRs332
PRs closed330







BOINC Development Status Report: November 2024

November was a productive month.

During this month, 24 pull requests (PRs) were merged, contributing to a total of 49 commits.

David completed the main phase of Docker support for BOINC. This functionality will undergo internal testing before being rolled out publicly.

Excitingly, it now has a new name: BUDA.
The first project to benefit from this new application type is BOINC Central. While there is no exact release date yet, we anticipate it will be available either before Christmas this year or shortly afterward. We’ll share an announcement once everything is finalized.

Meanwhile, I have been working on a new Windows installer. We’ve been planning to replace the outdated InstallShield installer for several years. Not only does it require an expensive license, but the version we are licensed for dates back to 2011 and only works on a virtual machine running Windows XP.
This setup has made creating new releases cumbersome and has prevented us from integrating the build process into GitHub. (For instance, our Linux packages  build and release pipeline on GitHub is robust and efficient; I’ve described it in detail here).

Unexpected complications accelerated this transition. The old signing key expired, and the new one is incompatible with the format supported by InstallShield. Modern requirements mandate either a physical dongle or a cloud solution for signing executables, leaving us unable to make new releases without implementing a new installer.
Initially, I planned to use WiX for the new installer. However, after several weeks, I realized that WiX is too complex and restrictive for our needs. I prefer full control over my work, and WiX couldn’t provide that flexibility. Instead, I decided to develop our own installer, using JSON to define the installation package.
It’s not perfect or fully polished yet, but it’s already running smoothly:


We continue to make progress on both BUDA and the new installer to ensure they’re available as soon as possible.

BOINC Development Status Report: October 2024

This month was relatively calm, with fewer events.

David and I are working on adding Docker support. Most of the core work is done, but now we’re refining several parts of the existing functionality within the BOINC client to ensure compatibility with the new type of applications. A major advantage of Docker support, combined with WSL, is that it simplifies the infrastructure significantly. This makes things easier for project developers, as they no longer need to create separate applications for different operating systems. Although Android will still require a dedicated application, having a unified solution for desktop OSs is a significant step forward for BOINC. This also means projects can potentially drop VirtualBox support in favor of Docker, which is simpler and more flexible.

For more details about Docker and WSL, please refer to the following resources:

With Docker support, we can also run applications that were previously unsupported, which is very important for expanding BOINC’s functionality.

This year, I attended the GCB conference in Bielefeld, Germany, where I spoke with several scientists. While they were generally interested in BOINC, their first question was whether it could run Docker containers—a crucial capability for them. Most of their applications are written in Python and require additional packages to be installed on the system. Given BOINC's current architecture, distributing workloads across hosts is challenging. Additionally, many potential users interested in BOINC lack the time and expertise to set up their own project servers or configure applications correctly.

Our responsibility as BOINC maintainers is to simplify this process as much as possible and remove as many barriers as we can. Docker can be a significant help here, as it allows users to configure their environment once, which BOINC can then replicate automatically. While a project server is still required, we aim to use BOINC Central for smaller research projects, providing access for scientists who may not have the resources or skills to create their own server.



BOINC Workshop 2024: What's next?

This year, the BOINC Workshop was hosted by CERN in Geneva. I was very excited to go there and finally meet the people I had been working with virtually for more than five years. I had planned to write a blog post about this at the beginning of June, right after the Workshop. But after spending three days there, I decided to take some time to reflect on the experience. Over the last four months (and even longer by now), I’ve tried to write this post, but each time I wasn’t ready. However, there’s no reason to hold back any longer, and I feel it's time to share my thoughts.

I don’t want to repeat what David Anderson has already written, so I’ll just link to his post here: https://continuum-hypothesis.com/trips/geneva_24.php. It’s a very detailed and good report about the BOINC Workshop, the WSIS prize (and the cake!), and Geneva in general. My thoughts about those three days are pretty much in line with David’s.

The people were great, and the location was nice, but I left with a slightly bitter taste. Mostly because I was expecting to see more new faces - people who are new to BOINC - but instead, I only saw familiar ones.

I fully understand that the world has changed, and people are excited about entirely different things now. 

I remember myself about 15 years ago, staring at the graphics of the SETI@Home application. It was completely incomprehensible to me, but still mesmerizing. My PC back then had a single-core 1.8 GHz CPU, and I saw that finishing just one SETI@Home work unit would take several hours, yet I had the feeling that my computer was doing something great and important.  

Today’s youth get bored if something takes longer than 10 seconds (is that TikTok’s fault?). I’m not that old (almost 35), but I see that things that used to excite me and the people I knew just don’t capture interest anymore. And I don’t like that. 

I don’t think I can change this on a global scale, but I still believe in BOINC and its mission. I still believe BOINC is important. I know there are a lot of smart people with great ideas, but they often lack the means to implement them. Our mission is to help them.

During the Workshop, we discussed the need to implement Docker support in BOINC since it could significantly accelerate research. Scientists today no longer create applications in C/C++ or similar languages — they prefer using Python (which is slower to run but faster to develop). Having the ability to run complex Python scripts on BOINC without having to worry about the different platforms those scripts might run on is incredibly important. David Anderson is working on the first draft of a Docker wrapper for BOINC, and when it’s released, I’m sure it will open a new chapter in BOINC’s story of success.



BOINC Release 8.0.0 and liblzma vulnerability

 


Recently it was discovered that liblzma - the popular library for data compression/decompression - contains a severe vulnerability: https://tukaani.org/xz-backdoor/
Unfortunately, BOINC 8.0.0, that is available for alpha testing, was built with the malicious 5.6.0 version of this library.
This is because liblzma is the dependency of libtiff that is a dependency of wxWidgets, that is used to build the GUI of BOINC Manager.
As far as we can see, this issue doesn't affect our users, since the target of this 'backdoor' is an sshd process, and BOINC doesn't work with it in any way. Just to highlight one more time: only BOINC Manager was built with this library, and BOINC client doesn't use this dependency at all. So we strongly believe that our users are completely safe while using BOINC version 8.0.0
But since the analysis of this backdoor is not finished yet, we have decided to build another release 8.0.1 that downgrade the liblzma version to 5.4.4 that is completely safe. According to the available data, this backdoor works on Linux only, that is why BOINC 8.0.1 will be released for alpha testing for Linux only.
We will continue monitoring the situation, and if needed, will release 8.0.1 for other platforms as well.
Please use this page to find the instructions about using the BOINC Linux packages: https://boinc.berkeley.edu/linux_install.php
Thank you for understanding.
Stay safe!