Валидирующие ноды

Aptos нода — это элемент экосистемы Aptos, который отслеживает состояние блокчейна Aptos. Клиенты взаимодействуют с блокчейном через Aptos ноды. Существует два типа нод:

Каждая Aptos нода состоит из нескольких логических компонентов:

Программное обеспечение Aptos-core можно настроить для работы как в качестве валидирующей ноды, так и в качестве полной ноды.

Обзор

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

Aptos Blockchain использует протокол консенсуса Byzantine Fault Tolerance (BFT), чтобы валидирующие ноды согласовывали реестр завершенных транзакций и результаты их выполнения. Валидирующие ноды обрабатывают эти транзакции и включают их в свою локальную копию базы данных блокчейна. Это означает, что обновленные валидирующие ноды всегда локально поддерживают копию текущего состояния блокчейна.

Валидирующие ноды взаимодействуют с другими валидирующими нодами напрямую через частную сеть. Полные ноды — это внешний ресурс проверки и/или распространения завершенной истории транзакций. Они получают транзакции от пиров и могут повторно выполнять их локально (так же, как валидатор выполняет транзакции). Полные ноды сохраняют результаты повторно выполненных транзакций в локальном хранилище. При этом они могут оспаривать любые нечестные действия валидаторов и предоставлять доказательства, если есть какие-либо попытки переписать или изменить историю блокчейна. Это помогает предотвратить коррупцию и/или сговор валидаторов.

Протокол консенсуса Aptos BFT обеспечивает отказоустойчивость при наличии до одной трети вредоносных валидирующих нод.

Компоненты валидирующей ноды

Мемпул

Мемпул — имеющийся в каждой ноде компонент, который содержит в памяти буфер транзакций, которые были отправлены в блокчейн, но еще не согласованы или не выполнены. Этот буфер реплицируется между валидирующими и полными нодами.

Сервис JSON-RPC полной ноды отправляет транзакции в мемпул валидирующей ноды. Мемпул выполняет различные проверки транзакций, чтобы гарантировать достоверность транзакций и защитить от DOS-атак. После того как новая транзакция проходит начальную проверку и добавляется в мемпул, она распространяется на мемпулы других валидирующих нод в сети.

Когда валидирующая нода временно становится лидером протокола консенсуса, консенсус извлекает транзакции из мемпула и предлагает новый блок транзакций. Этот блок транслируется другим валидаторам и содержит общий порядок всех транзакций в блоке. Затем каждый валидатор выполняет блок и отправляет голоса о том, следует ли принимать предложение о новом блоке.

Консенсус

Консенсус — это компонент, который отвечает за упорядочение блоков транзакций и согласование результатов исполнения путем участия в протоколе консенсуса с другими валидирующими нодами в сети.

Исполнение

Исполнение — это компонент, который координирует выполнение блока транзакций и поддерживает переходное состояние. Консенсус утверждает путем голосования вопрос этого переходного состояния. Исполнение поддерживает представление результатов выполнения в памяти до тех пор, пока консенсус не зафиксирует блок в распределенной базе данных. Исполнение использует виртуальную машину для выполнения транзакций. Исполнение действует как связующий слой между входными данными системы (представленными транзакциями), хранилищем (обеспечивающим уровень сохраняемости) и виртуальной машиной (для исполнения).

Виртуальная машина (VM)

Виртуальная машина (VM) используется для запуска программы Move в рамках каждой транзакции и определения результатов выполнения. Мемпул ноды использует VM для проверки транзакций, а исполнение использует VM для выполнения транзакций.

Хранилище

Компонент хранилища используется для сохранения согласованных блоков транзакций и результатов их выполнения в локальной базе данных.

Синхронизатор состояния

Ноды используют свой компонент синхронизатора состояния, чтобы «соответствовать» последнему состоянию блокчейна и оставаться в курсе последних событий.

Last updated