Нода Aptos - это объект экосистемы Aptos, который отслеживает состояние блокчейна Aptos. Пользователи взаимодействуют с блокчейном через ноды Aptos. Существует два типа нод:
- Ноды Валидатора
Полные ноды
Каждая нода Aptos состоит из нескольких логических компонентов:REST-сервис
Mempool
Консенсус (отключен в Полных нодах)
Execution
Виртуальная машина
Хранилище
Синхронизатор состояния
Программное обеспечение Aptos-core может быть настроено для работы в качестве ноды валидатора или полного ноды.
Обзор
Когда транзакция подается в блокчейн Aptos, ноды-валидаторы запускают распределенный протокол консенсуса, выполняют транзакцию и сохраняют транзакцию и результаты выполнения в блокчейне. Ноды-валидаторы решают, какие транзакции и в каком порядке будут добавлены в блокчейн.
Блокчейн Aptos использует протокол консенсуса Byzantine Fault Tolerance (BFT) для ноды-валидаторов, чтобы согласовать журнал завершенных транзакций и результаты их выполнения. Ноды-валидаторы обрабатывают эти транзакции и включают их в свою локальную копию базы данных блокчейна. Это означает, что актуальные ноды-валидаторы всегда имеют локальную копию текущего состояния блокчейна.
Ноды-валидаторы напрямую общаются с другими нодами-валидатора через частную сеть. Полные ноды (FullNodes) являются внешним ресурсом проверки и/или распространения завершенной истории транзакций. Они получают транзакции от коллег и могут повторно выполнять их локально (так же, как валидатор выполняет транзакции). Полные ноды хранят результаты повторно выполненных транзакций в локальном хранилище. Таким образом, они могут опровергнуть любую нечестную игру со стороны валидаторов и предоставить доказательства в случае попытки переписать или изменить историю блокчейна. Это помогает смягчить последствия коррупции валидаторов и/или сговора.
Протокол консенсуса AptosBFT обеспечивает отказоустойчивость до одной трети вредоносных нод-валидаторов.
Mempool
Mempool - это компонент внутри каждой ноды, который хранит в памяти буфер транзакций, которые были представлены в блокчейн, но еще не согласованы или не выполнены. Этот буфер реплицируется между узлами-валидаторами и полными нодами.
Служба JSON-RPC полной ноды отправляет транзакции в mempool ноды валидатора. Mempool выполняет различные проверки транзакций для обеспечения их достоверности и защиты от DOS-атак. Когда новая транзакция проходит первичную проверку и добавляется в mempool, она затем распространяется по mempool других нод-валидаторов в сети.
Когда нода-валидатор временно становится лидером в протоколе консенсуса, консенсус извлекает транзакции из mempool и предлагает новый блок транзакций. Этот блок транслируется другим валидаторам и содержит общее упорядочивание всех транзакций в блоке. Затем каждый валидатор выполняет блок и подает голоса о том, принимать или не принимать предложение нового блока.
Консенсус
Консенсус - это компонент, который отвечает за упорядочивание блоков транзакций и согласование результатов выполнения путем участия в протоколе консенсуса с другими нодами-валидатора в сети.
Execution
Execution - это компонент, который координирует выполнение блока транзакций и поддерживает переходное состояние. Консенсус голосует по этому переходному состоянию. Execution поддерживает представление результатов выполнения в памяти до тех пор, пока консенсус не зафиксирует блок в распределенной базе данных. Execution использует виртуальную машину для выполнения транзакций. Выполнение действует как "клейкий слой" между входами системы (представленными транзакциями), хранилищем (обеспечивающим уровень постоянства) и виртуальной машиной (для выполнения).
Виртуальная машина
Виртуальная машина используется для запуска программы Move внутри каждой транзакции и определения результатов выполнения. Mempool нода использует виртуальную машину для выполнения проверок транзакций, а execution использует виртуальную машину для выполнения транзакций.
Хранилище
Компонент хранилища используется для сохранения согласованных блоков транзакций и результатов их выполнения в локальной базе данных.
Синхронизатор состояния
Ноды используют свой компонент синхронизатора состояния, чтобы "догнать" последнее состояние блокчейна и оставаться в актуальном состоянии.
Top comments (0)