Step 1: Clone the SVM Station Repository
To begin, clone the SVM Station from its repository and navigate into the project directory:
Copy 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:
Copy 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.
Copy # 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:
Copy ./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:
Copy chmod +x fetch_spl_programs.sh
./fetch_spl_programs.sh < path to progra m > # 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:
Copy ./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:
Copy ./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 7 months ago