EOS: Distributed Networking Module

Table of Contents

(provide 'eos-distributed)

This module provides hooks for various distributed services.

EOS Matrix communication and synchronization module

Matrix is a decentralized way to "join" different communication platforms. Kind of like XMPP, but sane.

I recently set up a Synapse (Matrix's homeserver) server on writequit so that I could join my own things. Thankfully, @real_rrix wrote an elisp client for matrix, so I can join from my Emacs instance.

(use-package matrix-client
  :disabled t
  :init
  (setq matrix-homeserver-base-url "https://writequit.org"
        matrix-client-render-html nil)
  (defun eos/matrix-jack-in ()
    (interactive)
    (matrix-client "dakrone")))

Add Matrix sauron support (for notifications)

(use-package matrix-client
  :disabled t
  :config
  (require 'matrix-sauron)
  (add-to-list 'sauron-modules 'matrix-sauron)
  (when (and sr-running-p (and (boundp 'sauron-matrix-running)
                               (not sauron-matrix-running)))
    (matrix-sauron-start)))

IPFS - Distributed file-system

Running the IPFS daemon

I'd like the run the IPFS daemon as my local user, after installing and initializing it. Notice that this requires installing IPFS, and then already running ipfs init as your user, before running this service

[Unit]
Description=IPFS Daemon

[Service]
Type=simple
ExecStart=/usr/local/bin/ipfs daemon
ExecStop=/usr/bin/pkill ipfs
Restart=always

[Install]
WantedBy=default.target
cp -fv $PWD/out/ipfs.service ~/.config/systemd/user/ipfs.service
systemctl --user daemon-reload
systemctl --user enable ipfs
systemctl --user start ipfs

Author: Lee Hinman

Created: 2017-08-21 Mon 14:28