Introduction
Introduction Statistics Contact Development Disclaimer Help
Title: What if Internet stops? How to rebuild an offline federated
infrastructure using OpenBSD
Author: Solène
Date: 21 October 2021
Tags: openbsd distributed opensource nocloud
Description:
# Introduction
What if we lose Internet tomorrow and we stop building computers? What
would you want on your computer in the eventuality we would still have
*some* power available to run it?
I find it to be an interesting exercise in the continuity of my old
laptop challenge.
# Bootstrapping
My biggest point would be that my computer could be used to replicate
itself to other computer owners, give them the data so they can spread
it again. Data copied over and over will be a lot more resilient than
a single copy with a few local backups (local as in same city at best
because there is no Internet).
Because most people's computers relying on the Internet to have data
turned into useless bricks, I think everyone would be glad to be part
of an useful infrastructure that can replicate and extend.
# Essentials
I think I would have to argue this is very useful to have computers and
knowledge they can carry if we are short on electricity for running
computers. We would want science knowledge (medicine, chemistry,
physics, mathematics) but also history and other topics in the long
run. We would also require maps of the local region/country to make
long term plans and help decisions and planning to build
infrastructures (pipes, roads, lines). We would require software to
display but also edit these data.
Here is a list of sources I would keep synced on my computer.
* wikipedia dumps (by topics so it's lighter to distribute)
* openstreetmap local maps
* OpenBSD source code
* OpenBSD ports distfiles
* kiwix and openstreetmap android APK files
The wikipedia dumps in zim format are very practical to run an offline
wikipedia, we would require some OpenBSD programs to make it work but
we would like more people to have them, Android tablets and phones are
everywhere, small and doesn't draw much battery, I'd distribute the
wikipedia dumps along with a kiwix APK file to view them without
requiring a computer. Keeping the sources of the Android programs
would be a wise decision too.
As for maps, we can download areas on openstreetmap and rework them
with Qgis on OpenBSD and redistribute maps and a compatible viewer for
Android devices with the OSMand~ free software app.
It would be important to keep the data set rather small, I think under
100 GB because it would be complicated to have a 500GB requirement for
setting up a new machine that can re-propagate the data set.
If I would ever need to do that, the first time would be to make
serious backups of the data set using multiples copies on hard drives
that I would I hand to different people. Once the propagation process
is done, it matters less because I could still gather the data
somewhere.
Kiwix compatible data sets (including Wikipedia)
Android Kiwix app on F-droid
Android OSMand~ app for OSM maps on F-droid
# Why OpenBSD?
I'd choose OpenBSD because it's a system I know well, but also because
it's easy to hack on it to make changes on the kernel. If we ever need
to connect a computer to an industrial machine, I'd rather try to port
if on OpenBSD.
This is also true for the ports library, with all the distfiles it's
possible to rebuild packages for multiple architectures, allowing to
use older computers that are not amd64, but also easily patching
distfiles to fix issues or add new features. Carrying packages without
their sources would be a huge mistake, you will have a set of binary
blobs that can't evolve.
OpenBSD is also easy to install and it works fine most of the time.
I'd imagine automatic installation process from USB or even from PXE,
and then share all the data so other people can propagate installation
and data again.
This would also work with another system of course, the point is to
keep the sources of the system and of its package to be able to rebuild
the system for older supported architecture but also be able to enhance
and work on the sources for bug fixing and new features.
# Distributing
I think a very nice solution would be to use Git, there are plugins to
handle binary data so the repository doesn't grow over time. Git is
decentralized, you can get updates from someone who receives an update
from someone else and git can also report if someone messed with the
history.
We could imagine some well known places running a local server with a
WiFi hotspot that can receive updates from someone allowed to (using
ssh+git) push updates to a git repository. There could be repositories
for various topics like: news, system update, culture (music, videos,
readings), maybe some kind of social network like twtxt. Anyone could
come and sync their local git repository to get the news and updates,
and be able to spread it again.
twtxt project github page
# Conclusion
This is often a topic I have in mind when I think at why we are using
computers and what makes them useful. In this theoretic future which
is not "post-apocalyptic" but just something went wrong and we have a
LOT of computers that become useless. I just want to prove that
computers can still be useful without the Internet but you just need to
understand their genuine purpose.
I'd be interested into what others would do, please let me know if you
want to write on that topic :)
You are viewing proxied material from dataswamp.org. The copyright of proxied material belongs to its original authors. Any comments or complaints in relation to proxied material should be directed to the original authors of the content concerned. Please see the disclaimer for more details.