serai/docs/Getting Started.md
Luke Parker a0a2ef22e4
Remove ethers-solc
ethers-solc was used for a type (now manually specified) and to call out to
solc. Since Foundry was already a documented dependency, a call to it now
handles building.

Removing this single crate removes a total of 17 crates from our dependency
tree. While these may still be around due to Foundry, they at least may not
be.

Further work to remove the requirement on Foundry for solc alone would be
appreciated.
2023-11-08 06:25:35 -05:00

1.8 KiB

Getting Started

Dependencies

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

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 and anvil

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