Files
serai/docs/validator/Debain 12 validator install.md
Benny Fischer 64036b511b Create Debian 12 validator install.md
Installation of a validator instance, from a clean Debian 12.5.
2024-03-12 12:31:33 -07:00

3.4 KiB

Getting Started - Debain 12 fresh install

This guide attempts to outline the steps required to setup a validator from a clean Debian 12 installation DVD or Netinstall. This guide is accurate as of Debain 12.5.0.

Dependencies

Before you get started, you need a few basic tools.

Install Sudo

sudo apt-get install sudo

update /etc/sudoers

Install newuidmap / newgidmap and iptables to the fresh install

sudo apt-get install -y uidmap
sudo apt-get install -y iptables

Install Fuse overlaysfs

sudo apt-get install -y fuse-overlayfs

Install Fuse slirp4netns

Rootless docker requires version of slirp4netns greater than v0.4.0 (when vpnkit is not installed).

sudo apt-get install -y slirp4netns

Install docker ROOTLESS

https://docs.docker.com/engine/security/rootless/ This only works if you do not have docker installed. This guide assumes a fresh install of Debain 12.5.

Run the rootless docker install script as the user you would like to run rootless with. I choose pid 1000 in this example.

curl -fsSL https://get.docker.com/rootless | sh

[INFO] Make sure the following environment variables are set (or add them to ~/.bashrc and update TESTUSER to current username)

export PATH=/home/TESTUSER/bin:$PATH
export DOCKER_HOST=unix:///run/user/1000/docker.sock

The binaries will be installed at ~/bin.

Run a quick docker hello-world test

docker run hello-world

if you see you are good to go!:

Hello from Docker!
This message shows that your installation appears to be working correctly.....

Install development tools

These tools are required to setup, download, compile and install Serai

install basic tools for admin

sudo apt-get install curl -y

Install rustup

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

Exit the current terminal to update enviroment variables and log back in.

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 local dev tooling packages

sudo apt install build-essential -y
sudo apt install protobuf-compiler -y
sudo apt install git -y
sudo apt install clang -y

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

Build Serai

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 (available via Docker)

To test that you have these installed properly, run the following:

To start the required Dev daemons, one may run:

cargo run -p serai-orchestrator -- key_gen dev
cargo run -p serai-orchestrator -- setup dev

and then to deploy daemons into the dev docker network:

cargo run -p serai-orchestrator -- start dev bitcoin-daemon monero-daemon monero-wallet-rpc

Finally, to run the all the self tests:

cargo test --all-features