Валидатор

История

Когда мы впервые запустили Solana, целью было снизить риски для наших требований TPS. Мы знали, что при оптимистичном контроле параллелизма и достаточно длинных лидерских слотах консенсус PoS не представлял самого большого риска для TPS. Это была проверка подписи на основе графического процессора, конвейерная обработка программного обеспечения и параллельный банкинг. Так родился ТПУ. Достигнув отметки в 100 000 TPS, мы разделили команду на одну группу, работающую над достижением 710 000 TPS, и другую, чтобы конкретизировать конвейер валидатора. Так родился TVU. Текущая архитектура является следствием постепенного развития с таким порядком и приоритетами проекта. Это не отражение того, что мы когда-либо считали наиболее технически элегантным срезом этих технологий. В контексте ротации лидеров четкое различие между лидерством и валидацией стирается.

Разница между проверкой и опережением

Фундаментальное различие между конвейерами заключается в наличии PoH. В лидере мы обрабатываем транзакции, удаляя плохие, а затем помечаем результат PoH-хешем. В валидаторе мы проверяем этот хэш, отделяем его и точно так же обрабатываем транзакции. Единственное отличие состоит в том, что если валидатор увидит плохую транзакцию, он не сможет просто удалить ее, как это делает лидер, потому что это приведет к изменению хэша PoH. Вместо этого он отклоняет весь блок. Другое различие между конвейерами заключается в том, что происходит после банковского обслуживания. Лидер передает записи нижестоящим валидаторам, тогда как валидатор уже сделал это в RetransmitStage, что является оптимизацией времени подтверждения. Конвейер проверки, с другой стороны, имеет один последний шаг. Каждый раз, когда он заканчивает обработку блока, ему необходимо взвесить все форки, которые он наблюдает, возможно, проголосовать, и если это так, сбросить свой хэш PoH на хэш блока, за который он только что проголосовал.

Предлагаемый дизайн

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

Заметные изменения