Семь концепций лежат в основе разработки на Solana. Читайте разделы «Аккаунты», «Программы», «Инструкции», «Транзакции» и «Комиссии» именно в таком порядке, так как каждый следующий раздел опирается на предыдущий. Перед изучением PDAs ознакомьтесь с разделами «Аккаунты» и «Программы». Перед изучением CPIs ознакомьтесь с разделами «Программы», «Инструкции» и «PDAs».
Аккаунты
Solana хранит всё состояние в аккаунтах — это key-value хранилище, где ключом выступает 32-байтовый адрес. Каждый аккаунт содержит пять полей: lamports, data, owner, executable и rent_epoch.
Программы
Смарт-контракты Solana, компилируемые в sBPF. Программы не имеют собственного состояния, всё изменяемое состояние хранится в отдельных data-аккаунтах, передаваемых через инструкции.
Инструкции
Запрос на выполнение одной программы, содержащий идентификатор программы, список аккаунтов и непрозрачные байты данных. Несколько инструкций могут быть объединены в одну транзакцию.
Транзакции
Атомарная единица исполнения в Solana. Содержит подписи и сообщение (адреса аккаунтов, недавний blockhash и скомпилированные инструкции). Максимальный размер — 1232 байта.
Комиссии
Базовая комиссия — 5 000 lamports за подпись, плюс необязательная приоритетная комиссия, зависящая от запрошенных вычислительных единиц. Максимум — 1,4 млн вычислительных единиц на транзакцию.
Program Derived Addresses (PDAs)
Детерминированные адреса, получаемые из идентификатора программы и seed-значений. Только владеющая программа может подписывать от имени PDA через invoke_signed.
Межпрограммные вызовы (CPIs)
Вызов одной программы другой через invoke или invoke_signed. Привилегии подписи и записи распространяются на вызываемую программу. Максимальная глубина стека инструкций — 5 (верхний уровень плюс CPIs).
Дополнительные темы
Токены
Фунгируемые и нефунгируемые цифровые активы на Solana (SPL Token, Token-2022).
Кластеры и эндпоинты
Mainnet, Devnet и Testnet: группы validator'ов, обслуживающие JSON-RPC-запросы.
| Кластер | Публичный RPC-эндпоинт | Назначение |
|---|---|---|
| Mainnet | https://api.mainnet.solana.com | Продакшн |
| Devnet | https://api.devnet.solana.com | Эксперименты разработчиков |
| Testnet | https://api.testnet.solana.com | Тестирование validator'ов |
Is this page helpful?