Транзакции и состояния
Last updated
Last updated
В основе блокчейна Aptos лежат две фундаментальные концепции — это транзакции и состояния:
: транзакции представляют собой обмен данными (например, Aptos Coins или NFT) между учетными записями в блокчейне Aptos.
: состояние (т. е. текущее состояние реестра блокчейна) представляет собой отображение мгновенного состояния блокчейна в его текущем состоянии.
Когда транзакция выполняется, состояние блокчейна Aptos изменяется.
Когда транзакция выполняется, состояние блокчейна Aptos изменяется.
в блокчейне содержит следующую информацию:
Подпись: отправитель использует цифровую подпись, чтобы убедиться, что он подписал транзакцию (т. е. аутентификацию).
Адрес отправителя: отправителя.
Открытый ключ отправителя: открытый ключ проверки подлинности, соответствующий закрытому ключу проверки подлинности, используемому для подписи транзакции.
Программа: программа включает:
модуль Move и имя функции или сценарий транзакции байт-кода move
опциональный список входных данных для скрипта. Для peer-to-peer транзакции, эти входные данные содержат информацию о получателе и переданную ему сумму.
опциональный список модулей байт-кода Move для публикации.
Цена газа (в указанной валюте/единицах газа): это сумма, которую отправитель готов заплатить за единицу газа для выполнения транзакции. Газ — это способ оплаты вычислений и хранения. Единица газа — это абстрактное измерение вычислений, не имеющее реальной ценности.
Максимальное количество газа: — это максимальное количество единиц газа, разрешенное для транзакции.
Код валюты газа: код валюты, используемый для оплаты газа.
Порядковый номер: целое число без знака, которое должно быть равно учетной записи отправителя на момент выполнения.
Срок действия: отметка времени, после которой транзакция перестает быть действительной (т. е. истекает).
Все данные в блокчейне Aptos сохраняются в распределенной базе данных с одной версией. Номер версии — это 64-битное целое число без знака, которое соответствует количеству транзакций, выполненных системой.
Данная версионированная база данных позволяет узлам валидации:
выполнять транзакцию по состоянию реестра в последней версии.
отвечать на запросы клиентов об истории реестра как в текущей, так и в предыдущей версии.
На рисунке 1.0 показано, как выполнение транзакции TN изменяет состояние блокчейна Aptos с SN-1 на SN.
На рисунке:
Учетные записи A и B
Учетные записи Алисы и Боба в Aptos Blockchain
SN-1
Показывает (N-1)-е состояние блокчейна. В этом состоянии баланс учетной записи Алисы A составляет 110 монет Aptos, а баланс учетной записи Боба B составляет 52 монеты Aptos.
TN
Это N-я транзакция, выполненная в блокчейне. В этом примере показана Алиса, отправляющая Бобу 10 монет Aptos.
F
SN
Это N-е состояние блокчейна. Когда транзакция TN применяется к блокчейну, она генерирует новое состояние SN (результат применения F к SN-1 и TN). Это приводит к тому, что баланс счета Алисы уменьшается на 10 до 100 монет Aptos, а баланс счета Боба увеличивается на 10 до 62 монет Aptos. Новое состояние SN показывает обновленные балансы.
Состояние реестра Aptos Blockchain (или глобальное ) включает в себя состояние всех учетных записей в блокчейне. Каждая валидирующая нода в блокчейне должна знать глобальное состояние последней версии распределенной базы данных блокчейна (версионированная база данных) для выполнения любой транзакции.
Это детерминированная функция. F всегда возвращает одно и то же конечное состояние для определенного начального состояния и конкретной транзакции. Если текущее состояние блокчейна — SN-1, а транзакция TN выполняется в состоянии SN-1, новым состоянием блокчейна всегда будет SN. Aptos Blockchain использует для реализации функции детерминированного выполнения F.