> ## Documentation Index
> Fetch the complete documentation index at: https://docs.solayer.org/llms.txt
> Use this file to discover all available pages before exploring further.

# Mainnet Alpha Node

> Run a Mainnet Alpha Node

Works on Ubuntu 22.04, Ubuntu 24.04, and macOS.

## Run ScyllaDB

#### Option 1: Bare metal installation (Recommended)

[https://docs.scylladb.com/manual/stable/getting-started/install-scylla/](https://docs.scylladb.com/manual/stable/getting-started/install-scylla/)

#### Option 2: Docker

```bash theme={null}
docker run -d --name scylla -p 9042:9042 scylladb/scylla
```

## Install Rust

```bash theme={null}
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
source ~/.cargo/env
```

## Install relevant dependencies (Ubuntu)

```bash theme={null}
sudo apt install -y clang build-essential libssl-dev protobuf-compiler pkg-config aria2
```

## Install relevant dependencies (macOS)

```bash theme={null}
brew install clang protobuf pkg-config aria2
```

## Clone and build the Solayer RPC repository

```bash theme={null}
git clone https://github.com/solayer-labs/solayer-rpc
cd solayer-rpc
cargo build --release --features mainnet
```

## Initialize ScyllaDB tables

```bash theme={null}
cqlsh -f cassandra_tables.sql
```

## Run the Solayer RPC

```bash theme={null}
./target/release/rpc-v2 \
  -s mainnet-seed-1.solayer.org \
  --cassandra-hosts 127.0.0.1:9042 \
  --wait-for-grpc-peer \
  --wait-for-grpc-peer-timeout-secs 30
```

`rpc-v2` now uses **registry-first gRPC bootstrap by default**:

* It waits for a usable upstream gRPC peer discovered from the RPC registry.
* With `-s mainnet-seed-1.solayer.org`, the default registry source is `http://mainnet-seed-1.solayer.org:6005`.
* `--wait-for-grpc-peer-timeout-secs 0` means wait forever.
* If timeout is greater than `0`, the node falls back to direct sequencer gRPC bootstrap after timeout.
* To disable waiting and keep immediate sequencer bootstrap behavior, pass `--wait-for-grpc-peer false`.

## Verify the Solayer RPC is running

```bash theme={null}
curl -X POST -H "Content-Type: application/json" -d '{"jsonrpc":"2.0","id":1,"method":"getSlot","params":[]}' http://localhost:18899
```

You should see the current slot number.

## Catching up with the network

```bash theme={null}
solana catchup --our-localhost 18899 -u https://mainnet-alpha.solayer.org
```
