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.localhost:8080/pub/OpenBSD
       ```
       
       # 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.