Title: OpenBSD 6.9 packages using IPFS | |
Author: Solène | |
Date: 01 May 2021 | |
Tags: openbsd ipfs | |
Description: | |
# Update 15/07/2021 | |
I disable the IPFS service because it's nearly not used and draw too | |
much CPU on my server. It was a nice experiment, thank you very much | |
for the support and suggestions. | |
# Introduction | |
OpenBSD 6.9 has been released and I decided to extend my IPFS | |
experiment to latest release. This mean you can fetch packages and | |
base sets for 6.9 amd64 now over IPFS. | |
If you don't know what IPFS is, I recommend you to read my previous | |
articles about IPFS. | |
Note that it also works for -current / amd64, the server automatically | |
checks for new updates of 6.9 and -current every 8 hours. | |
# Benefits | |
The benefits is to play with IPFS to understand how it works with a | |
real world use case. Instead of using mirrors to distributes packages, | |
my server is providing the packages and everyone downloading it can | |
also participate into providing data to other IPFS client, this can be | |
seen as a dynamic Bittorrent CDN (Content Delivery Network), instead of | |
making a torrent per file, it's automatic. You certainly wouldn't | |
download each packages as separate torrents files, nor you would | |
download all the packages in a single torrent. | |
This could reduce the need for mirrors and potentially make faster | |
packages access to people who are far from a mirrors if many people | |
close to that person use IPFS and downloaded the data. This is a great | |
technology that can only be beneficial once it reach a critical mass of | |
adopters. | |
# Installing IPFS on OpenBSD | |
To make it brief, there are instructions in the provided pkg-readme but | |
I will give a few advice (that I may add to the pkg-readme later). | |
```OpenBSD installation instructions | |
pkg_add go-ipfs | |
su -l -s /bin/sh _go-ipfs -c "IPFS_PATH=/var/go-ipfs /usr/local/bin/ipfs init" | |
rcctl enable go_ipfs | |
# recommended settings | |
rcctl set go_ipfs flags --routing=dhtclient --enable-namesys-pubsub | |
cat <<EOF >> /etc/login.conf | |
go_ipfs:\ | |
:openfiles=2048:\ | |
:tc=daemon: | |
EOF | |
rcctl start go_ipfs | |
``` | |
Put this in /etc/installurl: | |
```local link to ipfs gateway | |
http://k51qzi5uqu5dmebzq75vx3z23lsixir3cxi26ckl409ylblbjigjb1oluj3f2z.ipns.loca… | |
``` | |
# Conclusion | |
Now, pkg_add will automatically download the packages from IPFS, if | |
more people use it, it will be faster and more resilient than if only | |
my server is distributing the packages. | |
Have fun and enjoy 6.9 ! | |
If you are worried about security, packages distributed are the same | |
than the one on the mirrors, pkg_add automatically checks the signature | |
in the files against the signify keys available in /etc/signify/ so if | |
pkg_add works, the packages are legitimates. |