NODE OPERATOR'S HANDBOOK

Introduction

This is a guide to using Plan 9 and Inferno to connect to the /9/grid, a decentralized grid computing framework designed for home desktop users. The project was begun by users of the technolo/g/y board on 4chan. The goals of the project are to allow non-technical users to easily share files, run applications, communicate, and do distributed computation by using Plan 9 or Inferno in combination with their usual OS.

Plan 9 technology is available in many forms, and there are many ways to connect to the grid. In addition to the tools covered in this handbook, Plan9Port, 9vx, and others can also make 9p connections and run rc scripts. 9vx is a fully supported grid platform. Plan9port would require some hacking to adapt the scripts. Inferno connects easily, and the g/toolkit Plan 9 scripts are designed to interconnect with Inferno registry systems.

Grid Capabilities

This version of the toolkit is based around 9p services. 9p/Styx is the basic protocol of the Plan 9 universe, and provides not only a platform for filesharing, but also the capacity to run shared applications or connect to dynamic data streams. A few examples of grid applications:

  1. File sharing.
  2. Remote CPU service.
  3. Distributed redundant file storage and archiving.
  4. Real-time collaboration on shared files.
  5. Anything else that can be done via 9p!

This handbook is intended as an introduction to connecting to the grid, accessing resources, and sharing them. The examples given will focus on simple filesharing, but remember that a 9p connection can do a lot more than just provide static files.

Overview

The /9/grid is designed as a self-assembling network of equal peers. Nodes connect to each other by attaching 9p services which are tracked via service registries. A registry is a simple 9p service which provides a list of known services, and allows nodes to announce services to it. The use of multiple, redundant registries is the key to making the grid decentralized and fault-tolerant. A node connected to multiple registries will still know how to reach other nodes even if some of the registries disappear.

Each node can connect and disconnect freely so there is no burden on users to maintain continuous uptime, or coordinate time of use with other nodes. Furthermore, there are no minimum requirements to connect. There is no obligation to provide any public services to the grid, and no need to create any kind of 'account' to use the grid. Some grid resources may require authentication at the choice of the provider them, but there will always be fully open, free, public services available. Node operators are responsible for setting their own policies.