Две фундаментальные концепции, лежащие в основе блокчейна Aptos, - это транзакции и состояния:
- Транзакции: Транзакции представляют собой обмен данными (например, Aptos Coins или NFTs) между учетными записями на блокчейне Aptos.
- Состояния: Состояние (т.е. текущее состояние блокчейна) представляет собой моментальный снимок блокчейна в его текущем состоянии.
Когда выполняется транзакция, состояние блокчейна Aptos Blockchain меняется.
Транзакции
Когда пользователь Aptos Blockchain отправляет транзакцию, он запрашивает, чтобы состояние блокчейна было обновлено его транзакцией.
Подписанная транзакция в блокчейне содержит следующую информацию:
- Подпись: Отправитель использует цифровую подпись для подтверждения того, что он подписал транзакцию (т.е. аутентификация).
- Адрес отправителя: Адрес счета отправителя.
- Открытый ключ отправителя: Открытый ключ аутентификации, который соответствует закрытому ключу аутентификации, используемому для подписания транзакции.
- Программа: Программа включает в себя: - Модуль Move и имя функции или скрипт транзакции move bytecode. - Необязательный список входов для скрипта. Для одноранговой транзакции эти входы содержат информацию о получателе и переведенной ему сумме. - Необязательный список модулей Move bytecode для публикации.
- Цена газа (в указанных единицах газа): Это сумма, которую отправитель готов заплатить за единицу газа для выполнения транзакции. Газ - это способ оплаты вычислений и хранения. Единица газа - это абстрактное измерение вычислений, не имеющее реальной ценности.
- Максимальное количество газа: Максимальное количество газа - это максимальное количество единиц газа, которое может быть израсходовано транзакцией.
- Номер последовательности: Это целое число без знака, которое должно быть равно порядковому номеру учетной записи отправителя на момент выполнения операции.
- Время истечения: Временная метка, после которой транзакция перестает быть действительной (т.е. истекает).
Состояние реестра
Состояние реестра блокчейна Aptos (или глобальное состояние) включает в себя состояние всех учетных записей в блокчейне. Каждая нода-валидатор в блокчейне должен знать глобальное состояние последней версии распределенной базы данных блокчейна (базы данных с версиями), чтобы выполнить любую транзакцию.
База данных с версиями
Все данные в блокчейне Aptos хранятся в распределенной базе данных с одной версией. Номер версии - это беззнаковое 64-битное целое число, которое соответствует количеству транзакций, выполненных системой.
Эта база данных с версией позволяет нодам валидатора:
- Выполнить транзакцию против состояния реестра в последней версии.
- Отвечать на запросы клиентов об истории реестра в текущей и предыдущей версиях.
Состояние транзакций меняется
РИСУНОК 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 для реализации детерминированной функции исполнения F.
- SN - Это N-ое состояние блокчейна. Когда транзакция TN применяется к блокчейну, генерируется новое состояние SN (результат применения F к SN-1 и TN). В результате баланс учетной записи Alice уменьшается на 10-100 Aptos Coins, а баланс учетной записи Bob увеличивается на 10-62 Aptos Coins. Новое состояние SN показывает эти обновленные балансы.
Top comments (0)