Обзор Solana Mainnet, Devnet и Testnet
Learn the differences between Solana Mainnet-Beta, Devnet, Testnet, and Localnet. Complete guide with RPC endpoints, CLI commands, and deployment step...
Mainnet, Devnet и Testnet на Solana служат разным целям: Mainnet-Beta несет реальную экономическую ценность, Devnet поддерживает разработку приложений, а Testnet в основном используется для тестирования валидаторов и протокола. Localnet предоставляет отдельную локальную среду для контролируемой разработки.
Если вы когда-либо читали документацию Solana или изучали руководства, вы уже встречали термины Mainnet-Beta, Devnet и Testnet, повторяющиеся в каждом гайде. В большинстве ресурсов они упоминаются без ответа на действительно важный вопрос: какой из них вам следует использовать прямо сейчас и что произойдет, если вы выберете неправильный?
Solana — это высокопроизводительный блокчейн первого уровня (Layer-1), который использует механизм консенсуса под названием Proof of History (PoH) в сочетании с Proof of Stake для достижения высокой пропускной способности транзакций. Его нативный токен — SOL, используемый для оплаты комиссий за транзакции в сети. Solana оперирует четырьмя отдельными сетевыми средами, и в терминологии Solana каждая из них называется кластером. Mainnet-Beta, Devnet, Testnet и Localnet — все это кластеры Solana, каждый из которых имеет своих валидаторов, историю транзакций и состояние аккаунтов.
К концу этого руководства вы будете точно знать, для чего предназначен каждый кластер, какой из них подходит для вашей текущей ситуации, а также получите точные команды, конечные точки RPC и шаги в кошельке, необходимые для подключения к любому из них.
Mainnet, Devnet и Testnet на Solana
Solana оперирует четырьмя параллельными сетевыми средами. Каждый кластер обслуживает определенный этап жизненного цикла разработки и развертывания, подобно тому как традиционные команды разработчиков ПО разделяют среды разработки и промышленной эксплуатации.
Ниже приведено описание каждой сети в одном предложении:
- Mainnet-Beta — это рабочая сеть, в которой используется реальный SOL и происходит вся реальная активность.
- Devnet — основная «песочница» для разработчиков, где приложения создаются и тестируются с использованием бесплатных токенов SOL, не имеющих ценности.
- Testnet — среда для стресс-тестирования, используемая операторами валидаторов и инженерами основного протокола перед внедрением изменений в Mainnet-Beta.
- Localnet — частный кластер Solana, который запускается полностью на вашем компьютере и не требует подключения к интернету.
Вы можете найти авторитетный обзор всех кластеров Solana в документации кластеров Solana.). Начиная с Mainnet-Beta, ниже описано, что делает каждая среда и когда её использовать.
Solana Mainnet-Beta: рабочая сеть
Mainnet-Beta — это живая рабочая сеть Solana, среда, в которой происходит вся реальная экономическая деятельность в блокчейне Solana. Несмотря на слово «Beta» в названии, это не тестовая сеть. Данное обозначение является историческим артефактом запуска Solana в 2020 году и не подразумевает, что сеть является неполной или экспериментальной. Solana использует Mainnet-Beta в качестве полноценной производственной среды с момента запуска.
Все работающие dApps (децентрализованные приложения), протоколы DeFi, маркетплейсы NFT и токен-проекты функционируют в Mainnet-Beta. Каждая реальная транзакция SOL, которую вы отправляете или получаете, происходит именно здесь.
SOL в Mainnet-Beta имеет реальную денежную стоимость. Для оплаты комиссий в транзакциях требуются реальные SOL, обычно это доля цента за транзакцию. Развертывание программ стоит реальных SOL, является постоянным и необратимым. Публичная конечная точка RPC для Mainnet-Beta: https://api.mainnet-beta.solana.com.
⚠️ Предупреждение: Любая транзакция или развертывание программы в Mainnet-Beta использует реальные SOL и не может быть отменено. Всегда проводите тестирование в Devnet перед развертыванием в рабочей среде.
💡 Совет: Проверяйте транзакции Mainnet-Beta в Solana Explorer. Используйте переключатель кластеров в правом верхнем углу, чтобы подтвердить, что вы просматриваете кластер Mainnet-Beta.
Solana Devnet: «песочница» для разработчиков
Devnet — это основная «песочница» разработчиков Solana, публичный кластер, в котором вы можете создавать и тестировать программы, не рискуя ни одним реальным SOL. Для большинства разработчиков Solana Devnet — это место, где происходит вся основная работа по разработке.
Devnet SOL имеет нулевую денежную стоимость. Это бесплатная тестовая валюта, получаемая через «кран» (faucet), которую нельзя перевести в Mainnet-Beta или обменять на реальные SOL. Публичная конечная точка RPC для Devnet: https://api.devnet.solana.com.
Devnet периодически сбрасывается, что означает, что развернутые программы и балансы счетов могут быть удалены без уведомления. Разработчики должны относиться к состоянию Devnet как к временному и никогда не полагаться на него для хранения рабочих данных.
Получение бесплатных SOL в Devnet
Кран (faucet) — это сервис, который выдает бесплатные тестовые SOL в Devnet или Testnet. Самый быстрый метод — команда airdrop в CLI Solana. Обратите внимание, что в данном контексте «эйрдроп» относится к команде инструмента разработчика для запроса тестовых токенов, а не к маркетинговой раздаче токенов.
Выполните эту команду, чтобы запросить 2 SOL в Devnet:
solana airdrop 2Эйрдроп через CLI ограничен 2 SOL за один запрос, также действуют ограничения по частоте. Если solana airdrop возвращает ошибку ограничения частоты запросов, подождите несколько минут и попробуйте снова или воспользуйтесь одним из этих веб-кранов:
- faucet.solana.com (официальный кран Solana)
- solfaucet.com (сообщественный кран)
💡 Совет: Просматривайте свои транзакции в Devnet в Solana Explorer, выбрав «Devnet» в переключателе кластеров.
Тестовые NFT, созданные в Devnet, не имеют реальной ценности и существуют только внутри кластера Devnet. Они не являются теми же активами, что и NFT в Mainnet-Beta.
Devnet — подходящая среда для подавляющего большинства разработчиков Solana. Если вы только начинаете, начните здесь. Для наглядного сравнения Devnet с Testnet и Mainnet-Beta по всем ключевым параметрам см. полную таблицу сравнения сетей ниже.
Solana Testnet: тестирование валидаторов и протокола
Testnet — это сетевая среда Solana для операторов валидаторов и инженеров основного протокола, а не для разработчиков, создающих dApps или программы. Понимание этого различия поможет избежать путаницы.
Валидаторы — это узлы, которые обрабатывают и подтверждают транзакции в сети Solana. Testnet существует специально для того, чтобы операторы валидаторов могли тестировать новое программное обеспечение узлов и обновления протокола перед тем, как эти изменения будут применены в Mainnet-Beta. Команда основных инженеров Solana использует Testnet для стресс-тестирования улучшений производительности и новых функций в реалистичных условиях.
Testnet намеренно менее стабилен, чем Devnet. Сбои и сбросы случаются чаще, так как сеть спроектирована так, чтобы её можно было довести до отказа. Публичная конечная точка RPC: https://api.testnet.solana.com.
Testnet SOL имеет нулевую реальную денежную стоимость, аналогично Devnet SOL.
💡 Рекомендация: Если вы создаете dApp, программу или токен на Solana, используйте Devnet, а не Testnet. Testnet не предназначен для разработки приложений, а его нестабильность делает его плохим выбором для тестирования вашего кода.
Localnet: ваш локальный тестовый валидатор
Localnet, также называемый локальным тестовым валидатором, работает полностью на вашем собственном компьютере и не требует подключения к интернету. Это четвертый тип кластера Solana, хотя в большинстве руководств он опускается.
Запустите Localnet с помощью этой команды:
solana-test-validatorПосле запуска Localnet доступен по адресу http://localhost:8899. В отличие от Devnet, Localnet не является общей публичной сетью. Его видит только ваш локальный компьютер, и он сбрасывается каждый раз, когда вы перезапускаете процесс валидатора.
Localnet идеально подходит для быстрой, приватной итерации на ранних этапах разработки. Поскольку сетевая задержка отсутствует, обратная связь от взаимодействий с программой мгновенна. Стандартный рабочий процесс разработки заключается в том, чтобы сначала собрать и протестировать локально на Localnet, затем развернуть в Devnet для совместного тестирования и, наконец, развернуть в бета-версии мейннета для продакшена.
Devnet отличается от Localnet одним ключевым аспектом: Devnet — это общая общедоступная сеть, к которой может получить доступ любой желающий, что означает, что ваши развернутые программы видны другим разработчикам, а ваши тесты выполняются на общем состоянии сети.
Сравнение сетей Solana: Mainnet vs Devnet vs Testnet vs Localnet
Таблица ниже сравнивает все четыре сетевых окружения Solana по семи параметрам, чтобы помочь вам выбрать подходящий кластер для вашей ситуации.
| Окружение | Назначение | Стоимость SOL | Стабильность | Публичный RPC URL | Основные пользователи | Сохранение данных |
|---|---|---|---|---|---|---|
| Бета-версия мейннета | Живой продакшен | Реальная денежная стоимость | Высокая (промышленный уровень) | https://api.mainnet-beta.solana.com | Все пользователи, разработчики dApp, конечные пользователи | Постоянно |
| Devnet | Песочница для разработчиков | Ноль (бесплатный тестовый SOL) | Средняя (периодические сбросы) | https://api.devnet.solana.com | Разработчики приложений, создатели dApp | Временно (сбрасывается периодически) |
| Testnet | Нагрузочное тестирование валидатора/протокола | Ноль (бесплатный тестовый SOL) | Низкая (намеренная нестабильность) | https://api.testnet.solana.com | Операторы валидаторов, основные инженеры | Временно (частые сбросы) |
| Localnet | Локальная разработка | Ноль (симуляция) | Контролируется разработчиком | http://localhost:8899 | Индивидуальные разработчики | Только на время сессии (сбрасывается при перезапуске) |
Руководство по принятию решений:
Разработчикам приложений, создающим dApp или программы, следует использовать Devnet для всех тестов. Операторы валидаторов должны использовать Testnet. Для быстрой локальной итерации Localnet является самым быстрым вариантом. Развертывайте в бета-версии мейннета только тогда, когда ваша программа полностью протестирована и готова к продакшену.
Пошаговые инструкции по развертыванию в разных кластерах см. в разделе Развертывание программ Solana ниже.
RPC-эндпоинты Solana для каждой сети
RPC-эндпоинт — это URL-адрес, который ваше приложение, CLI или кошелек использует для отправки запросов к кластеру Solana. RPC означает Remote Procedure Call (удаленный вызов процедур), но практическое определение — это все, что вам нужно: это адрес, на который указывают ваши инструменты для чтения и записи в конкретную сеть.
| Кластер | Публичный RPC URL | Примечания по ограничению скорости |
|---|---|---|
| Бета-версия мейннета | https://api.mainnet-beta.solana.com | Ограничено по скорости; не рекомендуется для продакшен-приложений |
| Devnet | https://api.devnet.solana.com | Ограничено по скорости; достаточно для разработки |
| Testnet | https://api.testnet.solana.com | Ограничено по скорости; нестабильная сеть |
| Localnet | http://localhost:8899 | Нет ограничений по скорости; только локально |
Публичные RPC-эндпоинты имеют ограничение по скорости и не подходят для продакшен-приложений с высокой нагрузкой. Для продакшен-использования бета-версии мейннета сторонние RPC-провайдеры, такие как Helius, QuickNode и Alchemy, предлагают более высокие лимиты скорости и дополнительные инструменты. Для всей работы по разработке и тестированию в Devnet достаточно публичного эндпоинта.
Как Solana CLI, так и библиотека @solana/web3.js принимают эти URL-адреса напрямую. В следующих разделах показано, как именно настроить каждый инструмент.
Переключение между сетями Solana с помощью CLI
Основной Solana CLI (команда solana, а не Anchor CLI или библиотека web3.js) контролирует, к какому кластеру подключаются ваши инструменты. Вся сетевая конфигурация осуществляется через solana config.
Выполните следующие шаги, чтобы проверить и переключить активный кластер:
1. Проверьте текущую сетевую конфигурацию.
Эта команда показывает ваш текущий RPC URL, подтверждая, к какому кластеру вы подключены.
solana config get2. Переключитесь на Devnet.
solana config set --url devnet3. Переключитесь на Testnet.
solana config set --url testnet4. Переключитесь на бета-версию мейннета.
solana config set --url mainnet-beta5. Переключитесь на Localnet.
solana config set --url localhost6. Запросите эйрдроп SOL для Devnet после переключения.
solana airdrop 2Сокращенные имена (devnet, testnet, mainnet-beta) напрямую соответствуют публичным RPC-эндпоинтам, перечисленным в Справочнике RPC-эндпоинтов Solana выше. Использование solana config set --url devnet эквивалентно передаче полного URL https://api.devnet.solana.com.
Если solana config get показывает неожиданный URL кластера, другой инструмент или скрипт мог обновить вашу конфигурацию. Выполните соответствующую команду solana config set --url, чтобы исправить это, прежде чем делать что-либо еще.
⚠️ Предупреждение: Всегда выполняйте
solana config getперед развертыванием программы или отправкой транзакции. Развертывание в бета-версию мейннета, когда вы намеревались использовать Devnet, будет стоить реальных SOL и не может быть отменено.
Подключение к сетям Solana с помощью web3.js
Библиотека @solana/web3.js — это официальная библиотека JavaScript и TypeScript для взаимодействия с кластерами Solana. Она предоставляет удобную функцию clusterApiUrl(), которая возвращает публичный RPC URL для именованного кластера.
Используйте следующий код для подключения к каждой сети:
import { Connection, clusterApiUrl } from '@solana/web3.js';
// Подключение к Devnet
const connection = new Connection(clusterApiUrl('devnet'), 'confirmed');
// Подключение к бета-версии мейннета
const connection = new Connection(clusterApiUrl('mainnet-beta'), 'confirmed');
// Подключение к Testnet
const connection = new Connection(clusterApiUrl('testnet'), 'confirmed');Жесткое кодирование RPC URL напрямую также является допустимым и дает вам больше контроля:
// Использование явного RPC URL
const connection = new Connection('https://api.devnet.solana.com', 'confirmed');Для продакшен-приложений бета-версии мейннета замените публичный URL на ваш приватный RPC-эндпоинт от стороннего провайдера. Функция clusterApiUrl() возвращает только публичные эндпоинты.
Solana web3.js — это отдельная библиотека от TypeScript-клиента Anchor Framework. Обе могут использоваться вместе в одном проекте, но обслуживают разные уровни стека. После подключения вы можете проверить свои транзакции в Solana Explorer, выбрав соответствующий кластер в переключателе в правом верхнем углу. Обратитесь к ссылке на библиотеку Solana web3.js) для полного API.
Развертывание программ Solana в разных сетях
Программа Solana — это термин Solana для исполняемого кода в сети, который обрабатывает инструкции от клиентов (эквивалент смарт-контракта на Ethereum). Программы специфичны для кластера.
Программа, развернутая в Devnet, не существует в Mainnet-Beta. Каждый кластер поддерживает свое полностью независимое состояние, и вы должны развертывать свою программу отдельно в каждой сети, где вы хотите, чтобы она работала. Это самая частая причина, по которой разработчики не могут найти свою программу после развертывания: они развернули ее в Devnet, но ищут в Mainnet-Beta, или наоборот.
Конфигурация Anchor для развертывания
Anchor Framework — это широко используемый фреймворк для разработки программ Solana. Конфигурация целевого кластера находится в вашем файле Anchor.toml в разделе [provider]:
[provider]
cluster = "devnet"
wallet = "~/.config/solana/id.json"Чтобы развернуть в бета-версии мейннета, измените значение cluster на "mainnet-beta" и выполните:
anchor deployВсегда обновляйте Anchor.toml перед запуском anchor deploy. Anchor CLI (anchor) — это отдельный инструмент от Solana CLI (solana). Оба могут использоваться в одном рабочем процессе. Обратитесь к документации Anchor Framework для полных опций конфигурации.
Рекомендуемый рабочий процесс развертывания
Следуйте этой последовательности перед любым запуском в бета-версии мейннета:
- Сборка и тестирование локально с использованием Localnet.
- Развертывание и тестирование в Devnet.
- (Опционально, для программ, связанных с валидаторами) Тестирование в Testnet.
- Развертывание в бета-версию мейннета только после полной валидации программы.
⚠️ Предупреждение: Перед развертыванием в Mainnet-Beta проверьте настройки кластера в
Anchor.tomlили выполнитеsolana config get. Развертывание в Mainnet-Beta стоит реальных SOL, и это действие нельзя отменить.
Реальные SOL против тестовых: Понимание стоимости в разных сетях
SOL в Mainnet-Beta имеют реальную денежную стоимость. SOL в Devnet и Testnet имеют нулевую реальную денежную стоимость; это бесплатная тестовая валюта, у которой нет обменного курса и пути конвертации в Mainnet-Beta.
Вот подробная разбивка:
- Mainnet-Beta SOL: реальная денежная стоимость, торгуются на биржах, требуются для оплаты комиссий за транзакции.
- Devnet SOL: бесплатно, получаются через «кран», не имеют обменной стоимости, не могут быть переведены в Mainnet-Beta.
- Testnet SOL: бесплатно, получаются через «кран», не имеют обменной стоимости, не могут быть переведены в Mainnet-Beta.
⚠️ Предупреждение: SOL из Devnet и Testnet нельзя конвертировать в настоящие SOL или перевести в Mainnet-Beta. Не пытайтесь торговать или продавать SOL из Devnet или Testnet. Они не имеют никакой ценности за пределами своего соответствующего кластера.
Метка «Beta» в названии Mainnet-Beta вызывает постоянную путаницу с момента запуска Solana в 2020 году. Mainnet-Beta не является бета-продуктом в каком-либо значимом смысле; через него прошли транзакции на миллиарды долларов в DeFi и NFT, и это единственная сеть, в которой происходит реальная деятельность Solana. Название — это историческая традиция, которую Solana сохранила.
Если ваш баланс в Phantom отображается как нулевой после переключения сети, в разделе «Переключение сетей в кошельке Phantom» выше объясняется, как восстановить вид Mainnet-Beta.
Данная статья носит образовательный и технический характер. Она не является финансовым советом или одобрением каких-либо инвестиций в криптовалюты.
Связанные ресурсы по архитектуре Solana
Концепции развертывания связаны с моделью аккаунтов Solana для разработчиков, а производительность Mainnet-Beta зависит от архитектуры, описанной в статье почему Solana быстрая и дешевая. Только мейннет SOL имеет рыночную стоимость: страница цены SOL и рынок спот SOL/USDT относятся к мейннет SOL, а не к токенам Devnet, Testnet или Localnet.
FAQ: Mainnet, Devnet и Testnet на Solana
Является ли Solana Mainnet-Beta настоящим мейннетом?
Да. Mainnet-Beta — это полностью функционирующая живая рабочая сеть Solana. Метка «Beta» — это историческое название со времен запуска Solana в 2020 году, оно не указывает на то, что сеть экспериментальная или незавершенная. Все реальные транзакции SOL, dApps, протоколы DeFi и проекты NFT работают на Mainnet-Beta.
Имеет ли SOL из Devnet реальную стоимость?
Нет. SOL из Devnet имеет нулевую реальную денежную стоимость. Это бесплатная тестовая валюта, выдаваемая через «кран», и она существует только в кластере Devnet. Её нельзя перевести в Mainnet-Beta, обменять на реальные SOL или использовать на какой-либо бирже.
Можно ли использовать SOL из Devnet в Mainnet?
Нет. Devnet и Mainnet-Beta — это абсолютно разные сети без общего состояния. SOL существует независимо в каждом кластере. Механизма перевода SOL из Devnet в Mainnet-Beta не существует.
Почему я не вижу свои SOL в кошельке?
Кошелек может быть подключен к Devnet или Testnet вместо Mainnet-Beta. Проверьте текущие настройки сети и адрес в кошельке, используя актуальную справочную документацию, а затем снова подключитесь к Mainnet-Beta. Проверьте адрес в соответствующем блокчейн-обозревателе, прежде чем предполагать, что баланс куда-то переместился.
В чем разница между Devnet и Testnet на Solana?
Devnet предназначен для разработчиков приложений, создающих dApps и программы. Он стабилен, имеет работающий «кран» и является рекомендуемой средой для всех работ по разработке. Testnet предназначен для операторов валидаторов и инженеров основного протокола для стресс-тестирования нового программного обеспечения. Он намеренно менее стабилен и не подходит для разработки приложений.
Что такое кластер Solana?
Кластер Solana — это сетевая среда; термин, который Solana использует для того, что в других блокчейнах называется сетью или чейном. Mainnet-Beta, Devnet, Testnet и Localnet — все это кластеры Solana. Каждый кластер является независимой сетью со своими валидаторами, историей транзакций и состоянием аккаунтов.
В чем разница между Localnet и Devnet?
Localnet работает полностью на вашем собственном компьютере и не требует подключения к интернету, что делает его самой быстрой доступной средой для тестирования. Devnet — это общая публичная сеть, к которой может получить доступ любой желающий. Используйте Localnet для быстрой локальной итерации, а затем развертывайте в Devnet для тестирования в общей среде перед переходом в Mainnet-Beta.
Почему моя транзакция в Solana не прошла?
Если ваша транзакция неожиданно завершилась ошибкой, сначала убедитесь, что вы подключены к правильному кластеру. Выполните команду solana config get в CLI или проверьте индикатор сети в кошельке. Частая причина неудачных транзакций — подключение к неправильной сети. Например, попытка взаимодействия с программой Mainnet-Beta, когда ваш CLI или кошелек настроен на Devnet, приведет к ошибке транзакции.
Резюме: Какую сеть Solana вам следует использовать?
Выбор сети полностью зависит от того, что вы делаете. Вот решение для каждого случая использования:
- Создание или тестирование программы Solana или dApp → Используйте Devnet
- Быстрая локальная разработка и итерация → Используйте Localnet
- Запуск или тестирование узла валидатора → Используйте Testnet
- Запуск рабочего приложения для реальных пользователей → Развертывание в Mainnet-Beta
- Использование реальных SOL для транзакций, DeFi или NFT → Mainnet-Beta (по умолчанию)
Если сомневаетесь, начинайте с Devnet. Это самая безопасная, стабильная и доступная среда для любого, кто начинает разработку на Solana.
Для получения дополнительной информации обратитесь к официальной документации по кластерам Solana и проверяйте любую транзакцию в Solana Explorer.