Валидирующие ноды
Last updated
Last updated
Aptos нода — это элемент экосистемы Aptos, который отслеживает состояние блокчейна Aptos. Клиенты взаимодействуют с блокчейном через Aptos ноды. Существует два типа нод:
Валидирующие ноды
Каждая Aptos нода состоит из нескольких логических компонентов:
Программное обеспечение можно настроить для работы как в качестве валидирующей ноды, так и в качестве полной ноды.
Когда транзакция отправляется в Aptos Blockchain, валидирующие ноды запускают распределенный , выполняют транзакцию, сохраняют транзакцию и результаты выполнения в блокчейне. Валидирующие ноды решают, какие транзакции будут добавлены в блокчейн и в каком порядке.
Aptos Blockchain использует протокол консенсуса Byzantine Fault Tolerance (BFT), чтобы валидирующие ноды согласовывали реестр завершенных транзакций и результаты их выполнения. Валидирующие ноды обрабатывают эти транзакции и включают их в свою локальную копию базы данных блокчейна. Это означает, что обновленные валидирующие ноды всегда локально поддерживают копию текущего состояния блокчейна.
Валидирующие ноды взаимодействуют с другими валидирующими нодами напрямую через частную сеть. — это внешний ресурс проверки и/или распространения завершенной истории транзакций. Они получают транзакции от пиров и могут повторно выполнять их локально (так же, как валидатор выполняет транзакции). Полные ноды сохраняют результаты повторно выполненных транзакций в локальном хранилище. При этом они могут оспаривать любые нечестные действия валидаторов и предоставлять доказательства, если есть какие-либо попытки переписать или изменить историю блокчейна. Это помогает предотвратить коррупцию и/или сговор валидаторов.
Протокол консенсуса Aptos BFT обеспечивает отказоустойчивость при наличии до одной трети вредоносных валидирующих нод.
Мемпул — имеющийся в каждой ноде компонент, который содержит в памяти буфер транзакций, которые были отправлены в блокчейн, но еще не согласованы или не выполнены. Этот буфер реплицируется между валидирующими и полными нодами.
Сервис JSON-RPC полной ноды отправляет транзакции в мемпул валидирующей ноды. Мемпул выполняет различные проверки транзакций, чтобы гарантировать достоверность транзакций и защитить от DOS-атак. После того как новая транзакция проходит начальную проверку и добавляется в мемпул, она распространяется на мемпулы других валидирующих нод в сети.
Когда валидирующая нода временно становится лидером протокола консенсуса, консенсус извлекает транзакции из мемпула и предлагает новый блок транзакций. Этот блок транслируется другим валидаторам и содержит общий порядок всех транзакций в блоке. Затем каждый валидатор выполняет блок и отправляет голоса о том, следует ли принимать предложение о новом блоке.
Консенсус — это компонент, который отвечает за упорядочение блоков транзакций и согласование результатов исполнения путем участия в протоколе консенсуса с другими валидирующими нодами в сети.
Исполнение — это компонент, который координирует выполнение блока транзакций и поддерживает переходное состояние. Консенсус утверждает путем голосования вопрос этого переходного состояния. Исполнение поддерживает представление результатов выполнения в памяти до тех пор, пока консенсус не зафиксирует блок в распределенной базе данных. Исполнение использует виртуальную машину для выполнения транзакций. Исполнение действует как связующий слой между входными данными системы (представленными транзакциями), хранилищем (обеспечивающим уровень сохраняемости) и виртуальной машиной (для исполнения).
Виртуальная машина (VM) используется для запуска программы Move в рамках каждой транзакции и определения результатов выполнения. Мемпул ноды использует VM для проверки транзакций, а исполнение использует VM для выполнения транзакций.
Компонент хранилища используется для сохранения согласованных блоков транзакций и результатов их выполнения в локальной базе данных.
Ноды используют свой компонент синхронизатора состояния, чтобы «соответствовать» последнему состоянию блокчейна и оставаться в курсе последних событий.