Стати Solana-розробником означає навчитися писати програми (on-chain programs) на Rust або Anchor та клієнтські застосунки на TypeScript, які відправляють транзакції в блокчейн Solana. Нижче — покрокова інструкція від підготовки середовища до першої підтвердженої взаємодії з Devnet-кластером.
Передумови та дорожня карта
Необхідні знання (Rust, TypeScript, блокчейн-основи)
Для ефективної роботи з Solana потрібні три стовпи:
- Rust — мова, на якій написані програми Solana. Достатньо базового рівня: володіння системою власності, borrow checker, структурами, enum та трейтами. Не потрібно бути експертом із Rust, але розуміння причин відмов компілятора економить години налагодження.
- TypeScript — основна мова для клієнтської частини. Бібліотека @solana/web3.js та фреймворк Anchor створені для TypeScript-екосистеми.
- Блокчейн-основи — розуміння транзакції, підпису, кластера, газу (у Solana — compute units), приватного та публічного ключів. Глибоке знання Ethereum не обов'язкове і може заважати, оскільки архітектура Solana суттєво відрізняється.
Дорожня карта виглядає так:
- Налаштувати середовище (ця стаття).
- Зрозуміти модель акаунтів Solana.
- Написати першу програму на чистому Rust без Anchor.
- Перейти на Anchor для продуктивної розробки.
- Побудувати клієнтський застосунок, який відправляє транзакції.
Де навчатися: офіційна документація та спільнота
Основне джерело — офіційна документація Solana. Вона містить посібники, інтерактивні приклади та описи API. Додатково варто звернутися до Solana Cookbook на GitHub — це збірка готових патернів для типових завдань: створення токенів, управління акаунтами, кросс-програмні виклики (CPI).
Спільнота зосереджена на Discord-сервері Solana (канали #developer-support та #rust) та на форумі Stack Exchange з тегом solana, де інженери фонду відповідують на технічні запитання.
Налаштування середовища розробки
Встановлення Rust, Solana CLI, Node.js
Середовище: macOS або Linux (Ubuntu 20.04+). Користувачам Windows необхідно використовувати WSL2 — нативна розробка на Windows безпосередньо не підтримується інструментами Solana.
Крок 1. Rust
Встановіть Rust через rustup:
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
Після встановлення перезавантажте термінал або виконайте:
source $HOME/.cargo/env
Крок 2. Solana CLI
Встановіть інструментарій Solana. Перевірте актуальну команду встановлення в офіційній документації, оскільки URL релізів може змінюватися. Стандартна команда:
sh -c "$(curl -sSfL https://release.solana.com/stable/install)"
Після виконання скрипт виведе інструкцію для додавання шляху до PATH. Зазвичай це:
export PATH="$HOME/.local/share/solana/install/active_release/bin:$PATH"
Додайте цей рядок до ~/.bashrc або ~/.zshrc і застосуйте:
source ~/.bashrc
Крок 3. Node.js
Встановіть Node.js LTS через nvm (Node Version Manager) — це дозволяє керувати версіями без конфліктів. Встановіть nvm з офіційного репозиторію (перевірте актуальну версію скрипта), потім:
source ~/.bashrc
nvm install --lts
Перевірка встановлення та версій
Перевірте, що всі інструменти доступні в терміналі:
| Команда | Очікуваний результат |
|---|---|
| rustc --version | Версія компілятора Rust |
| solana --version | Версія Solana CLI |
| node --version | Версія Node.js LTS |
| npm --version | Версія пакетного менеджера npm |
Якщо будь-яка команда повертає «command not found», PATH не налаштовано коректно. Поверніться до кроку встановлення відповідного інструменту та переконайтеся, що рядок export PATH додано до правильного файлу конфігурації оболонки, а файл перезавантажено.
Перший крок на Devnet
Створення ключової пари, отримання тестових SOL
Кластер: Devnet — тестова мережа Solana з реальними валідаторами, але без грошової цінності токенів. Усі дії нижче виконуються саме в Devnet.
Перемкніть CLI на Devnet:
solana config set --url devnet
Згенеруйте нову ключову пару (файл ~/.config/solana/id.json):
solana-keygen new
Система запитає парольну фразу (passphrase) для шифрування ключового файлу. У ізольованому навчальному середовищі можна залишити порожньою, але для будь-якого ключа, що використовується довше одного дня, обов'язково встановіть парольну фразу.
Отримайте тестові токени SOL через кран:
solana airdrop 2
Очікуваний результат: повідомлення про успішне зарахування 2 SOL на ваш акаунт. Якщо кран повертає помилку, повторіть спробу через кілька секунд — кран має ліміт запитів на одну адресу.
Перевірка підключення до кластера
Перевірте баланс вашого акаунта:
solana balance
Очікуваний результат: число, близьке до 2 SOL (можна трохи менше через комісію за створення акаунта).
Перевірте стан кластера:
solana slot
Очікуваний результат: велике число — номер поточного слота. Якщо команда повертає число, ви успішно підключені до Devnet і кластер обробляє ваші запити.
Перевірте, який акаунт використовується за замовчуванням:
solana address
Очікуваний результат: публічний ключ у форматі Base58 (рядок із літер і цифр, довжиною 32–44 символи).
Типові помилки на старті
Проблеми з версіями CLI та інструментів
Невідповідність версій Solana CLI та Anchor. Anchor жорстко прив'язаний до конкретних версій Solana CLI. Якщо ви встановили Anchor до оновлення CLI (або навпаки), компіляція програми може завершуватися помилками, які не пов'язані з вашим кодом. Рішення: перед встановленням Anchor перевірте таблицю сумісності у репозиторії Anchor на GitHub.
Застарілий кеш Rust. Після оновлення Solana CLI старі скомпільовані бібліотеки можуть конфліктувати з новими. Очистіть кеш:
cargo clean
Якщо це не допомагає, видаліть цільовий каталог повністю:
rm -rf target
Невдале підключення до Devnet
Таймаут запитів. Devnet — публічна мережа, і навантаження на неї коливається. Якщо команди solana slot або solana balance зависають, проблема не у вашому налаштуванні. Спробуйте вказати явний RPC-ендпоінт:
solana config set --url https://api.devnet.solana.com
Якщо стандартний ендпоінт недоступний, перевірте актуальний список публічних RPC-ендпоінтів Devnet в офіційній документації.
CLI вказує на неправильний кластер. Якщо ви випадково виконали solana config set --url mainnet-beta, усі подальші команди спробують звернутися до основної мережі. Перевірте поточну конфігурацію:
solana config get
Значення RPC URL має містити «devnet» або пряму посилання на Devnet-ендпоінт.
Брандмауер блокує з'єднання. Solana CLI використовує TCP-з'єднання до RPC-вузла (зазвичай порт 8899 для локального кластера, 443 для публічних ендпоінтів). Переконайтеся, що вихідні HTTPS-з'єднання не заблоковані мережевою політикою вашої організації або провайдера.
Наступний крок
Тепер у вас є робоче середовище, ключова пара з тестовими SOL і підтверджене підключення до Devnet. Наступний логічний крок — зрозуміти, як Solana зберігає дані та стан програм. Перейдіть до матеріалу «Як працює модель акаунтів у Solana», де детально розібрано, чому акаунти — це фундаментальна одиниця стану, і як це відрізняється від моделі контрактів в інших блокчейнах.