Концепции APTOS | Транзакции и состояние
Tags: blockchain, aptos, webdev, tutorial
Published: 2022-08-30 11:23:32

Две фундаментальные концепции, лежащие в основе блокчейна Aptos, - это транзакции и состояния:

- Транзакции: Транзакции представляют собой обмен данными (например, Aptos Coins или NFTs) между учетными записями на блокчейне Aptos.
- Состояния: Состояние (т.е. текущее состояние блокчейна) представляет собой моментальный снимок блокчейна в его текущем состоянии.

Когда выполняется транзакция, состояние блокчейна Aptos Blockchain меняется.

## Транзакции

Когда пользователь Aptos Blockchain отправляет транзакцию, он запрашивает, чтобы состояние блокчейна было обновлено его транзакцией.

Подписанная транзакция в блокчейне содержит следующую информацию:

- **Подпись**: Отправитель использует цифровую подпись для подтверждения того, что он подписал транзакцию (т.е. аутентификация).
- **Адрес отправителя**: Адрес счета отправителя.
- **Открытый ключ отправителя**: Открытый ключ аутентификации, который соответствует закрытому ключу аутентификации, используемому для подписания транзакции.
- **Программа**: Программа включает в себя:
            - Модуль Move и имя функции или скрипт транзакции move bytecode.
            - Необязательный список входов для скрипта. Для одноранговой транзакции эти входы содержат информацию о получателе и переведенной ему сумме.
            - Необязательный список модулей Move bytecode для публикации.
- **Цена газа** (в указанных единицах газа): Это сумма, которую отправитель готов заплатить за единицу газа для выполнения транзакции. Газ - это способ оплаты вычислений и хранения. Единица газа - это абстрактное измерение вычислений, не имеющее реальной ценности.
- **Максимальное количество газа**: Максимальное количество газа - это максимальное количество единиц газа, которое может быть израсходовано транзакцией.
- **Номер последовательности**: Это целое число без знака, которое должно быть равно порядковому номеру учетной записи отправителя на момент выполнения операции.
- **Время истечения**: Временная метка, после которой транзакция перестает быть действительной (т.е. истекает).

## Состояние реестра

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

## База данных с версиями

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

Эта база данных с версией позволяет нодам валидатора:

- Выполнить транзакцию против состояния реестра в последней версии.
- Отвечать на запросы клиентов об истории реестра в текущей и предыдущей версиях.

## Состояние транзакций меняется


![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/en31s08985qbi44yp8ll.jpg)

_РИСУНОК 1.0 Состояние транзакций меняется
На рисунке 1.0 показано, как выполнение транзакции TN изменяет состояние блокчейна Aptos с SN-1 на SN._

На рисунке:

- Учетные записи A и B - Представьте учетные записи Alice и Bob на блокчейне Aptos
- SN-1 - Представляет собой (N-1)-е состояние блокчейна. В этом состоянии баланс учетной записи Alice A составляет 110 Aptos Coins, а баланс учетной записи Bob B составляет 52 Aptos Coins.
- TN - Это N-ая транзакция, выполненная на блокчейне. В данном примере она представляет собой отправку Alice 10 Aptos Coins Bob.
- F - Это детерминированная функция. F всегда возвращает одно и то же конечное состояние для определенного начального состояния и определенной транзакции. Если текущее состояние блокчейна - SN-1, а транзакция TN выполняется на состоянии SN-1, то новое состояние блокчейна всегда SN. Блокчейн Aptos использует [язык Move](https://move-language.github.io/move/) для реализации детерминированной функции исполнения F.
- SN - Это N-ое состояние блокчейна. Когда транзакция TN применяется к блокчейну, генерируется новое состояние SN (результат применения F к SN-1 и TN). В результате баланс учетной записи Alice уменьшается на 10-100 Aptos Coins, а баланс учетной записи Bob увеличивается на 10-62 Aptos Coins. Новое состояние SN показывает эти обновленные балансы.