Ceremony
Union’s Ceremony has the following components:
- Web app ceremony.union.build
- MPC client, running in the terminal
- The coordinator, managing the queue and aggregating uploads.
We use Nix to create fully reproducible builds of all components and provide commands so that you can build them yourself.
Deployed on ceremony.union.build, Handles auth and shows queue status. Also shows all contributions.
You can build it locally like this:
GIT_LFS_SKIP_SMUDGE=true nix build github:unionlabs/union/release/ceremony#ceremonyImage published here, handles the generation of the contribution, generation of the gpg key, and signs/uploads the contributions.
You can build it locally like this on a x86_64-linux machine:
GIT_LFS_SKIP_SMUDGE=true nix build github:unionlabs/union/bbfaa2f39d0183c2fd6c1d2505fad6c64ddb39e1#packages.x86_64-linux.mpc-client -Land load the image like this on a x86_64-linux machine::
docker load -i ./resultThe coordinator has two components:
- Postgres, managing the queue and contributions. Hosted by Supabase.
- The
mpc-coordinatorservice, verifying incoming contributions. Hosted by Hetzner.
You can see the database schema here, and you can build the service locally like this on a x86_64-linux machine:
GIT_LFS_SKIP_SMUDGE=true nix build github:unionlabs/union/bbfaa2f39d0183c2fd6c1d2505fad6c64ddb39e1#packages.x86_64-linux.mpc-coordinator -LThere are no trust assumptions on the database, as at the end of the ceremony all contributions will be published and verifiable by all.