diff --git a/ceremony/README.md b/ceremony/README.md index 5ce676612e..f6174e29ee 100644 --- a/ceremony/README.md +++ b/ceremony/README.md @@ -1,38 +1,15 @@ -# create-svelte - -Everything you need to build a Svelte project, powered by [`create-svelte`](https://github.com/sveltejs/kit/tree/main/packages/create-svelte). - -## Creating a project - -If you're seeing this, you've probably already done this step. Congrats! - -```bash -# create a new project in the current directory -npm create svelte@latest - -# create a new project in my-app -npm create svelte@latest my-app -``` +# Ceremony Web App ## Developing -Once you've created a project and installed dependencies with `npm install` (or `pnpm install` or `yarn`), start a development server: - ```bash -npm run dev - -# or start the server and open the app in a new browser tab -npm run dev -- --open +nix run .#ceremony-dev-server ``` ## Building -To create a production version of your app: +To create a production version of the union ceremony app: ```bash -npm run build +nix build .#ceremony ``` - -You can preview the production build with `npm run preview`. - -> To deploy your app, you may need to install an [adapter](https://kit.svelte.dev/docs/adapters) for your target environment. diff --git a/dictionary.txt b/dictionary.txt index 9e3d695b67..a2949e13c4 100644 --- a/dictionary.txt +++ b/dictionary.txt @@ -89,6 +89,7 @@ Halfnode Hashable Hasher Hedgies +Hetzner Hhvf Hyperlane IAVL diff --git a/docs/astro.config.ts b/docs/astro.config.ts index 5a8bbbcde7..87c289b45b 100644 --- a/docs/astro.config.ts +++ b/docs/astro.config.ts @@ -193,6 +193,10 @@ export default defineConfig({ autogenerate: { directory: "/joining-testnet" } + }, + { + label: "Ceremony", + link: "/ceremony" } ] }, diff --git a/docs/src/content/docs/ceremony.mdx b/docs/src/content/docs/ceremony.mdx new file mode 100644 index 0000000000..9df52696de --- /dev/null +++ b/docs/src/content/docs/ceremony.mdx @@ -0,0 +1,55 @@ +--- +title: "Ceremony" +--- + +Union's Ceremony has the following components: + +- Web app [ceremony.union.build](https://ceremony.union.build) +- [MPC client](https://github.com/unionlabs/union/pkgs/container/union%2Fmpc-client), running in the terminal +- The coordinator, managing the queue and aggregating uploads. + +We use [Nix](https://nixos.org) to create fully reproducible builds of all components and provide commands so that you can build them yourself. + +## Web App + +Deployed on [ceremony.union.build](https://ceremony.union.build), Handles auth and shows queue status. Also shows all contributions. + +You can build it locally like this: + +```sh +GIT_LFS_SKIP_SMUDGE=true nix build github:unionlabs/union/release/ceremony#ceremony +``` + +## MPC Client + +Image published [here](https://github.com/unionlabs/union/pkgs/container/union%2Fmpc-client), 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: + +```sh +GIT_LFS_SKIP_SMUDGE=true nix build github:unionlabs/union/bbfaa2f39d0183c2fd6c1d2505fad6c64ddb39e1#packages.x86_64-linux.mpc-client -L +``` + +and load the image like this on a `x86_64-linux` machine:: + +```sh +docker load -i ./result +``` + +## MPC Coordinator + +The coordinator has two components: + +1. Postgres, managing the queue and contributions. Hosted by Supabase. +3. The `mpc-coordinator` service, verifying incoming contributions. Hosted by Hetzner. + + +You can see the database schema [here](https://github.com/unionlabs/union/blob/bbfaa2f39d0183c2fd6c1d2505fad6c64ddb39e1/mpc/coordinator/database.sql), and you can build the service locally like this on a `x86_64-linux` machine: + +```sh +GIT_LFS_SKIP_SMUDGE=true nix build github:unionlabs/union/bbfaa2f39d0183c2fd6c1d2505fad6c64ddb39e1#packages.x86_64-linux.mpc-coordinator -L +``` +There are no trust assumptions on the database, as at the end of the ceremony all contributions will be published and verifiable by all. + + +