No description
Find a file
khleedril 2082382bc7
All programs now take command-line arguments and treat fingerprints uniformly.
In light of experience gained in running the Stage 1 bootstrap, some
essential refinements have been made to all three of the programs

Inputs to programs are sanitized, so that PGP key fingerprints and UUIDs
can be specified with some flexibility, and bad entries will not mess
things up.

The programs take in data files where appropriate, instead of having
hard-wired parameters at the heads of source codes.  Thus re-compilation
and re-deployment of the binaries should not be necessary to change the
operations of the toolkit.

The programs emit a message on successful start-up informing of the PID
and essential parameters, such as TCP ports being monitored.

   * README.txt :  brought up to date
   * rust/Cargo.toml :  version to 1.2.0
   * rust/src/bin/bootstrap-0/mycelium-data--example.json :  NEW file
   * rust/src/bin/bootstrap-0/mycelium.rs :  extensive changes
   * rust/src/bin/bootstrap-1/adjudicator-data--example.json :  NEW file
   * rust/src/bin/bootstrap-1/adjudicator.rs :  extensive changes
   * rust/src/bin/bootstrap-1/polling-booth.rs :  extensive changes
   * rust/src/lib.rs :  functions to normalize fingerprints and UUIDs
   * rust/src/person.rs :  normalization of a Person object
2025-10-01 17:24:12 +01:00
rust All programs now take command-line arguments and treat fingerprints uniformly. 2025-10-01 17:24:12 +01:00
.guix-authorizations Authorize Khleedril for commits. 2025-08-15 08:40:05 +01:00
bootstrap-stage-0.html Bootstrap Stage 1. VERSION at 1.1.0. 2025-09-13 17:43:10 +01:00
bootstrap-stage-0.txt Bootstrap Stage 0. 2025-08-17 12:33:35 +01:00
bootstrap-stage-1.html Bootstrap Stage 1. VERSION at 1.1.0. 2025-09-13 17:43:10 +01:00
bootstrap-stage-1.txt Bootstrap Stage 1. VERSION at 1.1.0. 2025-09-13 17:43:10 +01:00
GPLv3.txt Bootstrap Stage 0. 2025-08-17 12:33:35 +01:00
README.txt All programs now take command-line arguments and treat fingerprints uniformly. 2025-10-01 17:24:12 +01:00

               ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
                MYCELIUM TOOLKIT FOR ON-LINE GOVERNANCE
               ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━


Table of Contents
─────────────────

1. GIT Repository
.. 1. Branches
.. 2. Tags
2. Building
3. Deployment
.. 1. People / Bootstrap Stage Zero
.. 2. Projects / Bootstrap Stage One


The Mycelium network is a non-discoverable, totally un-centred, network
of nodes each of which mutually assert that a small set of other nodes
belong to actual, trustworthy people, and each node offers opinions of
other people in some contexts.  The network can be used to establish the
authenticity of strangers as actual people, and to conduct opinion polls
regarding some project issues.

At the moment the network is only useful for people involved in FOSS
projects who run their own web site.  When user-friendliness is worked
out, it will be available to a much wider audience.


1 GIT Repository
════════════════

1.1 Branches
────────────

  main
        this branch, providing all available white papers, and the code
        to produce the `mycelium', `polling-booth' and `adjudicator'
        applications,
  boot-0
        the minimal, self-contained code to produce the *definitive*
        `mycelium' application,
  broken-guile-implementation
        partial development of a Guile version of the `mycelium'
        application; see the git log for information.


1.2 Tags
────────

  Tags exist for all version release points, and all public
  announcements: the state of the code actually deployed to effect an
  announced action.  The currently pertinent tags are

  ‣ `v1.0.2', the definitive `mycelium' program,
  ‣ `V1.2.0', the current mainline head,
  ‣ `announce-1', the bootstrap stage 0 announcement,
  ‣ `announce-2', the bootstrap stage 1 announcement.


2 Building
══════════

  Users should have a Rust toolchain available.  The project can be
  built simply by running `cargo build --release'.


3 Deployment
════════════

3.1 People / Bootstrap Stage Zero
─────────────────────────────────

  To be a verified person on the network you need to be familiar with
  the Bootstrap Stage Zero white paper (available in this directory),
  must create the data file for `mycelium.rs' (there is an example with
  the code called `mycelium-data--example.json'), and then run this
  program as a web service proxied by a front-end web server which can
  deal with TLS security.  [Out of band, you will want to hook up with
  some trusted friends who are also engaging with the Mycelium network
  to establish mutual cross-references with each other.]

  You will find the refined version of mycelium.rs in the
  `rust/src/bin/bootstrap-0' directory.  If you want total peace of
  mind, the original self-contained simpler version is available in the
  `boot-0' branch of this repository (in either case you should ensure
  you are up to date with the head of the branch).


3.2 Projects / Bootstrap Stage One
──────────────────────────────────

  Projects wishing to vote on an issue should be familiar with the
  Bootstrap Stage One white paper (available in this directory), must
  modify the heads of the `polling_booth.rs' and `adjudicator.rs' files
  and the files referenced therein, and then run these two programs
  under a public web server.  [This will need to be accompanied by a lot
  of out-of-band work of general, social, project governance to
  establish the parameters of a vote (including a hard deadline),
  advertise it, and make sure that all the governors of a project are on
  board.]