Базовые программы

Кратко

Базовые программы обеспечивают фундаментальную функциональность сети: управление аккаунтами (System Program), консенсус (Vote, Stake), оптимизацию транзакций (Compute Budget, Address Lookup Table) и приватность (ZK ElGamal Proof). Включает справочник инструкций System Program и ссылки на исходный код всех 7 программ.

System Program

System Program (11111111111111111111111111111111) — единственная программа, которая может создавать новые аккаунты. Все новые аккаунты изначально принадлежат System Program, однако право собственности обычно передаётся при создании. System Program потребляет DEFAULT_COMPUTE_UNITS (150 CU) за инструкцию.

Справочник инструкций System Program

ИнструкцияОписание
CreateAccountСоздаёт новый аккаунт. Выделяет space байт, назначает owner и переводит lamports от плательщика. Новый аккаунт и плательщик должны подписать.
CreateAccountWithSeedТо же, что и CreateAccount, но адрес нового аккаунта вычисляется на основе pubkey аккаунта, seed-строки и программы-владельца. Аккаунт, pubkey которого использован для вычисления адреса, и плательщик должны подписать.
AssignУстанавливает владельца аккаунта. Аккаунт должен подписать. Если уже установлен этот владелец — ничего не происходит.
AssignWithSeedТо же, что и Assign, но для адреса, полученного через seed. Аккаунт, pubkey которого использован для вычисления адреса, должен подписать.
TransferПереводит лампорты между аккаунтами. Отправитель должен подписать.
TransferWithSeedТо же, что и Transfer, но с адреса, полученного через seed. Аккаунт, pubkey которого использован для вычисления адреса, должен подписать.
AllocateУстанавливает длину данных аккаунта. Аккаунт должен подписать, иметь пустые данные и принадлежать System Program. Максимум 10 МБ.
AllocateWithSeedТо же, что и Allocate, но для адреса, полученного через seed. Также назначает владельца. Аккаунт, pubkey которого использован для вычисления адреса, должен подписать.
AdvanceNonceAccountПродвигает значение nonce до текущего blockhash. Владелец nonce должен подписать.
InitializeNonceAccountИнициализирует аккаунт как nonce-аккаунт с указанным владельцем. Аккаунт должен быть освобождён от rent.
AuthorizeNonceAccountМеняет владельца nonce. Текущий владелец должен подписать.
WithdrawNonceAccountВыводит лампорты с nonce-аккаунта. Владелец должен подписать. Если аккаунт не закрывается, остаток должен покрывать rent.
UpgradeNonceAccountОбновляет nonce-аккаунт с устаревшей версии до текущего формата. Аккаунт должен быть доступен для записи и содержать устаревшую версию nonce.

Все основные программы

ПрограммаProgram IDОписаниеИсходный код
System11111111111111111111111111111111Создаёт аккаунты, переводит SOL, выделяет данные и назначает владельцевSource
VoteVote111111111111111111111111111111111111111Создаёт и управляет аккаунтами, отслеживающими состояние голосования валидаторов и наградыSource
StakeStake11111111111111111111111111111111111111Создаёт и управляет делегированием стейка валидаторамSource
ConfigConfig1111111111111111111111111111111111111Хранит конфигурационные данные в блокчейне с контролем доступа по ключуSource
Compute BudgetComputeBudget111111111111111111111111111111Устанавливает лимиты вычислительных единиц и приоритетные комиссии для транзакцийSource
Address Lookup TableAddressLookupTab1e1111111111111111111111111Управляет таблицами поиска адресов для транзакций с большим числом аккаунтовSource
ZK ElGamal ProofZkE1Gama1Proof11111111111111111111111111111Проверяет доказательства с нулевым разглашением для данных, зашифрованных по ElGamalSource

Загрузочные программы

Каждая программа принадлежит загрузочной программе. Загрузчики отвечают за развёртывание, обновление и выполнение принадлежащих им программ. Полный список загрузчиков и их адресов смотрите в разделе Загрузочные программы.

Is this page helpful?

Содержание

Редактировать страницу

Управляется

© 2026 Solana Foundation.
Все права защищены.
Связаться с нами