serai/orchestration
2023-12-30 03:26:32 -05:00
..
coins Bitcoin 26.0 2023-12-12 09:56:30 -05:00
coordinator rust 1.75 2023-12-30 03:26:32 -05:00
Dockerfile.parts rust 1.75 2023-12-30 03:26:32 -05:00
kubernetes Rename deploy to orchestration 2023-07-27 03:19:35 -04:00
message-queue rust 1.75 2023-12-30 03:26:32 -05:00
processor rust 1.75 2023-12-30 03:26:32 -05:00
runtime rust 1.75 2023-12-30 03:26:32 -05:00
serai rust 1.75 2023-12-30 03:26:32 -05:00
docker-compose.yml Dockerfile Parts (#428) 2023-11-12 23:55:15 -05:00
dockerfiles.sh Dockerfile Parts (#428) 2023-11-12 23:55:15 -05:00
README.md Dockerfile Parts (#428) 2023-11-12 23:55:15 -05: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.

  • coordinator - Serai coordinator for the entire Serai stack.

  • 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