Multicast as a vehicle for managing hardware infrastructure

The Librecast team has a passion for Human Rights and reducing the environmental footprint of the internet. Librecast considers multicast as an efficient way to orchestrate our infrastructure.

Multicast isn’t a new technology, it is baked into IPv6. We believe that multicast is the only environmentally efficient way for the Human Scale Internet. Multicast has a myriad of potential use-cases beyond streaming, which has been its traditional function.

Because multicast acts very differently from the unicast connected world that we live in,  its properties are different. Multicast, unlike unicast works by “pull” not “push”. Multicast is subscription-based. If you connect to a multicast group, you don’t need to know the destination address of the subscriber, the privacy benefits for multicast start from that premise.

We have presented on the project and the topics of human rights and privacy benefits of multicast (see video: https://librecast.net/videos.html).

Brett Sheffield, the founder of Librecast
Brett Sheffield, the founder of Librecast

Our founder Brett Sheffield started looking at multicast as a vehicle for managing hardware infrastructure in 2017. He became fascinated by how differently multicast behaves compared to unicast networking. Multicast has been around since the 90s. Multicast isn’t a new technology, we believe we are thinking about different applications for multicast that can help our social networks on the internet to scale.

Most people think about streaming with multicast and that it’s like broadcast.  Multicast is the opposite, it is “pull rather than push”. Nodes subscribe for updates.

We believe that the potential scaling benefits of multicast can contribute to degrowth. Using multicast, companies can reduce the need for large amounts of infrastructure to handle use cases like software updates.

We received a small grant for NGI Zero PET. Multicast has privacy properties due to its publish-subscribe model. It doesn’t need to care where a subscriber is from. We are developing a streaming platform for meetings or conferences.

We are building this application by making small useful multicast tools that can be adopted by other projects down the line, rather than a monolithic application.  We also have a small Grant from NGI Assure. This grant will enable Librecast to continue producing small encrypted multicast tools for developers to use IPv6 multicast in their applications to help to scale them. These encrypted multicast tools will also improve the MVP of Librecast Live.

We applied to Fed4Fire to test a simple use case for multicast: software updates. Librecast aimed to test some proof of concept code (IoT updater) to provide software updates over multicast.

Esther Payne, Privacy Advocate and Community manager of Librecast
Esther Payne, Privacy Advocate and Community manager of Librecast

We are using a 1990s concept and technology and aim to bring multicast out from its streaming roots to enable true group communication. The internet, (despite being a social network that fosters group communication) is unicast, which needs a lot of technology band-aids and large amounts of centralized solutions to enable scale. Multicast was created in the first place to scale up the internet as it started to grow.

As a project, Librecast aims to produce useful applications to illustrate the improvements of multicast over unicast at scale.

To do that we also need to demonstrate the unique properties of a multicast internet.  Which is unique.  Multicast behaves very differently from unicast. Applications designed from a multicast point of view, behave very differently and are more suited to group communication.  All communication on the internet is group communication. Multicast is vital as a part of the Next Generation Internet.

The Librecast founder Brett Sheffield heard about NGI support through a friend who knew NLNET, which manages the NGI Zero fund and now co-manages NGI Assure. Other NGI initiatives Librecast has heard of through the excellent work that NLNET has done to publicise various meetups and other initiatives like Tetra and Atlantic.

Experiment to compare unicast vs multicast

Our experiment with Fed4fire was Librecast: IoT Software Updates of IPv6 Multicast. The experiment was run on IMECs Virtual Wall 1. Librecast aimed to create a simple experiment to compare unicast versus multicast for the simple use case of software updates. The experiment aimed to measure and compare the load on servers and demonstrate the different properties of multicast.

Normally with unicast, servers and other devices deliberately stagger requests and provision of software updates. Multicast on the other hand, due to its publication/subscription model, accepts all of the requests at once. There is no need to stagger server requests and the load remains the same.

The results from the experiment demonstrated,  that for the load on a server across the network, the load remains the same for multicast. Unicast was starting to show a large increase in load.  Librecast would like a larger scale experiment to confirm these findings, by a higher magnitude than tens of nodes. In future experimentation, Librecast aims to recreate these simple comparison experiments on a testbed on a scale of thousands.

We would like to have a larger-scale experiment in the future as we believe that multicast will save business costs as more pressure in the form of carbon taxes is brought to bear in the EU. A future experiment with more metrics would demonstrate the potential power and cost savings.

The modification of the code we were testing and using the testbed helped improve the design of a simple Linux-based software multicast router. We also added MLD (Router Protocol) V2 triggering to our syncing software. This helped to improve our design for our small multicast tools, which have been funded by NGI Zero. For example, LC sync is a rsync-like tool that uses Merkle Trees to manage the synchronisation of files. The project is now in the process of getting lcsync into Debian experimental. The librecast libraries are in Debian Experimental, thanks to the work of Vagrant Cascadian of Reproducible Builds.

Thinking ahead and seeking opportunities

The NGI Zero communities on decentralized networks like Mastodon do look for opportunities to collaborate. During the pandemic, in particular, various developers and projects from NGI Zero did collaborate and share information. Interaction between projects using fed4fire and other NGI-funded projects has been limited.

If Fed4fire considered having a presence in the fediverse, that would introduce more of a commonality. This could open up more avenues for collaboration between Fed4fire and other projects.

The closeness of the NGI community has a lot to do with various mentors in the fediverse that already had NGI Zero Funding. We have other NGI-funded projects like DAPSI which tend to talk together and collaborate on educating the wider community in the fediverse.

I think that Fed4fire (and its follow-up from Fed4Fire) would find more interesting innovative projects by having more of an active presence in Social media in general. NGI would foster a dynamic diverse community of technologists who are interested in building the human-centric and next-generation of the internet if they took more of an active lead in the fediverse.

Several funded NGI projects actively post about NGI. More projects would take part in NGI events online if NGI engages on Mastodon, Pixelfed, Peertube, etc.

At the moment Librecast is still in the middle of building the MVP. Librecast would also like to collaborate more with other projects.

This is the main reasoning behind the strategy to build small multicast tools rather than one big monolithic application. Librecast aims to foster more use of multicast and develop the market for this. To further that aim, the project wants to give a flexible toolset to the community and help other projects to develop multicast applications.

We will be finishing up our NGI Zero funding this summer, but we are fortunate to have received the go-ahead for NGI Assure funding to develop more encrypted multicast tools and improve on Librecast Live!

As well as hosting Librecast Live, Librecast aims to provide multicast hosting to other applications that wish to take advantage of the benefits of IPv6 multicast. Librecast would like to develop and support the market for multicast applications for people to communicate and grow their communities. Librecast aims to help those communities to protect their human rights as it’s a part of the early internet ideals. Human Rights and Privacy are the main pillars of our project.