Следующие термины используются в документации Solana и экосистеме разработки.
аккаунт
Запись в реестре Solana, которая либо хранит данные, либо является исполняемой программой.
Подобно аккаунту в традиционном банке, аккаунт Solana может хранить средства, называемые lamports. Каждый аккаунт в кластере имеет уникальный адрес.
приложение
Клиентское приложение, взаимодействующее с кластером Solana.
адрес
Местоположение в Solana, которое можно использовать для поиска аккаунта. Каждый адрес уникален в кластере Solana.
Адреса в Solana могут быть либо Ed25519 публичным ключом, либо program derived address.
таблица поиска адресов (ALT)
Структура данных, хранящая список адресов аккаунтов и позволяющая
версионированным транзакциям ссылаться на аккаунты с помощью
компактных 1-байтовых индексов вместо полных 32-байтовых публичных ключей. Таблицы поиска адресов
позволяют одной транзакции ссылаться на большее число аккаунтов, чем допускает исходный
формат транзакций. Таблицы поиска адресов поддерживаются только транзакциями версии 0 (v0); версия 1 (v1) отказывается от них в пользу увеличенного размера транзакции, вмещающего те же адреса напрямую.
Anchor
Фреймворк для разработки onchain-программ Solana на Rust. Anchor предоставляет макросы, сокращающие шаблонный код, стандартизированную систему валидации аккаунтов и генерирует IDL, описывающий интерфейс программы. Это наиболее широко используемый фреймворк для разработки программ Solana.
associated token account (ATA)
token account, адрес которого детерминированно производится из адреса кошелька и token mint. Associated Token Program гарантирует, что каждый кошелёк имеет один канонический token account для каждого типа токена.
authority (права управления)
Адрес пользователя, имеющего определённые права доступа к аккаунту.
Например:
- Право выпускать новые токены предоставляется аккаунту, являющемуся 'mint authority' для данного token mint.
- Право обновлять программу предоставляется аккаунту, являющемуся 'upgrade authority' этой программы.
автоматический маркет-мейкер (AMM)
Onchain-модель обмена, в которой пользователи торгуют против пула резервов токенов, управляемого ценовой формулой, а не против лимитных заявок контрагента. Цены меняются как функция резервов, поэтому сделки несут проскальзывание пропорционально объёму.
состояние банка
Результат интерпретации всех программ в реестре на заданной высоте тиков. Он включает как минимум набор всех аккаунтов, хранящих ненулевые нативные токены.
блок
Непрерывный набор записей в реестре, охватываемый голосованием. Лидер производит не более одного блока за slot.
хеш блока (blockhash)
Уникальное значение (хеш), идентифицирующее запись (блок). Solana вычисляет хеш блока из последнего entry id блока.
высота блока
Количество блоков ниже текущего блока. Первый блок после genesis-блока имеет высоту один.
bootstrap-валидатор
validator, производящий genesis (первый) блок блокчейна.
BPF loader
Программа Solana, которая владеет и загружает BPF onchain-программы, позволяя программе взаимодействовать со средой исполнения.
bump
Один байт (0–255), добавляемый к seeds при выводе Program Derived Address, чтобы гарантировать, что полученный адрес находится вне кривой ed25519 и является корректным PDA. Канонический bump — это наибольшее значение, порождающее валидный PDA; он обычно сохраняется в данных аккаунта, чтобы избежать повторного вычисления.
книга лимитных заявок (CLOB)
Модель обмена, поддерживающая отсортированный список активных заявок на покупку и продажу; сделка происходит, когда входящая заявка пересекается с заявкой на противоположной стороне. Противопоставляется автоматическому маркет-мейкеру.
клиент
Компьютерная программа, получающая доступ к серверной сети кластера Solana.
подтверждение (commitment)
Мера сетевого подтверждения для блока.
формат компактного массива
Компактный массив — это массив, сериализованный в следующем формате:
- Длина массива (закодированная как compact-u16)
- Элементы массива, перечисленные один за другим
Формат компактного массива
Формат компактного массива используется для кодирования как массива адресов аккаунтов, так и массива инструкций в сообщениях транзакций.
кластер
Набор validator'ов, поддерживающих единый реестр.
вычислительный бюджет
Максимальное количество вычислительных единиц, потребляемых за транзакцию.
вычислительные единицы
Наименьшая единица измерения потребления вычислительных ресурсов блокчейна. Вычислительные единицы используются для измерения вычислительных ресурсов, затраченных на обработку транзакции.
время подтверждения
Длительность по настенным часам между созданием лидером тик-записи и созданием подтверждённого блока.
подтверждённый блок
Блок, получивший супербольшинство голосов реестра.
плоскость управления
Gossip-сеть, соединяющая все узлы кластера.
период охлаждения
Определённое количество epoch'ов после деактивации стейка, в течение которых он постепенно становится доступным для вывода. В этот период стейк считается «деактивирующимся». Подробнее: прогрев и охлаждение
единицы стоимости
Также называемые стоимостью транзакции — это комплексная оценка всех
ресурсов, необходимых для обработки транзакции, измеренная в
вычислительных единицах. Подробнее
здесь.
кредит
См. голосовой кредит.
cross-program invocation (CPI)
Вызов одной onchain-программы из другой. Для получения дополнительной информации см. вызовы между программами.
плоскость данных
Multicast-сеть, используемая для эффективной валидации записей и достижения консенсуса.
drone
Offchain-сервис, выступающий хранителем приватного ключа пользователя. Как правило, служит для валидации и подписи транзакций.
запись
Запись в реестре — либо тик, либо запись транзакции.
идентификатор записи (entry id)
Стойкий к прообразу хеш финального содержимого записи, служащий глобально уникальным идентификатором записи. Хеш служит доказательством:
- Того, что запись была сгенерирована по истечении определённого времени
- Того, что указанные транзакции включены в данную запись
- Позиции записи относительно других записей в реестре
epoch
Промежуток времени, т.е. количество slot'ов, в течение которого действует расписание лидеров.
эскроу
Паттерн, при котором onchain-программа удерживает токены в хранилище от имени двух или более сторон до выполнения условий, определённых программой, после чего освобождает их. Используется для устранения необходимости прямого доверия между сторонами.
комиссионный аккаунт
Комиссионный аккаунт в транзакции — это аккаунт, оплачивающий стоимость включения транзакции в реестр. Это первый аккаунт в транзакции. Данный аккаунт должен быть объявлен как доступный для чтения и записи (writable) в транзакции, поскольку оплата транзакции уменьшает баланс аккаунта.
финальность
Момент, когда узлы, представляющие 2/3 стейка, имеют общий корень.
форк
Реестр, производный от общих записей, но затем разошедшийся.
genesis-блок
Первый блок в цепочке.
genesis-конфигурация
Файл конфигурации, подготавливающий реестр для genesis-блока.
хеш
Цифровой отпечаток последовательности байтов.
инфляция
Увеличение предложения токенов со временем, используемое для финансирования вознаграждений за валидацию и продолжения развития Solana.
внутренняя инструкция
инструкция
Вызов конкретного обработчика инструкций в программе. Инструкция также определяет, какие аккаунты она хочет читать или изменять, и дополнительные данные, служащие вспомогательным вводом для обработчика инструкций. Клиент должен включить хотя бы одну инструкцию в транзакцию, и все инструкции должны выполниться успешно, чтобы транзакция считалась успешной.
обработчик инструкций
Обработчики инструкций — это функции программы, обрабатывающие инструкции из транзакций. Обработчик инструкций может содержать один или несколько cross-program invocation.
IDL
Interface Definition Language. JSON-файл, генерируемый Anchor и описывающий обработчики инструкций, аккаунты и типы программы. IDL позволяет клиентским библиотекам автоматически генерировать типизированные интерфейсы для взаимодействия с onchain-программой.
keypair
Публичный ключ и соответствующий приватный ключ для доступа к аккаунту.
lamport
Дробная единица нативного токена со значением 0.000000001 SOL.
В рамках вычислительного бюджета количество микро-lamport'ов используется при расчёте комиссий за приоритет.
лидер
Роль validator'а, когда он добавляет записи в реестр.
расписание лидеров
Последовательность публичных ключей validator'ов, сопоставленных со slot'ами. Кластер использует расписание лидеров для определения того, какой validator является лидером в любой момент времени.
реестр
Список записей, содержащих транзакции, подписанные клиентами. Концептуально его можно проследить вплоть до genesis-блока, однако реестр реального validator'а может содержать только более новые блоки, чтобы сократить объём хранилища, поскольку старые блоки не нужны для валидации будущих блоков по своей конструкции.
голос реестра
Хеш состояния validator'а на заданной высоте тиков. Он включает подтверждение validator'а того, что полученный им блок был верифицирован, а также обязательство не голосовать за конфликтующий блок (т.е. форк) в течение определённого времени — периода блокировки.
лёгкий клиент
Тип клиента, который может проверить, что он подключён к действующему кластеру. Он выполняет больше верификации реестра, чем тонкий клиент, но меньше, чем validator.
ликвидность
Глубина ордеров или пулов резервов, доступных для торговли по текущей цене или вблизи неё. Более глубокая ликвидность снижает проскальзывание. В CLOB ликвидность обеспечивается мейкер-ордерами; в AMM она предоставляется поставщиками ликвидности, которые вносят пары токенов в пул.
загрузчик
Программа, способная интерпретировать двоичное кодирование других программ на блокчейне.
блокировка
Период времени, в течение которого validator не может голосовать за другой форк.
мейкер
Трейдер, чей ордер добавляет ликвидность в CLOB, ожидая исполнения в книге заявок, а не немедленно пересекая противоположную сторону. Такой ордер называется мейкер-ордером. Мейкеры, как правило, не платят комиссию или получают возврат от площадки.
маркет-мейкер
Участник, обеспечивающий ликвидность путём непрерывного выставления заявок на покупку и продажу. На Solana маркет-мейкерами являются либо программы (например, AMM), либо внешние компании, использующие ботов для размещения мейкер-ордеров на CLOB.
сообщение
Структурированное содержимое транзакции. Как правило, содержит заголовок, массив адресов аккаунтов, последний blockhash и массив инструкций.
Подробнее о формате сообщений внутри транзакций здесь.
микро-lamport
1 000 000 микро-lamport = 1 lamport
коэффициент Накамото
Мера децентрализации: коэффициент Накамото — это наименьшее количество независимых субъектов, которые могут совместно действовать для остановки блокчейна. Термин был введён Баладжи С. Сринивасаном и Лиландом Ли в работе Quantifying Decentralization.
нативный токен
Токен, используемый для учёта работы, выполненной узлами в кластере.
узел
Компьютер, участвующий в работе кластера.
количество узлов
Количество validator'ов, участвующих в работе кластера.
вне блокчейна (offchain)
Описывает данные, процессы или сервисы, которые существуют или работают за пределами блокчейна Solana, например RPC-клиенты, индексаторы, фронтенды и мейкеры книги ордеров вне сети. Противоположность onchain. Предпочтительное написание — «Offchain» (без дефиса).
на блокчейне (onchain)
Описывает данные или программы, которые существуют или выполняются на блокчейне. Предпочтительное написание — «Onchain» (без дефиса).
программа на блокчейне (onchain program)
Исполняемый код на блокчейне Solana, который интерпретирует инструкции, передаваемые в каждой транзакции, для чтения и изменения аккаунтов, над которыми у него есть контроль. На других блокчейнах такие программы часто называют «смарт-контрактами».
оракул
Программа на блокчейне, публикующая данные из-за пределов сети — чаще всего цены реальных активов — для использования другими программами.
владелец
Может относиться либо к программе-владельцу, либо к кошельку-владельцу. Например, getTokenAccountsByOwner получает token account'ы, принадлежащие определённому кошельку, однако программой-владельцем этих token account'ов является Token Program.
Во избежание путаницы предпочтительно использовать термины программа-владелец или кошелёк-владелец, а не общий термин «владелец».
программа-владелец
Адрес программы, которой принадлежит аккаунт. Только программа-владелец может изменять аккаунт.
См. также authority.
кошелёк-владелец
Кошелёк, связанный с аккаунтом. Например, Token Program используется для хранения token account'ов, привязанных к определённому кошельку и минту, по адресу, сформированному из этого кошелька и минта.
PoH
См. Proof of History.
поинт
Взвешенный кредит в системе вознаграждений. В режиме вознаграждений validator'а rewards regime, количество поинтов, причитающихся стейку при погашении, равно произведению заработанных vote credits и количества застейканных lamport'ов.
приватный ключ
Приватный ключ keypair'а.
программа
См. программу на блокчейне (onchain program).
адрес, производный от программы (PDA)
Аккаунт, адрес которого создаётся на основе программы на блокчейне и одного или нескольких seed'ов, созданных автором программы. Адреса PDA не являются публичными ключами, и у PDA нет приватных ключей.
Полномочия подписи для PDA принадлежат программе на блокчейне, которая является их программой-владельцем.
идентификатор программы
Публичный ключ аккаунта, содержащего программу.
proof of history (PoH)
Стек доказательств, каждое из которых подтверждает, что некоторые данные существовали до создания доказательства, и что перед предыдущим доказательством прошёл точный промежуток времени. Как и VDF, Proof of History можно верифицировать быстрее, чем он был создан.
комиссия за приоритет
Дополнительная комиссия, которую пользователь может указать в инструкции бюджета вычислений для приоритизации своих транзакций.
Комиссия за приоритет рассчитывается путём умножения запрошенного максимального количества вычислительных единиц на цену вычислительной единицы (указывается с шагом 0,000001 lamport'а за вычислительную единицу) с округлением вверх до ближайшего lamport'а.
Транзакции должны запрашивать минимальное количество вычислительных единиц, необходимых для выполнения, чтобы минимизировать комиссии.
публичный ключ (pubkey)
Публичный ключ keypair'а. Публичный ключ — один из различных типов адреса, который аккаунт может использовать в Solana.
rent
Комиссия, уплачиваемая аккаунтами и программами за хранение данных на блокчейне. Если у аккаунтов недостаточно средств для оплаты rent, они могут быть удалены сборщиком мусора.
См. также rent exempt ниже. Подробнее о rent: Что такое rent?.
освобождение от rent (rent exempt)
Аккаунты, поддерживающие минимальный баланс в lamport'ах, пропорциональный объёму данных, хранимых в аккаунте. Все вновь созданные аккаунты хранятся на блокчейне постоянно до тех пор, пока аккаунт не будет закрыт. Невозможно создать аккаунт, баланс которого ниже порога освобождения от rent.
корень (root)
Блок или slot, достигший максимальной блокировки на validator'е. Корень — это самый высокий блок, являющийся предком всех активных форков на validator'е. Все блоки-предки корня также транзитивно являются корнями. Блоки, не являющиеся предком или потомком корня, исключаются из рассмотрения при достижении консенсуса и могут быть отброшены.
среда выполнения (runtime)
Компонент validator'а, отвечающий за выполнение программ.
Sealevel
Параллельная среда выполнения Solana для программ на блокчейне.
seed
Байтовое значение или массив байтовых значений, используемых в качестве входных данных при выводе адреса, производного от программы. Программа может использовать любую комбинацию статических строк, публичных ключей или других данных в качестве seed'ов. Seed'ы комбинируются с идентификатором программы и bump для получения уникального адреса PDA.
shred
Фрагмент блока; наименьшая единица, передаваемая между validator'ами.
подпись
64-байтовая подпись ed25519, состоящая из R (32 байта) и S (32 байта). При условии, что R является
упакованной точкой Эдвардса не малого порядка, а S — скаляр в диапазоне 0 <= S < L.
Это требование исключает пластичность подписи. Каждая транзакция должна содержать
не менее одной подписи для аккаунта комиссии. Таким образом, первую подпись
в транзакции можно рассматривать как идентификатор транзакции.
подписант
Аккаунт, авторизовавший инструкцию или транзакцию. Для обычного keypair'а это означает криптографическую подпись транзакции. Для адреса, производного от программы, авторизация подтверждается программой-владельцем при выполнении cross-program invocation, поскольку у PDA нет приватного ключа.
процент пропущенных slot'ов
Процент пропущенных slot'ов от общего числа лидерских slot'ов в текущей epoch. Этот показатель может быть неточным: он имеет высокую дисперсию сразу после границы epoch, когда размер выборки мал, а также для validator'ов с небольшим количеством лидерских slot'ов. Тем не менее он может быть полезен для выявления неправильных конфигураций узла.
пропущенный slot
Прошедший slot, не породивший блок, потому что лидер
был офлайн или форк, содержащий этот slot, был отвергнут кластерным консенсусом
в пользу лучшей альтернативы. Пропущенный slot не появится в качестве предка
для блоков последующих slot'ов, не увеличит высоту блока
и не обновит срок действия самого старого recent_blockhash.
Определить, был ли slot пропущен, можно только тогда, когда он станет старше последнего укоренённого (то есть непропущенного) slot'а.
проскальзывание
Разница между ценой, которую ожидал трейдер, и ценой, по которой сделка фактически исполнилась. На AMM оно возникает из-за смещения кривой цен при изменении резервов; на CLOB — из-за того, что один ордер последовательно поглощает несколько рестинг-ордеров по всё менее выгодным ценам.
slot
Период времени, в течение которого каждый лидер принимает транзакции и производит блок.
В совокупности slot'ы формируют логические часы. Slot'ы упорядочены последовательно и не перекрываются, занимая примерно одинаковые промежутки реального времени согласно PoH.
смарт-контракт
См. программу на блокчейне (onchain program).
SOL
Нативный токен кластера Solana.
Solana Program Library (SPL)
Библиотека программ на Solana, например spl-token, облегчающая выполнение таких задач, как создание токенов и работа с ними.
стейк
Токены, конфискуемые кластером, если будет доказано злонамеренное поведение validator'а.
взвешенное по стейку качество обслуживания (SWQoS)
SWQoS обеспечивает приоритетную обработку транзакций, поступающих от validator'ов со стейком.
суперквалифицированное большинство
2/3 кластера.
System Program
Нативная программа Solana (ID программы 11111111111111111111111111111111),
отвечающая за создание новых аккаунтов, выделение данных аккаунта,
назначение аккаунтов программам и перевод SOL между аккаунтами.
Все новые аккаунты в Solana принадлежат системной программе до момента переназначения.
sysvar
Системный аккаунт. Sysvars предоставляют информацию о состоянии кластера, такую как текущая высота тика, значения очков наград и т.д. Программы могут обращаться к Sysvar через аккаунт Sysvar (pubkey) или посредством syscall-запроса.
taker
Трейдер, чья заявка удаляет ликвидность из CLOB, пересекая противоположную сторону книги и совпадая с одной или несколькими ожидающими заявками. Такая заявка называется taker-заявкой, и taker, как правило, уплачивает торговую комиссию площадки.
тонкий клиент
Тип клиента, который доверяет тому, что взаимодействует с действительным кластером.
тик
Запись в реестре, оценивающая продолжительность реального времени.
высота тика
токен
Цифровой актив, допускающий передачу.
token account
Аккаунт, хранящий баланс определённого токена. Token accounts находятся в собственности Token Program или Token Extensions Program и содержат баланс токена, связанный token mint и адрес кошелька владельца.
Token Extensions Program
Token Extensions Program
имеет ID программы TokenzQdBNbLqP5VEhdkAS6EPFLC1PHnBqCXEpPxuEb и включает
все те же функции, что и Token Program, но дополнена
расширениями, такими как конфиденциальные балансы, пользовательская логика переводов, расширенные
метаданные и многое другое.
token mint
Аккаунт, способный создавать (или «минтить») токены. Разные токены различаются по уникальным адресам своего token mint.
Token Program
Token Program имеет ID
программы TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA и предоставляет базовые
возможности переводов, заморозки и выпуска токенов.
tps
Транзакций в секунду.
tpu
транзакция
Одна или несколько инструкций, подписанных клиентом с использованием одной или нескольких keypairs и выполняемых атомарно с двумя возможными исходами: успех или неудача.
ID транзакции
Первая подпись в транзакции, которая может быть использована для уникальной идентификации транзакции в полном реестре.
подтверждения транзакции
Количество подтверждённых блоков с момента принятия транзакции в реестр. Транзакция считается окончательной, когда её блок становится корневым.
запись транзакций
Набор транзакций, которые могут выполняться параллельно.
tvu
validator
Полноправный участник кластера сети Solana, производящий новые блоки. Validator проверяет транзакции, добавляемые в реестр.
vault
Token account, принадлежащий onchain-программе и хранящий объединённые активы от имени пользователей — например, базовые и котируемые резервы AMM, заблокированные токены в эскроу или остатки и накопленные комиссии CLOB. Только программа-владелец может выводить токены из vault, как правило, на собственный token account пользователя после выполнения условия сделки или высвобождения.
VDF
См. верифицируемая функция задержки.
верифицируемая функция задержки (VDF)
Функция, выполнение которой занимает фиксированное время и которая создаёт доказательство своего выполнения, поддающееся проверке за меньшее время, чем потребовалось на его создание.
версионная транзакция
Формат транзакции, поддерживающий дополнительные возможности по сравнению с исходным
форматом транзакции. Версия 0 (v0) — первый версионный
формат, добавляющий поддержку таблиц поиска адресов,
что позволяет транзакциям ссылаться на большее количество аккаунтов, чем допускает исходный формат.
Версия 1 (v1), активная на всех кластерах, увеличивает максимальный размер транзакции
до 4096 байт, хранит лимиты ресурсов в секции конфигурации сообщения
вместо инструкций ComputeBudget и не поддерживает таблицы поиска адресов.
См. версионные транзакции.
голосование
кредит голосования
Счётчик вознаграждений для validators. Кредит голосования начисляется validator на его голосующий аккаунт, когда validator достигает корневого блока.
кошелёк
Набор keypairs, позволяющий пользователям управлять своими средствами.
период прогрева
Некоторое количество эпох после делегирования стейка, в течение которых он постепенно вступает в силу. В этот период стейк считается «активирующимся». Подробнее о: прогреве и охлаждении
Is this page helpful?