A system for running distributed code over multiple PI Picos connected to each other. The reference implementation has them all standing on end in a ring, resembling a Cray supercomputer.
Wire all of the picos in parallel connecting GPIO 10,11,12,13 and GND to all of the picos. Each pico needs powering separatly either from the USB bus or 3v3 pin. Make the I2C bus as short as possible and you will need one pair of 4k7 Ohm resistors to +3v3 on GPIO 10 and 11, ideally in the last processor in the chain.
The Code is the same for all Picos, to specify a controller add a wire from GPIO 22 to GND There must be (only) one controller in each cluster.
orbit-db is a distributed peer-to-peer database on IPFS. This project intends to provide a fully compatible port of the JavaScript version in Go. OrbitDB uses IPFS as its data storage and IPFS Pubsub to automatically sync databases with peers. Implements append-only logs, traversable feeds, key/value storage, JSON document storage, and even a basic counter.
USENET-inspired, uncensorable, decentralized internet discussion system running on IPFS and OrbitDB, with lots of 80's style synthewave puns. Aims to be censorship-resistant and distributed. Requires a local IPFS client to access the network.
Populus-Viewer is a tool for decentralized social annotation, built on pdfjs, wavesurfer.js and the Matrix protocol. You can use it to read PDFs, listen to audio, or watch videos, and have rich discussions in the margins, with your friends, classmates, or scholarly collaborators.
Each uploaded file is attached to a matrix space, and each annotation to the file becomes a room within that space. Populus-Viewer has been tested with synapse and dendrite, but should be compatible with any spec-compliant matrix server.
The metaverse is here: an immersive Web full of social virtual and augmented reality experiences. However, mega-corporations want to lock it down and wall it up to make another addictive, toxic ad-selling platform. We’re taking it in a different direction because we dream of a democratized new era of the Web where creators own their content, users own their data, and no single entity exhibits undue influence on the community as a whole.
Immers Space is a social networking application that runs alongside your Immersive Web experience. It provides account registration and login for your site, allows users to login to your site with their existing accounts from other immers, and publishes social updates for users on your site (e.g. sharing a link to invite friends to meet up at your site).
Github: https://github.com/immers-space/
Javascript, but it's supposed to run in a browser. What can you do?
NNCP (Node to Node copy) is a collection of utilities simplifying secure store-and-forward files, mail and command exchanging. This utilities are intended to help build up small size (dozens of nodes) ad-hoc friend-to-friend (F2F) statically routed darknet delay-tolerant networks for fire-and-forget secure reliable files, file requests, Internet mail and commands transmission. All packets are integrity checked, end-to-end encrypted, explicitly authenticated by known participants public keys. Onion encryption is applied to relayed packets. Each node acts both as a client and server, can use push and poll behaviour model.
Out-of-box offline sneakernet/floppynet, dead drops, sequential and append-only CD-ROM/tape storages, air-gapped computers support. But online TCP daemon with full-duplex resumable data transmission exists.
p2p IRC-inspired self-hosted web chat. Seems to be encrypted, or at least signed for identification (ECC keypairs). Uses WebRTC and Webtorrent. STUN and TURN enabled.
Lots and lots of Javascript so download a release. Only requires a static webhost, though.
Dendrite will be a Matrix server written in Go. Requires Kafka (if run as a cluster of microservices) or something called Naffka (an embedded in-process workalike) if run monolithically. Requires Postgres as its back end.
SeaweedFS is a simple and highly scalable distributed file system. There are two objectives: to store billions of relatively small files, and to serve those files fast. Implements an object store with O(1) disk seek and an optional filer with a POSIX interface. Metadata can be stored in one of several RDBMSes. Speaks HTTP(S). Supports multiple access APIs, including S3, HDFS, and WebDAV. Can automatically back itself up offsite. Supports multiple URI formats, with varying degrees of niceness. Large files are chunked transparently to the user.
Mitogen is a Python library for writing distributed self-replicating programs.
There is no requirement for installing packages, copying files around, writing shell snippets, upfront configuration, or providing any secondary link to a remote machine aside from an SSH connection. Due to its origins for use in managing potentially damaged infrastructure, the remote machine need not even have free disk space or a writeable filesystem.
It is not intended as a generic RPC framework; not intended for direct use by consumer software.
The focus is to centralize and perfect the intricate dance required to run Python code safely and efficiently on a remote machine, while avoiding temporary files or large chunks of error-prone shell scripts, and supporting common privilege escalation techniques like sudo, potentially in combination with exotic connection methods such as WMI, telnet, or console-over-IPMI.
Github: https://github.com/dw/mitogen
Notes and scripts for setting up (yet another) Raspberry Pi computing cluster. One master, at least one slave to do the actual work. The master implements a certain amount of infrastructure for the rest of the network. Includes greyprints for 3D printing a rack for the units. Uses k3s and Docker.
One of those nifty system monitoring packages, with all the buzzwords you'd expect. Watches systems as well as applications. Has a dashboard, which I think you can disable. Realtime, too. Supports third party extensions and applications. Tries to use as little RAM as possible, tries to carry out as little storage I/O as possible. Claims to have a web API. Zero dependent packages.
Can notify through multiple means, including IRC, email, Pushover, and custom endpoints.
There is an OpenWRT package called 'netdata' which can be installed normally.
A search engine for IPFS. Built on top of Elasticsearch. Written in Golang. Also requires Elasticsearch because nobody knows how to use any other search back-end these days.
OrbitDB is a serverless, distributed, peer-to-peer database. OrbitDB uses IPFS as its data storage and IPFS Pubsub to automatically sync databases with peers. It's an eventually consistent database that uses CRDTs for conflict-free database merges making OrbitDB an excellent choice for decentralized apps (dApps), blockchain applications and offline-first web applications.
A minimalist decentralized issue management system based on Git. No back-end, no dependencies. Tickets are stored in the same Git repo as the project as text files in the .issues/ directory. Added to the other Git commands as an alias. Aims to be cross-platform, actually works on pretty much any *nix-alike.
Uses git's internal storage so no files are added in your project. As you would do with commits and branches, you can push your bugs to the same git remote you are already using to collaborate with other people.
A distributed database that speaks MySQL's dialect of SQL and wire protocol on the front end, and is a fully distributed database system on the back end. Automatically shards databases efficiently. Implements ACID compliant distributed transactions for consistency.
The homepage of a distributed search engine project. The project involves downloading and running a cross-platform spider (available for Windows, Linux, FreeBSD, MacOSX, and pretty much any OS which can run Mono) that will then crawl the web and upload what it finds to the project. This can use lots of bandwidth so consider carefully before joining in.
A distributed version control system, similar to Git or Mercurial, only it also includes a bugtracker, a wiki, and a blog for collaboration in the same package. Includes a web interface for everything. Can automatically sync with other instances. Self contained.
memcached is a distributed database based upon the principle of a hash table: Ask if an arbitrary key exists, and if it does you get the matching value stored in the hash table. If it doesn't, it will be. Least recently used objects get purged from the table to reclaim memory. memcached instances connect to one another so the hash table can span arbitrary numbers of nodes on a network but be queried with a single line of code. Note that securing your memcached grid is your job: It's designed to be run on a trusted network (i.e., your production network that you've hardened behind a firewall that you manage...)