Sonic | Official Documentation
Official WebsiteExplorerFaucet
  • Welcome to Sonic
  • Users
    • Getting Started
      • Setting up your wallet
      • Bridging funds to Sonic
      • Join Sonic community!
  • Developers
    • Why Choose Sonic?
    • Getting Started
      • Setup local development for Sonic SVM
      • Build & Deploy Your First Program
    • Developer Tooling
      • Explorer
      • Faucet
      • Wallet Extensions
  • Additional Tools & Examples
  • Additional Resources
  • Architecture
    • Overview
    • Sonic SVM Whitepaper
    • Vision & Architecture
    • Clusters
    • HyperGrid Framework
      • HyperGrid Infrastructure
        • Architectural Overview
        • Grids and Network Relationships
          • Grids
      • Interoperability with Solana
        • Data Synchronization Between HyperGrid and Solana Base Layer
      • HyperGrid Shared State Network (HSSN)
      • HSSN Explorer Overview
      • HSSN Gas Fee Mechanism
      • Operator Guides
        • Deploying a New Grid
        • Deploying a Sonic RPC Node
        • Deploying an HSSN Validator
        • Mainnet
          • Deploying an HSSN Validator
      • Verifiable Compute & Zero-Knowledge Proofing on HyperGrid
    • Sorada
      • Introduction
      • Architecture
      • How to Deploy Sorada
      • Resources
    • Rush ECS Framework
      • Introduction
      • Features
      • Quickstart
      • Reference
      • Demo
  • RESOURCES
    • Audit Reports
    • We're Hiring!
Powered by GitBook
On this page
  • System Requirements
  • Operating System
  • Hardware Requirements
  • Server Port Policy
  • System Tuning
  • Install HAProxy
  • Configure Routing
  • Start Service
Edit on GitHub
  1. Architecture
  2. Sorada

How to Deploy Sorada

A comprehensive guide on how to deploy Sorada for yoru own SVM instance

System Requirements

Operating System

  • Ubuntu Server 22.04 LTS

Hardware Requirements

  • CPU: 2-core

  • RAM: 8GB

  • SSD: 16GB

Server Port Policy

  • Open port 80 to support RPC external services.

System Tuning

Optimize sysctl knobs

sudo bash -c "cat >/etc/sysctl.d/21-haproxy.conf <<EOF
# Increase system level number of allowed open file descriptors
fs.nr_open=1100000
fs.file-max=1100000

# Set tcp config
net.ipv4.ip_local_port_range=5000 65000
net.ipv4.tcp_syncookies = 1
net.core.somaxconn = 4096
EOF"

sudo sysctl -p /etc/sysctl.d/21-haproxy.conf

Increase systemd file limits

sudo mkdir /etc/systemd/system/haproxy.service.d
sudo bash -c "cat >/etc/systemd/system/haproxy.service.d/21-override.conf <<EOF
[Service]
# Increase user level number of hard limit and soft limit of file descriptors
LimitNOFILE=1000000
EOF"
sudo systemctl daemon-reload
sudo systemctl enable haproxy

Install HAProxy

sudo apt-get install --no-install-recommends software-properties-common
sudo add-apt-repository ppa:vbernat/haproxy-3.0
sudo apt-get install haproxy=3.0.\*

Configure Routing

Edit /etc/haproxy/haproxy.cfg, routing archival requests to archival RPC endpoint and other requests to HyperGrid.

    acl methodGetBlock req.body -m reg \"getBlock\"
    acl methodGetBlocks req.body -m reg \"getBlocks\"
    acl methodGetBlocksWithLimit req.body -m reg \"getBlocksWithLimit\"
    acl methodGetBlockTime req.body -m reg \"getBlockTime\"
    acl methodGetSigsForAddr req.body -m reg \"getSignaturesForAddress\"
    acl methodGetTransaction req.body -m reg \"getTransaction\"
    use_backend archival if methodGetBlock
    use_backend archival if methodGetBlocks
    use_backend archival if methodGetBlocksWithLimit
    use_backend archival if methodGetBlockTime
    use_backend archival if methodGetSigsForAddr
    use_backend archival if methodGetTransaction
    default_backend HyperGrid

Start Service

systemctl start haproxy
PreviousArchitectureNextResources

Last updated 6 months ago