Начало работы с Solana Development

Добро пожаловать в документацию разработчика Solana!

На этой странице собрано все, что вам нужно знать, чтобы начать разработку Solana, включая основные требования, принципы разработки Solana и инструменты, которые вам понадобятся для начала работы.

Обзор разработчиков на высоком уровне #

Разработку на Solana можно разделить на две основные части:

  1. Разработка программы Onchain: Здесь вы создаете и развертываете пользовательские программы непосредственно на блокчейне. После развертывания их может использовать любой, кто знает, как с ними взаимодействовать. Вы можете написать эти программы на Rust, C или C++. На сегодняшний день Rust имеет наибольшую поддержку для разработки onchain-программ.
  2. Разработка клиента: Здесь вы пишете программное обеспечение (так называемые децентрализованные приложения, или dApps), которое взаимодействует с onchain-программами. Ваши приложения могут отправлять транзакции для выполнения действий в onchain. Клиентская разработка может быть написана на любом языке программирования.

"Клеем" между клиентской частью и onchain является Solana JSON RPC API. Клиентская сторона отправляет RPC-запросы в сеть Solana для взаимодействия с onchain-программами. Это очень похоже на обычную разработку между фронтендом и бэкендом. Основное отличие работы на Solana заключается в том, что бэкэнд - это глобальный блокчейн без прав доступа. Это означает, что любой человек может взаимодействовать с вашей onchain-программой без необходимости выдачи API-ключей или каких-либо других разрешений.

Как клиенты работают с блокчейном Solana.

Разработка Solana немного отличается от других блокчейнов благодаря тому, что ее onchain-программы являются очень композитными. Это означает, что вы можете создавать поверх любой уже развернутой программы, и часто это можно делать без необходимости разработки собственных onchain-программ. Например, если вы хотите работать с токенами, вы можете использовать программу Token Program, которая уже развернута в сети. Вся разработка приложения будет вестись на стороне клиента на выбранном вами языке.

Разработчики, желающие создать приложение на базе Solana, обнаружат, что стек разработки очень похож на любой другой стек разработки. Основное отличие заключается в том, что вы будете работать с блокчейном и должны будете думать о том, как пользователи могут взаимодействовать с вашим приложением onchain, а не только на фронтенде. Разработка на Solana по-прежнему включает в себя конвейеры CI/CD, тестирование, инструменты отладки, фронтенд и бэкенд, а также все, что вы найдете в обычном потоке разработки.

Что вам понадобится для начала работы #

Чтобы начать разработку Solana, вам понадобятся разные инструменты в зависимости от того, для чего вы разрабатываете - для клиентской части, onchain-программ или для обеих.

Разработка на стороне клиента #

Если вы разрабатываете приложения для onchain, вы должны знать Rust.

Если вы разрабатываете клиентскую часть, вы можете работать с любым языком программирования, который вам удобен. У Solana есть SDK, созданные сообществом, которые помогают разработчикам взаимодействовать с сетью Solana на большинстве популярных языков:

ЯзыкSDK
RUSTsolana_sdk
Typescript@solana/web3.js
Pythonsolders
Javasolanaj or solana4j
C++solcpp
Gosolana-go
KotlinsolanaKT or sol4k
Dartsolana

Для взаимодействия с сетью вам также потребуется соединение с RPC. Вы можете либо работать с поставщиком инфраструктуры RPC, либо запустить собственный узел RPC.

Чтобы быстро приступить к созданию фронтенда для вашего приложения, вы можете сгенерировать настраиваемый скаффолд Solana, введя в CLI следующую команду:

npx create-solana-dapp <project-name>

Это создаст новый проект со всеми необходимыми файлами и базовой конфигурацией для начала сборки на Solana. Проект будет включать в себя пример фронтенда и шаблон onchain-программы (если вы его выбрали). Вы можете прочитать документацию create-solana-dapp, чтобы узнать больше.

Разработка Onchain программ #

Разработка onchain-программ заключается в написании программ либо на Rust, либо на C, либо на C++. Для начала вам нужно убедиться, что на вашей машине установлен Rust. Это можно сделать с помощью следующей команды:

curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh

You'll then need to have the Solana CLI installed to compile and deploy your programs. You can install the Solana CLI by running the following command:

sh -c "$(curl -sSfL https://release.anza.xyz/stable/install)"

Чтобы запустить локальный валидатор после установки Solana CLI, выполните следующую команду: Чтобы запустить локальный валидатор после установки Solana CLI, запустите следующую команду:

solana-test-validator

Это запустит локальный валидатор на вашей машине, который вы можете использовать для тестирования своих программ. You can read more about local development in this guide.

При создании onchain-программ у вас есть выбор: либо собирать на родном Rust (то есть без фреймворка), либо использовать фреймворк Anchor. Anchor - это фреймворк, который упрощает сборку на Solana, предоставляя разработчикам API более высокого уровня. Думайте об Anchor как о создании сайтов с помощью React, а не сырого Javascript и HTML. В то время как Javascript и HTML дают вам больше контроля над вашим сайтом, React ускоряет разработку и делает ее простой. Подробнее об Anchor вы можете прочитать на их сайте.

Вам понадобится способ тестирования вашей программы. Существует несколько различных способов тестирования программы в зависимости от ваших языковых предпочтений:

  • solana-program-test - фреймворк для тестирования, построенный на Rust
  • solana-bankrun - фреймворк для тестирования, созданный для написания тестов на Typescript
  • bankrun - Фреймворк для тестирования, созданный для написания тестов на Python

Если вы не хотите разрабатывать свои программы локально, есть также онлайн IDE Solana Playground. Solana Playground позволяет писать, тестировать и развертывать программы на Solana. You can get started with Solana Playground by following our quick start guide.

Среды для разработчиков #

Выбор правильного окружения в зависимости от вашей работы очень важен. В Solana есть несколько различных сетевых окружений (называемых кластерами), чтобы облегчить зрелое тестирование и практику CI/CD:

  • Mainnet Beta: Производственная сеть, где происходят все действия. Транзакции здесь стоят реальных денег.
  • Devnet: The quality assurance network where you deploy your programs to test before deploying to production. Подумайте о "среде постановки".
  • Local (локальная): Локальная сеть, которую вы запускаете на своей машине с помощью solana-test-validator для тестирования своих программ. Это должно быть вашим первым выбором при разработке программ.

Создание на примере #

Пока вы начинаете строить на Solana, есть еще несколько ресурсов, которые помогут ускорить ваш путь:

  • Поваренная книга Solana: Коллекция ссылок и фрагментов кода, которые помогут вам построить на Solana.
  • Примеры программ Solana: Хранилище примеров программ, предоставляющих строительные блоки для различных действий над вашими программами.
  • Руководства: Учебники и руководства, которые помогут вам в создании программ на Solana.

Получение поддержки #

Лучшая поддержка, которую вы можете найти, находится на Solana StackExchange. Сначала найдите там свой вопрос - велика вероятность, что он уже был задан кем-то другим и на него есть ответ. Если его там нет, добавьте новый вопрос! Не забудьте включить в свой вопрос как можно больше подробностей, и, пожалуйста, используйте текст (а не скриншоты) для отображения сообщений об ошибках, чтобы другие люди с такой же проблемой могли найти ваш вопрос!

Следующие шаги #

You're now ready to get started building on Solana!