serai/docs/Getting Started.md
Luke Parker 351436a258
Dockerfile Parts (#428)
* De-duplicate Dockerfiles by using a bash file to concatenate common parts

Resolves #375.

Dockerfiles are still committed to the repo to avoid a dependency on bash.

* Add a CI job to confirm the committed dockerfiles are the currently generated ones

* Create dedicated Dockerfiles per processor network

Ensures the compromising of network-specific dependencies doesn't lead to a
compromise of the build process for all processors.

* Dockerfile corrections

* Correct call to build processor Docker image in tests/processor
2023-11-12 23:55:15 -05:00

1.8 KiB

Getting Started

Dependencies

Ubuntu
sudo apt-get install -y build-essential clang-11 pkg-config cmake git curl protobuf-compiler

Install rustup

Linux
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
macOS
brew install rustup

Install Rust

rustup update
rustup toolchain install stable
rustup target add wasm32-unknown-unknown
rustup toolchain install nightly
rustup target add wasm32-unknown-unknown --toolchain nightly

Install Solidity

cargo install svm-rs
svm install 0.8.16
svm use 0.8.16

Install Solidity Compiler Version Manager

cargo install svm-rs
svm install 0.8.16
svm use 0.8.16

Install foundry (for tests)

cargo install --git https://github.com/foundry-rs/foundry --profile local --locked forge cast chisel anvil

Clone and Build Serai

git clone https://github.com/serai-dex/serai
cd serai
cargo build --release --all-features

Run Tests

Running tests requires:

  • A rootless Docker setup
  • A properly configured Bitcoin regtest node (available via Docker)
  • A properly configured Monero regtest node (available via Docker)
  • A properly configured monero-wallet-rpc instance
  • A debug Serai node (cd substrate/node && cargo build)
cargo test --all-features

Run Serai in Development Mode

./target/release/serai-node --dev

Run Serai with Orchestration

Under /orchestration, you can find our orchestration components for running the entire infrastructure of Serai in a local environment using Docker Compose or Kubernetes.

Run Serai with Docker Compose

Run Serai with Kubernetes