serai/orchestration
2023-10-21 20:12:41 -04:00
..
coins Remove unnecessary ENV flags from Bitcoin Dockerfile 2023-10-21 20:12:41 -04:00
coordinator Correct rust version used in CI/orchestration 2023-10-05 18:24:21 -04:00
kubernetes Rename deploy to orchestration 2023-07-27 03:19:35 -04:00
message-queue Correct rust version used in CI/orchestration 2023-10-05 18:24:21 -04:00
processor Correct rust version used in CI/orchestration 2023-10-05 18:24:21 -04:00
runtime Correct rust version used in CI/orchestration 2023-10-05 18:24:21 -04:00
serai Correct rust version used in CI/orchestration 2023-10-05 18:24:21 -04:00
docker-compose.yml Expand cluster-sm/local testnet to 4 validators for BFT where f=1 2023-08-06 13:42:16 -04:00
README.md Expand cluster-sm/local testnet to 4 validators for BFT where f=1 2023-08-06 13:42:16 -04:00

Deploy

Run with Docker Compose

Running the Serai infrastructure is easy with Docker.

We utilize compose profiles to easily orchestrate various pieces of the infrastructure.

Example: docker compose --profile cluster-coins-sm up

All commands are assumed to be ran from /deploy, not the root folder.

Profiles:

  • bitcoin - Bitcoin node

  • monero - Monero node

  • ethereum - Ethereum node

  • coins - Nodes for all external networks (BTC, ETH, XMR)

  • message-queue - The message queue service.

  • processor - Serai processor for one external network.

  • serai - Serai node

  • cluster-sm - "Alice", "Bob", "Charlie", and "Dave" Serai nodes, all as validators (enough to achieve BFT with one faulty node)

  • cluster-lg - cluster-sm with non-validators "Eve" and "Ferdie"

You can supply one or more profiles to the docker compose command to orchestrate the desired components.

Example: docker compose --profile coins --profile serai up

Orchestration Approach

Builds

The Serai infrastructure is locally compiled. This may take several minutes.

Images for external networks download binaries, before verifying their checksums and signatures.

Stage 1 -- Builder

  • Configure environment.
  • Get the binary.
  • Verify binary using GPG.
  • Decompress binary to prepare image.

Stage 2 -- Image

  • Copy needed files from builder.
  • Move executables to bin folder.
  • Copy scripts folder.
  • Expose necessary ports.
  • Map necessary volumes.

Entrypoint

The Serai node and external networks' nodes are each started from an entrypoint script inside the /scripts folder.

To update the scripts on the image you must rebuild the updated images using the --build flag after up in docker compose.

Example: docker compose --profile bitcoin up --build