June 8, 2022

NeonLabs - #daily-knowledge [RU] Solana Cluster

Solana Cluster - это набор валидаторов, которые работают вместе для обслуживания клиентских транзакций и поддержания целостности бухгалтерской книги.

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

Перед запуском других валидаторов сначала необходимо создать конфигурацию genesis. Конфиг содержит ссылки на два открытых ключа, валидатор bootstrap и mint.

Валидатор, владеющий закрытым ключом валидатора bootstrap, отвечает за первые записи в бухгалтерской книге. Он начинает с учетной записи mint, и на этой записи будет храниться количество собственных токенов, определенное в конфигурации genesis.

Второй валидатор связывается с валидатором bootstrap, чтобы зарегистрироваться в качестве такового, а дополнительные валидаторы могут зарегистрироваться у любого зарегистрированного члена кластера. Валидатор получает все записи из бухгалтерской книги и подает голоса, полученные из тех записей, которые являются действительными. После голосования валидатор должен сохранить эти записи, и как только он замечает, что существует достаточно копий, он удаляет свою копию.

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

Клиенты посылают транзакции в любой порт TPU, и если узел находится в роли валидатора, он пересылает транзакцию назначенному лидеру. Если узел выполняет эту роль, он собирает входящие транзакции в пакет, проставляет временные метки и создает запись, по которой он будет продвигать их на плоскость данных. Попадая на плоскость данных, транзакции проверяются узлами-валидаторами. Кластер Solana способен подтверждать транзакции за доли секунды на 150 узлах с планами масштабирования до сотен тысяч узлов. Ожидается, что после внедрения время подтверждения будет увеличиваться с логарифмом числа валидаторов. Если базой является тысяча узлов, это означает, что для первой тысячи узлов подтверждение будет длиться три сетевых прыжка вместе со временем, которое потребуется самому медленному валидатору большинства для голосования. Для следующего миллиона узлов подтверждение увеличивается на один сетевой прыжок.

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



Официальные ссылки на NeonLabs:

Discord: https://discord.gg/5ynFYfa9TU
Twitter: https://twitter.com/neonlabsorg
Telegram: https://t.me/Neonlabsorg
GitHub: https://github.com/neonlabsorg
Reddit: https://www.reddit.com/r/neonlabsorg/
Medium: https://neonlabsorg.medium.com/