orgfs
orgfs is a small tool that spreads files across the machines of a group as stripes (byte slices), keeps more than one copy of each stripe, and lets any machine put the pieces back together and check that nothing was altered on the way. The group, the stripes and the copies are all described by one plain-text Org file, the declaration, which every machine holds identically. Each machine works out its own part from that same file; no machine is in charge.
This site is built by orgfs from such a declaration. It shows the declaration, the plan it produces, and the licences of the free software the project itself relies on, so that you can see whose work is in use and on what terms.
The declaration
Spoke licensing, identity (sha256 of its normalized properties):
1df8d78c7e2b291b459ee275c505504e655e75ee2e1693eeabe98e23c319e013
- Ring
- GREAT
- Stripes
- 5
- Replicas
- 2
- Visibility
- public
| Member | Transport | Root |
|---|---|---|
| gw12 | local | /spokes/gw12/storage |
| gw14 | sshfs | /spokes/gw14/storage |
| gw16 | sshfs | /spokes/gw16/storage |
| gw34 | sshfs | /spokes/gw34/storage |
The declaration file itself, prose included: declaration.org.
The plan
For each stripe, every member scores sha256 of spoke|stripe|member;
the 2 highest scores hold the stripe. Because the rule uses only
the declaration, every machine computes the same table.
| Stripe | gw12 | gw14 | gw16 | gw34 |
|---|---|---|---|---|
| 1 | no | holds | no | holds |
| 2 | holds | no | holds | no |
| 3 | no | holds | holds | no |
| 4 | no | holds | no | holds |
| 5 | holds | no | no | holds |