Run a Full Node

Step 1: Clone the SVM Station Repository

To begin, clone the SVM Station from its repository and navigate into the project directory:

git clone https://github.com/airchains-network/rollup-svm
cd rollup-svm;

Step 2: Build the Binary

Clean any previous builds and compile the project using Rust's cargo tool:

cargo clean
cargo build --release

Step 3: Generate Key Pairs

Create four key pairs required for the Solana chain operations: faucet, validator, voter, and staker. These keys are crucial for node authentication on the network.

# chain faucet key
./target/release/svm-station-keygen new --no-passphrase -so $HOME/.svmstationd/keys/faucet.json --force

# chain validator key
./target/release/svm-station-keygen new --no-passphrase -so $HOME/.svmstationd/keys/validator-identity.json --force

# chain validator's voter key
./target/release/svm-station-keygen new --no-passphrase -so $HOME/.svmstationd/keys/validator-vote-account.json --force`

# chain validator's staker key
./target/release/svm-station-keygen new --no-passphrase -so $HOME/.svmstationd/keys/validator-stake-account.json --force

Step 4: Configure SVM Station

Set the configuration for the SVM Station with the appropriate keypair:

./target/release/svm-station config set --keypair $HOME/.svmstationd/keys/faucet.json

Step 5: Initialize the Program

Automate the fetching of the latest Solana Program Library (SPL) programs:

chmod +x fetch_spl_programs.sh

./fetch_spl_programs.sh <path to program> # path to download spl programm

# ex : 
# ./fetch_spl_programs.sh program

Step 6: Create Genesis

Utilize the svm-station-genesis command to initialize a new Solana blockchain network with custom configurations:

./target/release/svm-station-genesis \
  --ledger $HOME/.svmstationd/station-svm-chain/ \
  --hashes-per-tick sleep \
  --faucet-lamports 10000000000000000000 \
  --bootstrap-validator-lamports 100000000000000000 \
  --bootstrap-validator-stake-lamports 1000000000000000 \
  --bootstrap-validator  $HOME/.svmstationd/keys/validator-identity.json \
  $HOME/.svmstationd/keys/validator-vote-account.json \
  $HOME/.svmstationd/keys/validator-stake-account.json \
  --cluster-type testnet \
  --ticks-per-slot 44 \
  --slots-per-epoch 432000 \
  --bpf-program_ TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA BPFLoader2111111111111111111111111111111111 $HOME/.svmstationd/program/spl_token-3.5.0.so \
  --bpf-program TokenzQdBNbLqP5VEhdkAS6EPFLC1PHnBqCXEpPxuEb BPFLoaderUpgradeab1e11111111111111111111111 $HOME/.svmstationd/program/spl_token-2022-0.9.0.so \
  --bpf-program Memo1UhkJRfHyvLMcVucJwxXeuD728EqVDDwQDxFMNo BPFLoader1111111111111111111111111111111111 $HOME/.svmstationd/program/spl_memo-1.0.0.so \
  --bpf-program MemoSq4gqABAXKb96qnH8TysNcWxMyWCqXgDLGmfcHr BPFLoader2111111111111111111111111111111111 $HOME/.svmstationd/program/spl_memo-3.0.0.so \
  --bpf-program ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL BPFLoader2111111111111111111111111111111111 $HOME/.svmstationd/program/spl_associated-token-account-1.1.2.so \
  --bpf-program Feat1YXHhH6t1juaWF74WLcfv4XoNocjXA6sPWHNgAse BPFLoader2111111111111111111111111111111111 $HOME/.svmstationd/program/spl_feature-proposal-1.0.0.so

Step 7: Start Node

Run the Solana validator node with the specified configurations for identity, voting, ledger storage, and network settings:

./target/debug/svm-station-validator \
  --identity  $HOME/.svmstationd/keys/validator-identity.json \
  --vote-account  $HOME/.svmstationd/keys/validator-vote-account.json \
  --ledger  $HOME/.svmstationd/station-svm-chain/ \
  --rpc-port 8899 \
  --gossip-port 8001 \
  --snapshot-interval-slots 1000 \
  --no-incremental-snapshots \
  --rpc-faucet-address 127.0.0.1:9900 \
  --rpc-bind-address 0.0.0.0 \
  --bind-address 0.0.0.0 \
  --log - \
  --no-poh-speed-test \
  --no-wait-for-vote-to-start-leader \
  --full-rpc-api \
  --allow-private-addr \
  --enable-rpc-transaction-history \
  --enable-extended-tx-metadata-storage \
  --require-tower \
  --no-os-network-limits-test

This documentation outlines the step-by-step process to initialize and configure an SVM Station for operation within the Solana blockchain network. Each step includes detailed commands and options to ensure a comprehensive setup.

Last updated