Словарь Aptos
Tags: aptos, blockchain, webdev, tutorial
Published: 2022-08-31 12:34:40

## A

**Accumulator Root Hash - Корневой хэш аккумулятора** - это корневой хэш [аккумулятора Merkle](https://eprint.iacr.org/2009/625.pdf).

**Account - Учетная запись** - Учетная запись в блокчейне Aptos - это хранилище для произвольного количества модулей Move и ресурсов Move. По сути, это означает, что состояние каждой учетной записи состоит как из кода, так и из данных.
Учетная запись идентифицируется с помощью адреса учетной записи.

**Account Address - Адрес учетной записи** - Адрес учетной записи Aptos, см. раздел "[Учетные записи](https://dev.to/egormajj/kontsieptsii-aptos-uchietnyie-zapisi-3jj3)".

**AptosBFT** - это алгоритм консенсуса BFT протокола Aptos.
AptosBFT основан на HotStuff.

**Aptos Blockchain - Блокчейн Aptos** - это реестр неизменяемых транзакций, согласованных валидаторами в сети Aptos (сеть валидаторов).

**Aptos-core - Ядро Aptos** - это технология с открытым исходным кодом, на которой работает платежная сеть Aptos. Aptos-core содержит программное обеспечение для самого блокчейна Aptos, который генерирует и хранит неизменяемый реестр подтвержденных транзакций и
процесс подтверждения, который реализует алгоритм консенсуса для подтверждения транзакций и добавления их в реестр Aptos Blockchain.

**Aptos Framework** - Aptos Framework определяет публичный API для обновлений блокчейна и структуру данных в сети. Он определяет бизнес-логику и контроль доступа для трех ключевых столпов функциональности Aptos: платежей, финансов и управления сетью. Он реализован в виде набора модулей, написанных на языке программирования Move и хранящихся на сети в виде байткода Move.

**Aptos node - Нода Aptos** - это одноранговый субъект сети Aptos, который отслеживает состояние блокчейна Aptos. Существует два типа нод Aptos - [валидаторы](https://dev.to/egormajj/kontsieptsii-aptos-nody-validatora-2p1d) и [полные ноды](https://dev.to/egormajj/kontsieptsii-aptos-polnyie-nody-33e)).

**Aptos Protocol - Протокол Aptos** - это спецификация того, как транзакции подаются, задаются, выполняются и записываются в сети Aptos.

**AptosAccount** - `AptosAccount` - это ресурс Move, который хранит все административные данные, связанные с учетной записью, такие как порядковый номер, баланс и ключ аутентификации.
`AptosAccount` - это единственный ресурс, который гарантированно содержит каждая учетная запись.

**AptosAccount module - Модуль AptosAccount** - это модуль Move, который содержит код для манипулирования административными данными, хранящимися в определенном ресурсе `AptosAccount.T`.
В модуль AptosAccount включен код для проверки или увеличения порядковых номеров, вывода или ввода валюты и извлечения газа.

**Aptos devnet** - См. раздел devnet.

## B

**Byzantine (Validator) - Византийский (валидатор)** - Валидатор, который не следует спецификации протокола консенсуса и желает поставить под угрозу правильное выполнение протокола.
Алгоритмы BFT традиционно поддерживают до одной трети голосов алгоритма, которыми обладают византийские валидаторы.

**Byzantine Fault Tolerance (BFT) - Византийская отказоустойчивость (BFT)** - это способность распределенной системы обеспечивать гарантии безопасности и работоспособности при наличии неисправных, или "византийских", валидаторов ниже определенного порога.
Блокчейн Aptos использует AptosBFT, протокол консенсуса, основанный на HotStuff.
Алгоритмы BFT обычно работают с несколькими субъектами, коллективно владеющими N голосами (которые в применении системы в сети Aptos называются "валидаторами").
N выбирается таким образом, чтобы противостоять некоторому количеству валидаторов, владеющих f голосами, которые могут быть злонамеренными.
В данной конфигурации N обычно устанавливается равным 3f+1. Допускается, что валидаторы, удерживающие до f голосов, могут быть неисправными - не в сети, злонамеренными, медленными и т.д. До тех пор, пока 2f+1 голосов принадлежат честным валидаторам, они смогут достичь консенсуса по последовательным решениям.
Это означает, что протоколы консенсуса BFT могут функционировать правильно, даже если до трети голосов принадлежит валидаторам, которые скомпрометированы или не работают.

## С

**Consensus - Консенсус** - это компонент валидатора.
Компонент консенсуса отвечает за координацию и согласование между всеми валидаторами блока транзакций, которые должны быть выполнены, их порядка и результатов выполнения.
Блокчейн Aptos формируется из этих согласованных транзакций и соответствующих результатов их выполнения.

**Consensus Protocol - Протокол консенсуса** коллективно выполняется n валидаторами для принятия или отклонения транзакции и согласования порядка транзакций и результатов выполнения.
См. BFT

## D

**devnet** - это публично развернутый вариант сети Aptos, который работает с использованием набора тестовых нод-валидатора.
Сеть devnet - это демонстрация сети Aptos, созданная для экспериментов с новыми идеями.
Сеть devnet имитирует цифровую платежную систему, и coins в сети devnet не имеют реальной стоимости.

## E

**Ed25519** - это поддерживаемая нами схема цифровой подписи.
Более конкретно, в сети Aptos используется схема PureEdDSA на кривой Ed25519, как определено в RFC 8032.

**Event - Событие** - это представление последствий выполнения транзакции перед пользователем.
Транзакция может быть спроектирована так, чтобы испускать любое количество событий в виде списка. Например, перевод `Coin<AptosCoin>` испускает событие `WithdrawEvent` для учетной записи отправителя и событие `DepositEvent` для учетной записи получателя.
В протоколе Aptos события служат доказательством того, что успешное выполнение транзакции привело к определенному эффекту. Событие `DepositEvent` (в приведенном выше примере) позволяет получателю подтвердить, что на его учетную запись поступил платеж.
События сохраняются в блокчейне и используются для ответов на запросы пользователей.

**Expiration Time - Срок действия** - Транзакция теряет силу по истечении срока действия. Если предполагается, что:

- Time_C - это текущее время, согласованное между валидаторами (Time_C не является локальным временем клиента);
- Time_E - время истечения срока действия транзакции T_N; и
- Time_C > Time_E и транзакция T_N не была включена в блокчейн,
то существует гарантия, что T_N никогда не будет включена в блокчейн.

## F

**Faucet** - это способ создания валюты Aptos, не имеющей реальной стоимости, только в нашем devnet.
Faucet - это сервис, работающий вместе с девенетом. Эта служба существует только для того, чтобы облегчить минт coins для devnet.
Вы можете использовать Faucet, отправив запрос на создание coins и перевод их на данную учетную запись от вашего имени.

## G

**Gas - Газ** - это способ оплаты вычислений и хранения данных в сети блокчейн. Все транзакции в сети Aptos требуют определенного количества газа.
Количество газа, необходимое для транзакции, зависит от размера транзакции, вычислительных затрат на ее выполнение и количества дополнительного глобального состояния, создаваемого транзакцией (например, если создаются новые учетные записи).
Цель газа - регулирование спроса на ограниченные вычислительные ресурсы и ресурсы хранения валидаторов, включая предотвращение атак типа "отказ в обслуживании" (DoS).

**Gas Price - Цена газа** - В каждой транзакции указывается цена газа, которую готов заплатить отправитель. Цена газа указывается в единицах валюты/газа.
Цена газа, необходимого для транзакции, зависит от текущего спроса на использование сети.
Стоимость газа фиксирована в определенный момент времени. Стоимость газа указывается в единицах.

## H

**Honest (Validator) - Честный (валидатор)** - Валидатор, который добросовестно выполняет протокол консенсуса и не является византийским валидатором.

**HotStuff** - это недавнее предложение для протокола консенсуса BFT.
AptosBFT, алгоритм консенсуса сети Aptos, основан на HotStuff.
Он упрощает логику безопасности и устраняет некоторые ограничения производительности предыдущих протоколов консенсуса.

## L

**Leader - Лидер** - это валидатор, который предлагает блок транзакций для протокола консенсуса.
В протоколах, основанных на лидерах, ноды должны договориться о лидере для достижения прогресса.
Лидеры выбираются функцией, которая принимает на вход номер текущего цикла.

## M

**Maximum Gas Amount - Максимальная сумма газа для транзакции** - это максимальное количество газа, которое отправитель готов заплатить за транзакцию.
Оплаченная сумма газа равна цене газа, умноженной на единицы газа, необходимые для обработки данной транзакции. Если результат меньше максимального количества газа, транзакция успешно выполнена.
Если во время выполнения транзакции закончится газ или на учетной записи закончится баланс, то отправителю будет выставлен счет за использованный газ, а транзакция не будет выполнена.

**Mempool** - это один из компонентов валидатора. Он хранит в памяти буфер транзакций, которые были отправлены, но еще не согласованы и не выполнены. Mempool получает транзакции от службы JSON-RPC.
Транзакции в mempool валидатора добавляются из JSON-RPC Service текущей ноды и из mempool других нод Aptos.
Когда текущий валидатор является лидером, его компонент консенсуса извлекает транзакции из своего пула и предлагает порядок транзакций, которые образуют блок. Затем кворум валидаторов голосует по этому предложению.

**Merkle Trees - Дерево Merkle** - это тип аутентифицированной структуры данных, которая позволяет эффективно проверять целостность и обновления данных.
Сеть Aptos рассматривает весь блокчейн как единую структуру данных, которая записывает историю транзакций и состояний с течением времени.
Реализация дерева Меркла упрощает работу приложений, обращающихся к блокчейну. Она позволяет приложениям:
Считывать любые данные из любого момента времени.
Проверять целостность данных с помощью единой структуры.

**Merkle Accumulator - Аккумулятор Merkle** - это дерево Merkle, которое используется в блокчейне Aptos для сохранения реестра.
Аккумулятор Merkle могут предоставлять доказательства того, что транзакция была включена в сеть ("доказательство включения").
В литературе их также называют "деревьями истории".

**Move** - это новый язык программирования, который реализует все транзакции на блокчейне Aptos.
В нем есть два разных вида кода - скрипты транзакций и модули Move.

**Move Bytecode - Move байткод**- Программы Move компилируются в байткод Move.
Байткод Move используется для выражения скриптов транзакций и модулей Move.

**Move Module - Модуль Move** определяет правила обновления глобального состояния блокчейна Aptos.
В протоколе Aptos модуль Move - это смарт-контракт.
Каждая транзакция, отправленная пользователем, включает скрипт транзакции. Скрипт транзакции вызывает процедуры одного или нескольких модулей Move для обновления глобального состояния блокчейна в соответствии с правилами.

**Move Resources - Ресурсы Move** содержат данные, к которым можно получить доступ в соответствии с процедурами, объявленными в модуле Move.
Ресурсы Move никогда не могут быть скопированы, повторно использованы или потеряны. Это защищает программистов Move от случайной или намеренной потери ресурса.

**Move Virtual Machine (MVM) - Виртуальная машина Move** выполняет скрипты транзакций, написанные в байткоде Move, чтобы получить результат выполнения. Этот результат используется для обновления состояния блокчейна.
Виртуальная машина является частью валидатора.

## N

**Node - Нода** - это одноранговый субъект сети Aptos, который отслеживает состояние блокчейна Aptos.
Нода Aptos состоит из логических компонентов. Mempool, консенсус и виртуальная машина являются примерами компонентов ноды.

## O

**Open-Source Community - Сообщество разработчиков с открытым исходным кодом** - это термин, используемый для обозначения группы разработчиков, которые работают над программным обеспечением с открытым исходным кодом. Если вы читаете этот словарь, значит, вы являетесь частью сообщества разработчиков проекта Aptos.

## P

**Proof - Доказательство** - это способ проверки точности данных в блокчейне.
Каждая операция в блокчейне Aptos может быть криптографически проверена на то, что она действительно верна и что данные не были пропущены.
Например, если пользователь запрашивает информацию в рамках конкретной выполненной транзакции, ему будет предоставлено криптографическое доказательство того, что полученные данные верны.

## R

**REST Service - Компонент REST Service** - это внешний интерфейс ноды Aptos. Любой входящий запрос клиента, например, отправленные транзакции или запросы, должен сначала пройти через REST Service. Клиент должен пройти через компонент REST Service, чтобы получить доступ к хранилищу или любому другому компоненту системы. Это фильтрует запросы и защищает систему.
Каждый раз, когда клиент отправляет новую транзакцию, служба REST Service передает ее в mempool.

**Round - Цикл** состоит из достижения консенсуса по блоку транзакций и результатам их выполнения. 

**Round Number - Номер цикла** - это общий подсчет, используемый для выбора лидеров в течение эпохи протокола консенсуса.

## S

**Sequence Number - Порядковый номер** учетной записи указывает на количество транзакций, которые были отправлены и зафиксированы в сети с этой учетной записи. Он увеличивается каждый раз, когда транзакция, отправленная с этой учетной записи, выполняется или отменяется и сохраняется в блокчейне.
Транзакция выполняется только в том случае, если она совпадает с текущим порядковым номером учетной записи отправителя. Это помогает упорядочить несколько транзакций от одного и того же отправителя и предотвратить атаки повторного воспроизведения.
Если текущий порядковый номер счета A равен X, то транзакция T на счете A будет выполнена, только если порядковый номер T равен X.
Эти транзакции будут храниться в mempool до тех пор, пока они не станут следующим порядковым номером для этой учетной записи (или пока не истечет срок их действия).
Когда транзакция будет применена, порядковый номер учетной записи станет X+1. Учетная запись имеет строго возрастающий порядковый номер.

**Sender - Отправитель** - Альтернативное название: Адрес отправителя.
Отправитель - это адрес учетной записи отправителя транзакции. Транзакция должна быть подписана отправителем.

**Smart Contract** - См. раздел Модуль Move.

**State - Состояние** в протоколе Aptos - это снимок распределенной базы данных.
Транзакция изменяет базу данных и создает новое и обновленное состояние.

**State Root Hash - Корневой хэш состояния** - это хэш Merkle над всеми ключами, который отражает состояние блокчейна Aptos на определенную версию.

## T

**Transaction - Транзакция** - Необработанная транзакция содержит следующие поля:

- Отправитель (адрес учетной записи)
- Скрипт транзакции
- Цена газа
- Максимальное количество газа
- Порядковый номер
- Срок действия
- Подписанная транзакция - это необработанная транзакция с цифровой подписью.
- Выполненная транзакция изменяет состояние блокчейна Aptos.

**Transaction Script - Скрипт транзакции** - Каждая транзакция, представленная пользователем, включает скрипт транзакции.
Он представляет собой операцию, которую клиент отправляет валидатору.
Операция может быть запросом на перемещение coins от пользователя А к пользователю Б, или она может включать в себя взаимодействие с опубликованными модулями Move/smart contracts. 
Скрипт транзакции - это произвольная программа, которая взаимодействует с ресурсами, опубликованными в глобальном хранилище блокчейна Aptos, путем вызова процедур модуля. Он кодирует логику транзакции.
Один сценарий транзакции может отправлять средства нескольким получателям и вызывать процедуры из нескольких различных модулей.
Скрипт транзакции не хранится в глобальном состоянии и не может быть вызван другими скриптами транзакций. Это программа одноразового использования.

## V

**Validator - Валидатор** - Альтернативное название: валидаторы.
Валидатор - это субъект экосистемы Aptos, который осуществляет валидацию на блокчейне Aptos. Он получает запросы от клиентов и обеспечивает консенсус, исполнение и хранение.
Валидатор хранит историю всех транзакций в блокчейне.
Внутри валидатор должен сохранять текущее состояние, выполнять транзакции и рассчитывать следующее состояние.

**Version - Высота** - Блокчейн Aptos не имеет явного понятия блока - он использует блоки только для пакетирования и выполнения транзакций.
Транзакция на высоте 0 - это первая транзакция (генезисная транзакция), а транзакция на высоте 100 - это 101-я транзакция в хранилище транзакций.

## W

**Well-Formed Transaction - Правильно Сформированная Транзакция** - Транзакция Aptos является правильно сформированной, если для нее верны все следующие условия:

- Транзакция имеет действительную подпись.
- По адресу отправителя существует учетная запись.
- Она включает открытый ключ, и хэш открытого ключа совпадает с ключом аутентификации учетной записи отправителя.
- Порядковый номер транзакции совпадает с порядковым номером учетной записи отправителя.
- Баланс учетной записи отправителя больше, чем максимальная сумма газа.
- Срок действия транзакции не истек.